In [ ]:
. ./nbs_header.ps1
. ./core.ps1
In [ ]:
{ . "$ScriptDir/../apps/builder/build.ps1" } | Invoke-Block
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ # DibParser (Polyglot)                                                       │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/fsharp/Notebooks.dib
#!import ../../lib/fsharp/Testing.dib

── fsharp - import ─────────────────────────────────────────────────────────────
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Asp
NetCore.Html.Abstractions.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.FSharp.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.Formatting.dll"
open System
open System.IO
open System.Text
open Microsoft.DotNet.Interactive.Formatting

── fsharp - import ─────────────────────────────────────────────────────────────
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.FSharp.dll"
open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.dll"
open type Microsoft.DotNet.Interactive.Kernel

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

Formatter.ListExpansionLimit <- 100

── fsharp - import ─────────────────────────────────────────────────────────────
#r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

type AssertExceptionFormatter (ex) =
    member _.Text =
        ex.ToString()
            .Replace("32m", "<span style=\"color: green;\">")
            .Replace("36m", "</span>")
            .Replace("31m", "<span style=\"color: red;\">")
            .Replace("\n", "<br/>\n")


Formatter.Register<AssertExceptionFormatter> ((fun (x : 
AssertExceptionFormatter) -> x.Text), "text/html")

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

let inline __expect fn log expected actual =
    if log then printfn $"{actual.ToDisplayString ()}"
    try
        "Testing.__expect" |> fn actual expected
    with :? Expecto.AssertException as ex ->
        AssertExceptionFormatter(ex).Display () |> ignore
        failwith (ex.GetType().FullName)

let inline __contains log expected actual = __expect Expecto.Expect.contains log
expected actual
let inline _contains expected actual = __contains true expected actual

let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
expected actual
let inline _assertEqual expected actual = __assertEqual true expected actual

let inline __isGreaterThan log expected actual = __expect 
Expecto.Expect.isGreaterThan log ex...

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

let inline __isBetween log a b actual =
    let inline isBetween actual (a, b) _ =
        __isGreaterThanOrEqual log a actual
        __isLessThanOrEqual log b actual
    __expect isBetween log (a, b) actual
let inline _isBetween a b actual = __isBetween true a b actual

── pwsh ────────────────────────────────────────────────────────────────────────
ls ~/.nuget/packages/argu

╭─[ 204.50ms - stdout ]────────────────────────────────────────────────────────╮
│ 6.2.2                                                                        │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
#r 
@"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
dard2.1/FSharp.Control.AsyncSeq.dll"
#r 
@"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
0/System.Reactive.dll"
#r 
@"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/
netstandard2.0/System.Reactive.Linq.dll"
#r 
@"../../../../../../../.nuget/packages/argu/6.2.2/lib/netstandard2.0/Argu.dll"
#r 
@"../../../../../../../.nuget/packages/system.commandline/2.0.0-beta4.22272.1/li
b/net6.0/System.CommandLine.dll"
#r 
@"../../../../../../../.nuget/packages/fparsec/2.0.0-beta2/lib/netstandard2.1/FP
arsec.dll"
#r 
@"../../../../../../../.nuget/packages/fparsec/2.0.0-beta2/lib/netstandard2.1/FP
arsecCS.dll"

── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/spiral/common.fsx
#!import ../../lib/spiral/date_time.fsx
#!import ../../lib/spiral/file_system.fsx
#!import ../../lib/fsharp/Common.fs
#!import ../../lib/fsharp/CommonFSharp.fs
#!import ../../lib/fsharp/Async.fs
#!import ../../lib/fsharp/AsyncSeq.fs
#!import ../../lib/fsharp/Runtime.fs
#!import ../../lib/fsharp/FileSystem.fs

── fsharp - import ─────────────────────────────────────────────────────────────
type [[<Struct>]] US0 =
    | US0_0
    | US0_1
and [[<Struct>]] US1 =
    | US1_0
    | US1_1 of f1_0 : US0
let rec method0 (v0 : (unit -> unit)) : (unit -> unit) =
    v0
and closure0 () (v0 : (unit -> unit)) : System.IDisposable =
    let mutable result = None
    #if FABLE_COMPILER_RUST && !WASM
    let v1 : (unit -> unit) = method0(v0)
    let v2 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v1()" }
    v2
    #endif
    #if FABLE_COMPILER_RUST && WASM
    let v3 : (unit -> unit) = method0(v0)
    let v4 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v3()" }
    v4
    #endif
    #if !FABLE_COMPILER && !F...

── fsharp - import ─────────────────────────────────────────────────────────────
let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
    let v2 : string = v0.ToString ()
    let v3 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
    let v4 : System.Guid = System.Guid $"{v3}{v2.[[v3.Length..]]}"
    v4
and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
    closure1(v0)
and closure5 (v0 : string, v1 : string) (v2 : string) : string =
    let v3 : string = v2.Replace (v0, v1)
    v3
and closure4 (v0 : string) (v1 : string) : (string -> string) =
    closure5(v0, v1)
and closure3 () (v0 : string) : (string -> (string -> string)) =
    closure4(v0)
and method0 () : (string -> (string -> (string -> string))) =
    closure3()
and closure2 () (v0 : System.Guid) : System.DateTime =
  ...

── fsharp - import ─────────────────────────────────────────────────────────────
let rec closure0 () () : string =
    let v0 : string = 
System.Reflection.Assembly.GetEntryAssembly().GetName().Name
    let v1 : (unit -> string) = System.IO.Path.GetTempPath
    let v2 : string = v1 ()
    let v3 : string = $"{v0}"
    let v4 : string = System.IO.Path.Combine (v2, v3)
    let v5 : System.DateTime = System.DateTime.Now
    let v6 : System.Guid = System.Guid.NewGuid ()
    let v7 : string = v6.ToString ()
    let v8 : string = v5.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
    let v9 : System.Guid = System.Guid $"{v8}{v7.[[v8.Length..]]}"
    let v10 : string = v9.ToString ()
    let v11 : string = System.IO.Path.Combine (v4, v10)
    v11
let v0 : (unit -> string) = closure0()
let create_temp_directory_name x = v0 x
()


── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Common =

#if !WASM && !FABLE_COMPILER
    let Date_time = {|
        new_guid_from_date_time =
#if !INTERACTIVE
            Date_time.new_guid_from_date_time
#else
            new_guid_from_date_time
#endif
    |}
#endif

    let nl = System.Environment.NewLine
    let q = @""""

    let inline cons head tail = head :: tail

    module String =
        let inline contains (value : string) (input : string) =
            input.Contains value

        let inline endsWith (value : string) (input : string) =
            input.EndsWith value

        let inline padLeft totalWidth paddingChar (input : string) =
            input.PadLeft (totalWidth, paddingChar)

        let inline replace (oldVa...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module CommonFSharp =

    open Common

    /// ## getUnionCaseName

    let inline getUnionCaseName<'T> (x: 'T) =
        match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with
        | case, _ -> case.Name


── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Async =

    open Common

    /// ## choice

    let inline choice asyncs = async {
        let e = Event<_> ()
        use cts = new System.Threading.CancellationTokenSource ()
        let fn =
            asyncs
            |> Seq.map (fun a -> async {
                let! x = a
                e.Trigger x
            })
            |> Async.Parallel
            |> Async.Ignore
        Async.Start (fn, cts.Token)
        let! result = Async.AwaitEvent e.Publish
        cts.Cancel ()
        return result
    }

    /// ## map

    let inline map fn a = async {
        let! x = a
        return fn x
    }

    /// ## catch

    let inline catch a =
        a
        |> Async.Catch
        ...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module AsyncSeq =

    open Common

    /// ## subscribeEvent

    let inline subscribeEvent (event: IEvent<'H, 'A>) map =
        let observable = System.Reactive.Linq.Observable.FromEventPattern<'H, 
'A>(event.AddHandler, event.RemoveHandler)
        System.Reactive.Linq.Observable.Select (observable, fun event -> map 
event.EventArgs)
        |> FSharp.Control.AsyncSeq.ofObservableBuffered

    let subscribeToken (token : System.Threading.CancellationToken) =
        let tcs = new System.Threading.Tasks.TaskCompletionSource ()
        System.Action tcs.SetResult |> token.Register |> ignore
        let start = System.DateTime.Now.Ticks
        FSharp.Control.AsyncSeq.unfoldAsync
            (fun (...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Runtime =

    open Common

    /// ## isWindows

    let isWindows =
        fun () ->
            System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform
                System.Runtime.InteropServices.OSPlatform.Windows
        |> memoize

    /// ## getExecutableSuffix

    let inline getExecutableSuffix () =
        if isWindows ()
        then ".exe"
        else ""

    /// ## splitCommand

    type private CommandParseStep =
        | Start
        | Path of quoted: bool
        | Arguments

    let splitCommand (command: string) =
        let rec loop (path, args) chars step =
            match chars, step with
            | ('"' | '\'') :: tail, _ when path = "" -> loop (pat...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module FileSystem =

    let File_system = {|
        create_temp_directory_name =
#if !INTERACTIVE
            File_system.create_temp_directory_name
#else
            create_temp_directory_name
#endif
    |}

    open Common

    /// ## Operators

    module Operators =
        let inline (</>) a b =
            System.IO.Path.Combine (a, b)

    open Operators

    /// ## createTempDirectory

    let inline createTempDirectory () =
        let tempFolder = File_system.create_temp_directory_name ()
        let result = System.IO.Directory.CreateDirectory tempFolder

        if not result.Exists then
            let getLocals () =
                $"tempFolder: {tempFolder} / result: {({|
        ...

── fsharp ──────────────────────────────────────────────────────────────────────
open Common
open FParsec

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## escapeCell (test)                                                         │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let inline escapeCell input =
    input
    |> String.split [[| '\n' |]]
    |> Array.map (function
        | line when line |> String.startsWith "\\#!" || line |> 
String.startsWith "\\#r" ->
            System.Text.RegularExpressions.Regex.Replace (line, "^\\\\#", "#")
        | line -> line
    )
    |> String.concat "\n"

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

$"a{nl}\\#!magic{nl}b{nl}"
|> escapeCell
|> _assertEqual (
    $"a{nl}#!magic{nl}b{nl}"
)

╭─[ 37.02ms - stdout ]─────────────────────────────────────────────────────────╮
│ a                                                                            │
│ #!magic                                                                      │
│ b                                                                            │
│                                                                              │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## magicMarker                                                               │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let magicMarker : Parser<string, unit> = pstring "#!"

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

"#!magic"
|> run magicMarker
|> _assertEqual (
    Success ("#!", (), Position ("", 2, 1, 3))
)

╭─[ 31.00ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success                                                                      │
│       Item1: #!                                                              │
│       Item2: <null>                                                          │
│       Item3: Position                                                        │
│         Index: 2                                                             │
│         Line: 1                                                              │
│         Column: 3                                                            │
│         StreamName:                                                          │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

"##!magic"
|> run magicMarker
|> _assertEqual (
    Failure (
        $"Error in Ln: 1 Col: 1{nl}##!magic{nl}^{nl}Expecting: '#!'{nl}",
        ParserError (
            Position ("", 0, 1, 1),
            (),
            ErrorMessageList (ExpectedString "#!")
        ),
        ()
    )
)

╭─[ 33.24ms - stdout ]─────────────────────────────────────────────────────────╮
│ Failure                                                                      │
│       Item1: Error in Ln: 1 Col: 1                                           │
│ ##!magic                                                                     │
│ ^                                                                            │
│ Expecting: '#!'                                                              │
│                                                                              │
│       Item2: ParserError                                                     │
│         Position: Position                                                   │
│           Index: 0                                                           │
│           Line: 1                                                            │
│           Column: 1                                                          │
│           StreamName:                                                        │
│         UserState: <null>                                                    │
│         Messages: ErrorMessageList                                           │
│           Head: ExpectedString                                               │
│             String: #!                                                       │
│             Type: ExpectedString                                             │
│           Tail: <null>                                                       │
│       Item3: <null>                                                          │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## magicCommand                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let magicCommand =
    magicMarker
    >>. manyTill anyChar newline
    |>> (System.String.Concat >> String.trim)

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

"#!magic

a"
|> run magicCommand
|> _assertEqual (
    Success ("magic", (), Position ("", 8, 2, 1))
)

╭─[ 16.52ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success                                                                      │
│       Item1: magic                                                           │
│       Item2: <null>                                                          │
│       Item3: Position                                                        │
│         Index: 8                                                             │
│         Line: 2                                                              │
│         Column: 1                                                            │
│         StreamName:                                                          │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

" #!magic

a"
|> run magicCommand
|> _assertEqual (
    Failure (
        $"Error in Ln: 1 Col: 1{nl} #!magic{nl}^{nl}Expecting: '#!'{nl}",
        ParserError (
            Position ("", 0, 1, 1),
            (),
            ErrorMessageList (ExpectedString "#!")
        ),
        ()
    )
)

╭─[ 18.47ms - stdout ]─────────────────────────────────────────────────────────╮
│ Failure                                                                      │
│       Item1: Error in Ln: 1 Col: 1                                           │
│  #!magic                                                                     │
│ ^                                                                            │
│ Expecting: '#!'                                                              │
│                                                                              │
│       Item2: ParserError                                                     │
│         Position: Position                                                   │
│           Index: 0                                                           │
│           Line: 1                                                            │
│           Column: 1                                                          │
│           StreamName:                                                        │
│         UserState: <null>                                                    │
│         Messages: ErrorMessageList                                           │
│           Head: ExpectedString                                               │
│             String: #!                                                       │
│             Type: ExpectedString                                             │
│           Tail: <null>                                                       │
│       Item3: <null>                                                          │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## content                                                                   │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let content =
    (newline >>. magicMarker) <|> (eof >>. preturn "")
    |> attempt
    |> lookAhead
    |> manyTill anyChar
    |>> (System.String.Concat >> String.trim)

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

"#!magic


a


"
|> run content
|> _assertEqual (
    Success ("#!magic


a", (), Position ("", 14, 7, 1))
)

╭─[ 15.59ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success                                                                      │
│       Item1: #!magic                                                         │
│                                                                              │
│                                                                              │
│ a                                                                            │
│       Item2: <null>                                                          │
│       Item3: Position                                                        │
│         Index: 14                                                            │
│         Line: 7                                                              │
│         Column: 1                                                            │
│         StreamName:                                                          │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## Block                                                                     │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
type Block =
    {
        magic : string
        content : string
    }

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## block                                                                     │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let block =
    pipe2
        magicCommand
        content
        (fun magic content ->
            {
                magic = magic
                content = content
            })

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

"#!magic


a


"
|> run block
|> _assertEqual (
    Success (
        { magic = "magic"; content = "a" },
        (),
        Position ("", 14, 7, 1)
    )
)

╭─[ 19.20ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success                                                                      │
│       Item1: Block                                                           │
│         magic: magic                                                         │
│         content: a                                                           │
│       Item2: <null>                                                          │
│       Item3: Position                                                        │
│         Index: 14                                                            │
│         Line: 7                                                              │
│         Column: 1                                                            │
│         StreamName:                                                          │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## blocks                                                                    │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let blocks =
    skipMany newline
    >>. sepEndBy block (skipMany1 newline)

── fsharp ──────────────────────────────────────────────────────────────────────
//// test


"#!magic1

a

\#!magic2

b

"
|> escapeCell
|> run blocks
|> _assertEqual (
    Success (
        [[
            { magic = "magic1"; content = "a" }
            { magic = "magic2"; content = "b" }
        ]],
        (),
        Position ("", 26, 9, 1)
    )
)

╭─[ 25.95ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success                                                                      │
│       Item1: FSharpList<Block>                                               │
│         - magic: magic1                                                      │
│           content: a                                                         │
│         - magic: magic2                                                      │
│           content: b                                                         │
│       Item2: <null>                                                          │
│       Item3: Position                                                        │
│         Index: 26                                                            │
│         Line: 9                                                              │
│         Column: 1                                                            │
│         StreamName:                                                          │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## Output                                                                    │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
type Output =
    | Fs
    | Md
    | Spi
    | Spir

let inline kernelOutputs magic =
    match magic with
    | "fsharp" -> [[ Fs ]]
    | "markdown" -> [[ Md ]]
    | "spiral" -> [[ Spi; Spir ]]
    | _ -> [[]]

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## formatBlock                                                               │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline formatBlock output (block : Block) =
    match output, block with
    | output, { magic = "markdown"; content = content } ->
        let markdownComment =
            match output with
            | Spi | Spir -> "// // "
            | Fs -> "/// "
            | _ -> ""
        content
        |> String.split [[| '\n' |]]
        |> Array.map (String.trimEnd [[||]])
        |> Array.filter (String.endsWith " (test)" >> not)
        |> Array.map (function
            | "" -> markdownComment |> String.trim
            | line -> System.Text.RegularExpressions.Regex.Replace (line, 
"^\\s*", $"$&{markdownComment}")
        )
        |> String.concat "\n"
    | Fs, { magic = "fsharp"; content = content } ->
        let trimmedContent = content |> String.trim
        if trimmedContent |> String.startsWith "//// test" || trimmedContent |> 
String.startsWith "//// ignore"
        then ""
        else
            content
            |> String.split [[| '\n' |]]
            |> Array.filter (String.trimStart [[||]] >> String.startsWith "#r" 
>> not)
            |> String.concat "\n"
    | (Spi | Spir), { magic = "spiral"; content = content } ->
        let trimmedContent = content |> String.trim
        if trimmedContent |> String.startsWith "// // test" || trimmedContent |>
String.startsWith "// // ignore"
        then ""
        else content
    | _ -> ""

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

"#!markdown


a

    b

c


\#!markdown


c


\#!fsharp


let a = 1"
|> escapeCell
|> run block
|> function
    | Success (block, _, _) -> formatBlock Fs block
    | Failure (msg, _, _) -> failwith msg
|> _assertEqual "/// a
///
    /// b
///
/// c"

╭─[ 38.33ms - stdout ]─────────────────────────────────────────────────────────╮
│ /// a                                                                        │
│ ///                                                                          │
│     /// b                                                                    │
│ ///                                                                          │
│ /// c                                                                        │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## formatBlocks                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline formatBlocks output blocks =
    blocks
    |> List.map (formatBlock output)
    |> List.filter ((<>) "")
    |> String.concat "\n\n"
    |> fun s -> s + "\n"

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

"#!markdown


a

b


\#!markdown


c


\#!fsharp


let a = 1

\#!markdown

d (test)

\#!fsharp

//// test

let a = 2

\#!markdown

e

\#!fsharp

let a = 3"
|> escapeCell
|> run blocks
|> function
    | Success (blocks, _, _) -> formatBlocks Fs blocks
    | Failure (msg, _, _) -> failwith msg
|> _assertEqual "/// a
///
/// b

/// c

let a = 1

/// e

let a = 3
"

╭─[ 86.53ms - stdout ]─────────────────────────────────────────────────────────╮
│ /// a                                                                        │
│ ///                                                                          │
│ /// b                                                                        │
│                                                                              │
│ /// c                                                                        │
│                                                                              │
│ let a = 1                                                                    │
│                                                                              │
│ /// e                                                                        │
│                                                                              │
│ let a = 3                                                                    │
│                                                                              │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## parse                                                                     │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline parse output input =
    match run blocks input with
    | Success (blocks, _, _) ->
        let blocks =
            blocks
            |> List.filter (fun block ->
                block.magic |> kernelOutputs |> List.contains output || 
block.magic = "markdown"
            )

        match blocks with
        | { magic = "markdown"; content = content } :: _
            when output = Fs
            && content |> String.startsWith "# "
            && content |> String.endsWith ")"
            ->
            let inline indentBlock (block : Block) =
                { block with
                    content =
                        block.content
                        |> String.split [[| '\n' |]]
                        |> Array.fold
                            (fun (lines, isMultiline) line ->
                                let trimmedLine = line |> String.trim
                                if trimmedLine = ""
                                then "" :: lines, isMultiline
                                else
                                    let inline singleQuoteLine () =
                                        trimmedLine |> Seq.sumBy ((=) '"' >> 
System.Convert.ToInt32) = 1
                                        && trimmedLine |> String.contains 
@"'""'" |> not
                                        && trimmedLine |> String.endsWith "{" |>
not
                                        && trimmedLine |> String.endsWith "{|" 
|> not
                                        && trimmedLine |> String.startsWith "}" 
|> not
                                        && trimmedLine |> String.startsWith "|}"
|> not

                                    match isMultiline, trimmedLine |> 
String.splitString [[| $"{q}{q}{q}" |]] with
                                    | false, [[| _; _ |]] ->
                                        $"    {line}" :: lines, true

                                    | true, [[| _; _ |]] ->
                                        line :: lines, false

                                    | false, _ when singleQuoteLine () ->
                                        $"    {line}" :: lines, true

                                    | false, _ when line |> String.startsWith 
"#" && block.magic = "fsharp" ->
                                        line :: lines, false

                                    | false, _ ->
                                        $"    {line}" :: lines, false

                                    | true, _ when singleQuoteLine () && line |>
String.startsWith "    " ->
                                        $"    {line}" :: lines, false

                                    | true, _ when singleQuoteLine () ->
                                        line :: lines, false

                                    | true, _ ->
                                        line :: lines, true
                            )
                            ([[]], false)
                        |> fst
                        |> List.rev
                        |> String.concat "\n"
                }

            let moduleName, namespaceName =
                System.Text.RegularExpressions.Regex.Match (content, @"# (.*) 
\((.*)\)$")
                |> fun m -> m.Groups.[[1]].Value, m.Groups.[[2]].Value

            let moduleBlock =
                {
                    magic = "fsharp"
                    content =
                        $"#if !INTERACTIVE
namespace {namespaceName}
#endif

module {moduleName} ="
                }

            blocks
            |> List.indexed
            |> List.fold
                (fun blocks (index, block) ->
                    match index with
                    | 0 -> blocks
                    | 1 -> indentBlock block :: moduleBlock :: blocks
                    | _ -> indentBlock block :: blocks
                )
                [[]]
            |> List.rev
        | _ -> blocks
        |> Result.Ok
    | Failure (errorMsg, _, _) -> Result.Error errorMsg

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let example1 =
    $"""#!meta

{{"kernelInfo":{{"defaultKernelName":"fsharp","items":[[{{"aliases":[[]],"name":
"fsharp"}},{{"aliases":[[]],"name":"fsharp"}}]]}}}}

\#!markdown

# TestModule (TestNamespace)

\#!fsharp

\#!import file.dib

\#!fsharp

\#r "nuget:Expecto"

\#!markdown

## ParserLibrary

\#!fsharp

open System

\#!markdown

## x (test)

\#!fsharp

//// ignore

let x = 1

\#!spiral

// // test

inl x = 0i32

\#!spiral

inl x = 0i32

\#!markdown

### TextInput

\#!fsharp

let str1 = "abc
def"

let str2 =
    "abc\
def"

let str3 =
    $"1{{
        1
    }}1"

let str4 =
    $"1{{({{|
        a = 1
    |}}).a}}1"

let str5 =
    "abc \
        def"

let x =
    match '"' with
    | '"' -> true
    | _ -> false

let long1 = {q}{q}{q}a{q}{q}{q}

let long2 =
    {q}{q}{q}
a
{q}{q}{q}

\#!fsharp

type Position =
    {{
#if INTERACTIVE
        line : string
#else
        line : int
#endif
        column : int
    }}"""
    |> escapeCell

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

example1
|> parse Fs
|> Result.toOption
|> Option.get
|> (formatBlocks Fs)
|> _assertEqual $"""#if !INTERACTIVE
namespace TestNamespace
#endif

module TestModule =

    /// ## ParserLibrary

    open System

    /// ### TextInput

    let str1 = "abc
def"

    let str2 =
        "abc\
def"

    let str3 =
        $"1{{
            1
        }}1"

    let str4 =
        $"1{{({{|
            a = 1
        |}}).a}}1"

    let str5 =
        "abc \
            def"

    let x =
        match '"' with
        | '"' -> true
        | _ -> false

    let long1 = {q}{q}{q}a{q}{q}{q}

    let long2 =
        {q}{q}{q}
a
{q}{q}{q}

    type Position =
        {{
#if INTERACTIVE
            line : string
#else
            line : int
#endif
            column : int
        }}
"""

╭─[ 106.45ms - stdout ]────────────────────────────────────────────────────────╮
│ #if !INTERACTIVE                                                             │
│ namespace TestNamespace                                                      │
│ #endif                                                                       │
│                                                                              │
│ module TestModule =                                                          │
│                                                                              │
│     /// ## ParserLibrary                                                     │
│                                                                              │
│     open System                                                              │
│                                                                              │
│     /// ### TextInput                                                        │
│                                                                              │
│     let str1 = "abc                                                          │
│ def"                                                                         │
│                                                                              │
│     let str2 =                                                               │
│         "abc\                                                                │
│ def"                                                                         │
│                                                                              │
│     let str3 =                                                               │
│         $"1{                                                                 │
│             1                                                                │
│         }1"                                                                  │
│                                                                              │
│     let str4 =                                                               │
│         $"1{({|                                                              │
│             a = 1                                                            │
│         |}).a}1"                                                             │
│                                                                              │
│     let str5 =                                                               │
│         "abc \                                                               │
│             def"                                                             │
│                                                                              │
│     let x =                                                                  │
│         match '"' with                                                       │
│         | '"' -> true                                                        │
│         | _ -> false                                                         │
│                                                                              │
│     let long1 = """a"""                                                      │
│                                                                              │
│     let long2 =                                                              │
│         """                                                                  │
│ a                                                                            │
│ """                                                                          │
│                                                                              │
│     type Position =                                                          │
│         {                                                                    │
│ #if INTERACTIVE                                                              │
│             line : string                                                    │
│ #else                                                                        │
│             line : int                                                       │
│ #endif                                                                       │
│             column : int                                                     │
│         }                                                                    │
│                                                                              │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

example1
|> parse Md
|> Result.toOption
|> Option.get
|> (formatBlocks Md)
|> _assertEqual "# TestModule (TestNamespace)

## ParserLibrary

### TextInput
"

╭─[ 95.02ms - stdout ]─────────────────────────────────────────────────────────╮
│ # TestModule (TestNamespace)                                                 │
│                                                                              │
│ ## ParserLibrary                                                             │
│                                                                              │
│ ### TextInput                                                                │
│                                                                              │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

example1
|> parse Spi
|> Result.toOption
|> Option.get
|> (formatBlocks Spi)
|> _assertEqual "// // # TestModule (TestNamespace)

// // ## ParserLibrary

inl x = 0i32

// // ### TextInput
"

╭─[ 125.72ms - stdout ]────────────────────────────────────────────────────────╮
│ // // # TestModule (TestNamespace)                                           │
│                                                                              │
│ // // ## ParserLibrary                                                       │
│                                                                              │
│ inl x = 0i32                                                                 │
│                                                                              │
│ // // ### TextInput                                                          │
│                                                                              │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## parseDibCode                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline parseDibCode output file = async {
    let getLocals () = $"output: {output} / file: {file} / {getLocals ()}"
    trace Debug (fun () -> "parseDibCode") getLocals
    let! input = file |> FileSystem.readAllTextAsync
    match parse output input with
    | Result.Ok blocks -> return blocks |> formatBlocks output
    | Result.Error msg -> return failwith msg
}

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## writeDibCode                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline writeDibCode output path = async {
    let getLocals () = $"output: {output} / path: {path} / {getLocals ()}"
    trace Debug (fun () -> "writeDibCode") getLocals
    let! result = parseDibCode output path
    let outputPath = path |> String.replace ".dib" $".{output |> string |> 
String.toLower}"
    do! result |> FileSystem.writeAllTextAsync outputPath
}

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## Arguments                                                                 │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
[[<RequireQualifiedAccess>]]
type Arguments =
    | [[<Argu.ArguAttributes.MainCommand; Argu.ArguAttributes.Mandatory>]]
        File of file : string * Output

    interface Argu.IArgParserTemplate with
        member s.Usage =
            match s with
            | File _ -> nameof File

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

Argu.ArgumentParser.Create<Arguments>().PrintUsage ()

╭─[ 77.80ms - return value ]───────────────────────────────────────────────────╮
│ USAGE: dotnet-repl [--help] <file> <fs|md|spi|spir>                          │
│                                                                              │
│ FILE:                                                                        │
│                                                                              │
│     <file> <fs|md|spi|spir>                                                  │
│                           File                                               │
│                                                                              │
│ OPTIONS:                                                                     │
│                                                                              │
│     --help                display this list of options.                      │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## main                                                                      │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let main args =
    let argsMap = args |> Runtime.parseArgsMap<Arguments>

    let files =
        argsMap.[[nameof Arguments.File]]
        |> List.map (function
            | Arguments.File (path, output) -> path, output
        )

    files
    |> List.map (fun (path, output) -> path |> writeDibCode output)
    |> Async.Parallel
    |> Async.Ignore
    |> Async.runWithTimeout 30000
    |> function
        | Some () -> 0
        | None -> 1

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let args =
    System.Environment.GetEnvironmentVariable "ARGS"
    |> Runtime.splitArgs
    |> Seq.toArray

match args with
| [[||]] -> 0
| args -> if main args = 0 then 0 else failwith "main failed"

╭─[ 108.55ms - return value ]──────────────────────────────────────────────────╮
│ <div class="dni-plaintext"><pre>0</pre></div><style>                         │
│ .dni-code-hint {                                                             │
│     font-style: italic;                                                      │
│     overflow: hidden;                                                        │
│     white-space: nowrap;                                                     │
│ }                                                                            │
│ .dni-treeview {                                                              │
│     white-space: nowrap;                                                     │
│ }                                                                            │
│ .dni-treeview td {                                                           │
│     vertical-align: top;                                                     │
│     text-align: start;                                                       │
│ }                                                                            │
│ details.dni-treeview {                                                       │
│     padding-left: 1em;                                                       │
│ }                                                                            │
│ table td {                                                                   │
│     text-align: start;                                                       │
│ }                                                                            │
│ table tr {                                                                   │
│     vertical-align: top;                                                     │
│     margin: 0em 0px;                                                         │
│ }                                                                            │
│ table tr td pre                                                              │
│ {                                                                            │
│     vertical-align: top !important;                                          │
│     margin: 0em 0px !important;                                              │
│ }                                                                            │
│ table th {                                                                   │
│     text-align: start;                                                       │
│ }                                                                            │
│ </style>                                                                     │
╰──────────────────────────────────────────────────────────────────────────────╯

╭─[ 109.82ms - stdout ]────────────────────────────────────────────────────────╮
│ 00:00:00 #1 [Debug] writeDibCode / output: Fs / path: Builder.dib            │
│ 00:00:00 #2 [Debug] parseDibCode / output: Fs / file: Builder.dib            │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ # Builder (Polyglot)                                                         │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/fsharp/Notebooks.dib
#!import ../../lib/fsharp/Testing.dib

── fsharp - import ─────────────────────────────────────────────────────────────
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Asp
NetCore.Html.Abstractions.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.FSharp.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.Formatting.dll"
open System
open System.IO
open System.Text
open Microsoft.DotNet.Interactive.Formatting

── fsharp - import ─────────────────────────────────────────────────────────────
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.FSharp.dll"
open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.dll"
open type Microsoft.DotNet.Interactive.Kernel

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

Formatter.ListExpansionLimit <- 100

── fsharp - import ─────────────────────────────────────────────────────────────
#r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

type AssertExceptionFormatter (ex) =
    member _.Text =
        ex.ToString()
            .Replace("32m", "<span style=\"color: green;\">")
            .Replace("36m", "</span>")
            .Replace("31m", "<span style=\"color: red;\">")
            .Replace("\n", "<br/>\n")


Formatter.Register<AssertExceptionFormatter> ((fun (x : 
AssertExceptionFormatter) -> x.Text), "text/html")

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

let inline __expect fn log expected actual =
    if log then printfn $"{actual.ToDisplayString ()}"
    try
        "Testing.__expect" |> fn actual expected
    with :? Expecto.AssertException as ex ->
        AssertExceptionFormatter(ex).Display () |> ignore
        failwith (ex.GetType().FullName)

let inline __contains log expected actual = __expect Expecto.Expect.contains log
expected actual
let inline _contains expected actual = __contains true expected actual

let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
expected actual
let inline _assertEqual expected actual = __assertEqual true expected actual

let inline __isGreaterThan log expected actual = __expect 
Expecto.Expect.isGreaterThan log ex...

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

let inline __isBetween log a b actual =
    let inline isBetween actual (a, b) _ =
        __isGreaterThanOrEqual log a actual
        __isLessThanOrEqual log b actual
    __expect isBetween log (a, b) actual
let inline _isBetween a b actual = __isBetween true a b actual

── fsharp ──────────────────────────────────────────────────────────────────────
#r 
@"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
dard2.1/FSharp.Control.AsyncSeq.dll"
#r 
@"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
0/System.Reactive.dll"
#r 
@"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/
netstandard2.0/System.Reactive.Linq.dll"
#r 
@"../../../../../../../.nuget/packages/argu/6.2.2/lib/netstandard2.0/Argu.dll"
#r 
@"../../../../../../../.nuget/packages/system.commandline/2.0.0-beta4.22272.1/li
b/net6.0/System.CommandLine.dll"

── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/spiral/common.fsx
#!import ../../lib/spiral/date_time.fsx
#!import ../../lib/spiral/file_system.fsx
#!import ../../lib/fsharp/Common.fs
#!import ../../lib/fsharp/CommonFSharp.fs
#!import ../../lib/fsharp/Async.fs
#!import ../../lib/fsharp/AsyncSeq.fs
#!import ../../lib/fsharp/Networking.fs
#!import ../../lib/fsharp/Runtime.fs
#!import ../../lib/fsharp/FileSystem.fs

── fsharp - import ─────────────────────────────────────────────────────────────
type [[<Struct>]] US0 =
    | US0_0
    | US0_1
and [[<Struct>]] US1 =
    | US1_0
    | US1_1 of f1_0 : US0
let rec method0 (v0 : (unit -> unit)) : (unit -> unit) =
    v0
and closure0 () (v0 : (unit -> unit)) : System.IDisposable =
    let mutable result = None
    #if FABLE_COMPILER_RUST && !WASM
    let v1 : (unit -> unit) = method0(v0)
    let v2 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v1()" }
    v2
    #endif
    #if FABLE_COMPILER_RUST && WASM
    let v3 : (unit -> unit) = method0(v0)
    let v4 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v3()" }
    v4
    #endif
    #if !FABLE_COMPILER && !F...

── fsharp - import ─────────────────────────────────────────────────────────────
let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
    let v2 : string = v0.ToString ()
    let v3 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
    let v4 : System.Guid = System.Guid $"{v3}{v2.[[v3.Length..]]}"
    v4
and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
    closure1(v0)
and closure5 (v0 : string, v1 : string) (v2 : string) : string =
    let v3 : string = v2.Replace (v0, v1)
    v3
and closure4 (v0 : string) (v1 : string) : (string -> string) =
    closure5(v0, v1)
and closure3 () (v0 : string) : (string -> (string -> string)) =
    closure4(v0)
and method0 () : (string -> (string -> (string -> string))) =
    closure3()
and closure2 () (v0 : System.Guid) : System.DateTime =
  ...

── fsharp - import ─────────────────────────────────────────────────────────────
let rec closure0 () () : string =
    let v0 : string = 
System.Reflection.Assembly.GetEntryAssembly().GetName().Name
    let v1 : (unit -> string) = System.IO.Path.GetTempPath
    let v2 : string = v1 ()
    let v3 : string = $"{v0}"
    let v4 : string = System.IO.Path.Combine (v2, v3)
    let v5 : System.DateTime = System.DateTime.Now
    let v6 : System.Guid = System.Guid.NewGuid ()
    let v7 : string = v6.ToString ()
    let v8 : string = v5.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
    let v9 : System.Guid = System.Guid $"{v8}{v7.[[v8.Length..]]}"
    let v10 : string = v9.ToString ()
    let v11 : string = System.IO.Path.Combine (v4, v10)
    v11
let v0 : (unit -> string) = closure0()
let create_temp_directory_name x = v0 x
()


── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Common =

#if !WASM && !FABLE_COMPILER
    let Date_time = {|
        new_guid_from_date_time =
#if !INTERACTIVE
            Date_time.new_guid_from_date_time
#else
            new_guid_from_date_time
#endif
    |}
#endif

    let nl = System.Environment.NewLine
    let q = @""""

    let inline cons head tail = head :: tail

    module String =
        let inline contains (value : string) (input : string) =
            input.Contains value

        let inline endsWith (value : string) (input : string) =
            input.EndsWith value

        let inline padLeft totalWidth paddingChar (input : string) =
            input.PadLeft (totalWidth, paddingChar)

        let inline replace (oldVa...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module CommonFSharp =

    open Common

    /// ## getUnionCaseName

    let inline getUnionCaseName<'T> (x: 'T) =
        match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with
        | case, _ -> case.Name


── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Async =

    open Common

    /// ## choice

    let inline choice asyncs = async {
        let e = Event<_> ()
        use cts = new System.Threading.CancellationTokenSource ()
        let fn =
            asyncs
            |> Seq.map (fun a -> async {
                let! x = a
                e.Trigger x
            })
            |> Async.Parallel
            |> Async.Ignore
        Async.Start (fn, cts.Token)
        let! result = Async.AwaitEvent e.Publish
        cts.Cancel ()
        return result
    }

    /// ## map

    let inline map fn a = async {
        let! x = a
        return fn x
    }

    /// ## catch

    let inline catch a =
        a
        |> Async.Catch
        ...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module AsyncSeq =

    open Common

    /// ## subscribeEvent

    let inline subscribeEvent (event: IEvent<'H, 'A>) map =
        let observable = System.Reactive.Linq.Observable.FromEventPattern<'H, 
'A>(event.AddHandler, event.RemoveHandler)
        System.Reactive.Linq.Observable.Select (observable, fun event -> map 
event.EventArgs)
        |> FSharp.Control.AsyncSeq.ofObservableBuffered

    let subscribeToken (token : System.Threading.CancellationToken) =
        let tcs = new System.Threading.Tasks.TaskCompletionSource ()
        System.Action tcs.SetResult |> token.Register |> ignore
        let start = System.DateTime.Now.Ticks
        FSharp.Control.AsyncSeq.unfoldAsync
            (fun (...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Networking =

    open Common

    /// ## testPortOpen

    let inline testPortOpen port = async {
        let! ct = Async.CancellationToken
        use client = new System.Net.Sockets.TcpClient ()
        try
            do! client.ConnectAsync ("127.0.0.1", port, ct) |> 
Async.awaitValueTaskUnit
            return true
        with ex ->
            trace Verbose (fun () -> $"testPortOpen / ex: {ex |> 
formatException}") getLocals
            return false
    }

    let inline testPortOpenTimeout timeout port = async {
        let! result =
            testPortOpen port
            |> Async.runWithTimeoutAsync timeout
        return
            match result with
            | None -> false
...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Runtime =

    open Common

    /// ## isWindows

    let isWindows =
        fun () ->
            System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform
                System.Runtime.InteropServices.OSPlatform.Windows
        |> memoize

    /// ## getExecutableSuffix

    let inline getExecutableSuffix () =
        if isWindows ()
        then ".exe"
        else ""

    /// ## splitCommand

    type private CommandParseStep =
        | Start
        | Path of quoted: bool
        | Arguments

    let splitCommand (command: string) =
        let rec loop (path, args) chars step =
            match chars, step with
            | ('"' | '\'') :: tail, _ when path = "" -> loop (pat...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module FileSystem =

    let File_system = {|
        create_temp_directory_name =
#if !INTERACTIVE
            File_system.create_temp_directory_name
#else
            create_temp_directory_name
#endif
    |}

    open Common

    /// ## Operators

    module Operators =
        let inline (</>) a b =
            System.IO.Path.Combine (a, b)

    open Operators

    /// ## createTempDirectory

    let inline createTempDirectory () =
        let tempFolder = File_system.create_temp_directory_name ()
        let result = System.IO.Directory.CreateDirectory tempFolder

        if not result.Exists then
            let getLocals () =
                $"tempFolder: {tempFolder} / result: {({|
        ...

── fsharp ──────────────────────────────────────────────────────────────────────
open Common
open FileSystem.Operators

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## buildProject                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline buildProject runtime outputDir path = async {
    let fullPath = path |> System.IO.Path.GetFullPath
    let fileDir = fullPath |> System.IO.Path.GetDirectoryName
    let extension = fullPath |> System.IO.Path.GetExtension

    let getLocals () = $"fullPath: {fullPath} / {getLocals ()}"
    trace Debug (fun () -> "buildProject") getLocals

    match extension with
    | ".fsproj" -> ()
    | _ -> failwith "Invalid project file"

    let runtimes =
        runtime
        |> Option.map List.singleton
        |> Option.defaultValue [[ "linux-x64"; "win-x64" ]]

    let outputDir = outputDir |> Option.defaultValue "dist"

    return!
        runtimes
        |> List.map (fun runtime -> async {
            let! exitCode, _result =
                Runtime.executeWithOptionsAsync
                    {
                        Command = $@"dotnet publish ""{path}"" --configuration 
Release --output ""{outputDir}"" --runtime {runtime}"
                        CancellationToken = None
                        OnLine = None
                        WorkingDirectory = Some fileDir
                    }

            return exitCode
        })
        |> Async.Sequential
        |> Async.map Array.sum
}

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## persistCodeProject                                                        │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline persistCodeProject packages modules name code = async {
    let getLocals () = $"packages: {packages} / modules: {modules} / name: 
{name} / code.Length: {code |> String.length} / {getLocals ()}"
    trace Debug (fun () -> "persistCodeProject") getLocals

    let repositoryRoot = FileSystem.getSourceDirectory () |> 
FileSystem.findParent ".paket" false

    let targetDir = repositoryRoot </> "target/polyglot/builder" </> name
    System.IO.Directory.CreateDirectory targetDir |> ignore

    let filePath = targetDir </> $"{name}.fs" |> System.IO.Path.GetFullPath
    do! code |> FileSystem.writeAllTextExists filePath

    let modulesCode =
        modules
        |> List.map (fun path -> $"""<Compile Include="{repositoryRoot </> 
path}" />""")
        |> String.concat "\n        "

    let fsprojPath = targetDir </> $"{name}.fsproj"
    let fsprojCode = $"""<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
        <TargetFramework>net9.0</TargetFramework>
        <LangVersion>preview</LangVersion>
        <RollForward>Major</RollForward>
        <TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
        <PublishAot>false</PublishAot>
        <PublishTrimmed>false</PublishTrimmed>
        <PublishSingleFile>true</PublishSingleFile>
        <SelfContained>true</SelfContained>
        <Version>0.0.1-alpha.1</Version>
        <OutputType>Exe</OutputType>
    </PropertyGroup>

    <ItemGroup>
        {modulesCode}
        <Compile Include="{filePath}" />
    </ItemGroup>

    <Import Project="{repositoryRoot}/.paket/Paket.Restore.targets" />
</Project>
"""
    do! fsprojCode |> FileSystem.writeAllTextExists fsprojPath

    let paketReferencesPath = targetDir </> "paket.references"
    let paketReferencesCode =
        "FSharp.Core" :: packages
        |> String.concat "\n"
    do! paketReferencesCode |> FileSystem.writeAllTextExists paketReferencesPath

    return fsprojPath
}

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## buildCode                                                                 │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline buildCode runtime packages modules outputDir name code = async {
    let! fsprojPath = code |> persistCodeProject packages modules name
    return! fsprojPath |> buildProject runtime outputDir
}

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

"1 + 1 |> ignore"
|> buildCode None [[]] [[]] None "test1"
|> Async.runWithTimeout 180000
|> _assertEqual (Some 0)

╭─[ 15.27s - stdout ]──────────────────────────────────────────────────────────╮
│ 00:00:00 #1 [Debug] persistCodeProject / packages: [] / modules: [] / name:  │
│ test1 / code.Length: 15                                                      │
│ 00:00:00 #2 [Debug] buildProject / fullPath:                                 │
│ /home/runner/work/polyglot/polyglot/target/polyglot/builder/test1/test1.fspr │
│ oj                                                                           │
│ 00:00:00 #3 [Debug] executeAsync / options: { Command =                      │
│    "dotnet publish                                                           │
│ "/home/runner/work/polyglot/polyglot/target/polyglot/builder/test1/test1.fsp │
│ roj" --configuration Release --output "dist" --runtime linux-x64"            │
│   WorkingDirectory =                                                         │
│    Some "/home/runner/work/polyglot/polyglot/target/polyglot/builder/test1"  │
│   CancellationToken = None                                                   │
│   OnLine = None }                                                            │
│ 00:00:00 #4 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f   │
│ for .NET                                                                     │
│ 00:00:00 #5 [Verbose] >   Determining projects to restore...                 │
│ 00:00:00 #6 [Verbose] >   Paket version                                      │
│ 8.1.0-alpha001+8e77fe66ac27ddecf519e0df5a4d3327ca9250e2                      │
│ 00:00:01 #7 [Verbose] >   The last full restore is still up to date. Nothing │
│ left to do.                                                                  │
│ 00:00:01 #8 [Verbose] >   Total time taken: 0 milliseconds                   │
│ 00:00:01 #9 [Verbose] >   Paket version                                      │
│ 8.1.0-alpha001+8e77fe66ac27ddecf519e0df5a4d3327ca9250e2                      │
│ 00:00:01 #10 [Verbose] >   Restoring                                         │
│ /home/runner/work/polyglot/polyglot/target/polyglot/builder/test1/test1.fspr │
│ oj                                                                           │
│ 00:00:01 #11 [Verbose] >   Starting restore process.                         │
│ 00:00:01 #12 [Verbose] >   Total time taken: 0 milliseconds                  │
│ 00:00:02 #13 [Verbose] >   Retrying 'FindPackagesByIdAsync' for source       │
│ 'https://api.nuget.org/v3-flatcontainer/microsoft.aspnetcore.app.runtime.lin │
│ ux-x64/index.json'.                                                          │
│ 00:00:02 #14 [Verbose] >   The SSL connection could not be established, see  │
│ inner exception.                                                             │
│ 00:00:02 #15 [Verbose] >     Unable to read data from the transport          │
│ connection: Connection reset by peer.                                        │
│ 00:00:02 #16 [Verbose] >     Connection reset by peer                        │
│ 00:00:07 #17 [Verbose] >   Restored                                          │
│ /home/runner/work/polyglot/polyglot/target/polyglot/builder/test1/test1.fspr │
│ oj (in 5.3 sec).                                                             │
│ 00:00:07 #18 [Verbose] >                                                     │
│ /usr/share/dotnet/sdk/9.0.100-preview.1.24101.2/Sdks/Microsoft.NET.Sdk/targe │
│ ts/Microsoft.NET.RuntimeIdentifierInference.targets(313,5): message          │
│ NETSDK1057: You are using a preview version of .NET. See:                    │
│ https://aka.ms/dotnet-support-policy [                                       │
│ /home/runner/work/polyglot/polyglot/target/polyglot/builder/test1/test1.fspr │
│ oj]                                                                          │
│ 00:00:08 #19 [Verbose] >                                                     │
│ /home/runner/work/polyglot/polyglot/target/polyglot/builder/test1/test1.fs(1 │
│ ,16): warning FS0988: Main module of program is empty: nothing will happen   │
│ when it is run [                                                             │
│ /home/runner/work/polyglot/polyglot/target/polyglot/builder/test1/test1.fspr │
│ oj]                                                                          │
│ 00:00:08 #20 [Verbose] >   test1 ->                                          │
│ /home/runner/work/polyglot/polyglot/target/polyglot/builder/test1/bin/Releas │
│ e/net9.0/linux-x64/test1.dll                                                 │
│ 00:00:09 #21 [Verbose] >   test1 ->                                          │
│ /home/runner/work/polyglot/polyglot/target/polyglot/builder/test1/dist       │
│ 00:00:09 #22 [Debug] executeAsync / exitCode: 0 / output.Length: 1684        │
│ 00:00:09 #23 [Debug] executeAsync / options: { Command =                     │
│    "dotnet publish                                                           │
│ "/home/runner/work/polyglot/polyglot/target/polyglot/builder/test1/test1.fsp │
│ roj" --configuration Release --output "dist" --runtime win-x64"              │
│   WorkingDirectory =                                                         │
│    Some "/home/runner/work/polyglot/polyglot/target/polyglot/builder/test1"  │
│   CancellationToken = None                                                   │
│   OnLine = None }                                                            │
│ 00:00:09 #24 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f  │
│ for .NET                                                                     │
│ 00:00:09 #25 [Verbose] >   Determining projects to restore...                │
│ 00:00:12 #26 [Verbose] >   Restored                                          │
│ /home/runner/work/polyglot/polyglot/target/polyglot/builder/test1/test1.fspr │
│ oj (in 2.48 sec).                                                            │
│ 00:00:12 #27 [Verbose] >                                                     │
│ /usr/share/dotnet/sdk/9.0.100-preview.1.24101.2/Sdks/Microsoft.NET.Sdk/targe │
│ ts/Microsoft.NET.RuntimeIdentifierInference.targets(313,5): message          │
│ NETSDK1057: You are using a preview version of .NET. See:                    │
│ https://aka.ms/dotnet-support-policy [                                       │
│ /home/runner/work/polyglot/polyglot/target/polyglot/builder/test1/test1.fspr │
│ oj]                                                                          │
│ 00:00:14 #28 [Verbose] >                                                     │
│ /home/runner/work/polyglot/polyglot/target/polyglot/builder/test1/test1.fs(1 │
│ ,16): warning FS0988: Main module of program is empty: nothing will happen   │
│ when it is run [                                                             │
│ /home/runner/work/polyglot/polyglot/target/polyglot/builder/test1/test1.fspr │
│ oj]                                                                          │
│ 00:00:14 #29 [Verbose] >   test1 ->                                          │
│ /home/runner/work/polyglot/polyglot/target/polyglot/builder/test1/bin/Releas │
│ e/net9.0/win-x64/test1.dll                                                   │
│ 00:00:14 #30 [Verbose] >   test1 ->                                          │
│ /home/runner/work/polyglot/polyglot/target/polyglot/builder/test1/dist       │
│ 00:00:14 #31 [Debug] executeAsync / exitCode: 0 / output.Length: 965         │
│ FSharpOption<Int32>                                                          │
│       Value: 0                                                               │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

"1 + a |> ignore"
|> buildCode None [[]] [[]] None "test2"
|> Async.runWithTimeout 180000
|> _assertEqual (Some 2)

╭─[ 6.18s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:00:15 #32 [Debug] persistCodeProject / packages: [] / modules: [] / name: │
│ test2 / code.Length: 15                                                      │
│ 00:00:15 #33 [Debug] buildProject / fullPath:                                │
│ /home/runner/work/polyglot/polyglot/target/polyglot/builder/test2/test2.fspr │
│ oj                                                                           │
│ 00:00:15 #34 [Debug] executeAsync / options: { Command =                     │
│    "dotnet publish                                                           │
│ "/home/runner/work/polyglot/polyglot/target/polyglot/builder/test2/test2.fsp │
│ roj" --configuration Release --output "dist" --runtime linux-x64"            │
│   WorkingDirectory =                                                         │
│    Some "/home/runner/work/polyglot/polyglot/target/polyglot/builder/test2"  │
│   CancellationToken = None                                                   │
│   OnLine = None }                                                            │
│ 00:00:15 #35 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f  │
│ for .NET                                                                     │
│ 00:00:15 #36 [Verbose] >   Determining projects to restore...                │
│ 00:00:16 #37 [Verbose] >   Paket version                                     │
│ 8.1.0-alpha001+8e77fe66ac27ddecf519e0df5a4d3327ca9250e2                      │
│ 00:00:16 #38 [Verbose] >   The last full restore is still up to date.        │
│ Nothing left to do.                                                          │
│ 00:00:16 #39 [Verbose] >   Total time taken: 0 milliseconds                  │
│ 00:00:16 #40 [Verbose] >   Paket version                                     │
│ 8.1.0-alpha001+8e77fe66ac27ddecf519e0df5a4d3327ca9250e2                      │
│ 00:00:16 #41 [Verbose] >   Restoring                                         │
│ /home/runner/work/polyglot/polyglot/target/polyglot/builder/test2/test2.fspr │
│ oj                                                                           │
│ 00:00:16 #42 [Verbose] >   Starting restore process.                         │
│ 00:00:17 #43 [Verbose] >   Total time taken: 0 milliseconds                  │
│ 00:00:17 #44 [Verbose] >   Restored                                          │
│ /home/runner/work/polyglot/polyglot/target/polyglot/builder/test2/test2.fspr │
│ oj (in 259 ms).                                                              │
│ 00:00:17 #45 [Verbose] >                                                     │
│ /usr/share/dotnet/sdk/9.0.100-preview.1.24101.2/Sdks/Microsoft.NET.Sdk/targe │
│ ts/Microsoft.NET.RuntimeIdentifierInference.targets(313,5): message          │
│ NETSDK1057: You are using a preview version of .NET. See:                    │
│ https://aka.ms/dotnet-support-policy [                                       │
│ /home/runner/work/polyglot/polyglot/target/polyglot/builder/test2/test2.fspr │
│ oj]                                                                          │
│ 00:00:18 #46 [Verbose] >                                                     │
│ /home/runner/work/polyglot/polyglot/target/polyglot/builder/test2/test2.fs(1 │
│ ,5): error FS0039: The value or constructor 'a' is not defined. [            │
│ /home/runner/work/polyglot/polyglot/target/polyglot/builder/test2/test2.fspr │
│ oj]                                                                          │
│ 00:00:18 #47 [Debug] executeAsync / exitCode: 1 / output.Length: 1138        │
│ 00:00:18 #48 [Debug] executeAsync / options: { Command =                     │
│    "dotnet publish                                                           │
│ "/home/runner/work/polyglot/polyglot/target/polyglot/builder/test2/test2.fsp │
│ roj" --configuration Release --output "dist" --runtime win-x64"              │
│   WorkingDirectory =                                                         │
│    Some "/home/runner/work/polyglot/polyglot/target/polyglot/builder/test2"  │
│   CancellationToken = None                                                   │
│   OnLine = None }                                                            │
│ 00:00:18 #49 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f  │
│ for .NET                                                                     │
│ 00:00:19 #50 [Verbose] >   Determining projects to restore...                │
│ 00:00:19 #51 [Verbose] >   Restored                                          │
│ /home/runner/work/polyglot/polyglot/target/polyglot/builder/test2/test2.fspr │
│ oj (in 251 ms).                                                              │
│ 00:00:19 #52 [Verbose] >                                                     │
│ /usr/share/dotnet/sdk/9.0.100-preview.1.24101.2/Sdks/Microsoft.NET.Sdk/targe │
│ ts/Microsoft.NET.RuntimeIdentifierInference.targets(313,5): message          │
│ NETSDK1057: You are using a preview version of .NET. See:                    │
│ https://aka.ms/dotnet-support-policy [                                       │
│ /home/runner/work/polyglot/polyglot/target/polyglot/builder/test2/test2.fspr │
│ oj]                                                                          │
│ 00:00:21 #53 [Verbose] >                                                     │
│ /home/runner/work/polyglot/polyglot/target/polyglot/builder/test2/test2.fs(1 │
│ ,5): error FS0039: The value or constructor 'a' is not defined. [            │
│ /home/runner/work/polyglot/polyglot/target/polyglot/builder/test2/test2.fspr │
│ oj]                                                                          │
│ 00:00:21 #54 [Debug] executeAsync / exitCode: 1 / output.Length: 740         │
│ FSharpOption<Int32>                                                          │
│       Value: 2                                                               │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## readFile                                                                  │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline readFile path = async {
    let! code = path |> FileSystem.readAllTextAsync

    let code = System.Text.RegularExpressions.Regex.Replace (
        code,
        @"( *)(let\s+main\s+.*?\s*=)",
        fun m -> m.Groups.[[1]].Value + "[[<EntryPoint>]]\n" + 
m.Groups.[[1]].Value + m.Groups.[[2]].Value
    )

    let codeTrim = code |> String.trimEnd [[||]]
    return
        if codeTrim |> String.endsWith "\n()"
        then codeTrim |> String.substring 0 ((codeTrim |> String.length) - 2)
        else code
}

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## buildFile                                                                 │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline buildFile runtime packages modules path = async {
    let fullPath = path |> System.IO.Path.GetFullPath
    let dir = fullPath |> System.IO.Path.GetDirectoryName
    let name = fullPath |> System.IO.Path.GetFileNameWithoutExtension
    let! code = fullPath |> readFile
    return! code |> buildCode runtime packages modules (dir </> "dist" |> Some) 
name
}

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## persistFile                                                               │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline persistFile packages modules path = async {
    let fullPath = path |> System.IO.Path.GetFullPath
    let name = fullPath |> System.IO.Path.GetFileNameWithoutExtension
    let! code = fullPath |> readFile
    return! code |> persistCodeProject packages modules name
}

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## Arguments                                                                 │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
[[<RequireQualifiedAccess>]]
type Arguments =
    | [[<Argu.ArguAttributes.MainCommand; Argu.ArguAttributes.ExactlyOnce>]] 
Path of path : string
    | [[<Argu.ArguAttributes.Unique>]] Packages of packages : string list
    | [[<Argu.ArguAttributes.Unique>]] Modules of modules : string list
    | [[<Argu.ArguAttributes.Unique>]] Runtime of runtime : string
    | [[<Argu.ArguAttributes.Unique>]] Persist_Only

    interface Argu.IArgParserTemplate with
        member s.Usage =
            match s with
            | Path _ -> nameof Path
            | Packages _ -> nameof Packages
            | Modules _ -> nameof Modules
            | Runtime _ -> nameof Runtime
            | Persist_Only -> nameof Persist_Only

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

Argu.ArgumentParser.Create<Arguments>().PrintUsage ()

╭─[ 80.46ms - return value ]───────────────────────────────────────────────────╮
│ USAGE: dotnet-repl [--help] [--packages [<packages>...]]                     │
│                    [--modules [<modules>...]] [--runtime <runtime>]          │
│                    [--persist-only] <path>                                   │
│                                                                              │
│ PATH:                                                                        │
│                                                                              │
│     <path>                Path                                               │
│                                                                              │
│ OPTIONS:                                                                     │
│                                                                              │
│     --packages [<packages>...]                                               │
│                           Packages                                           │
│     --modules [<modules>...]                                                 │
│                           Modules                                            │
│     --runtime <runtime>   Runtime                                            │
│     --persist-only        Persist_Only                                       │
│     --help                display this list of options.                      │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## main                                                                      │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let main args =
    let argsMap = args |> Runtime.parseArgsMap<Arguments>

    let path =
        match argsMap.[[nameof Arguments.Path]] with
        | [[ Arguments.Path path ]] -> Some path
        | _ -> None
        |> Option.get

    let packages =
        match argsMap |> Map.tryFind (nameof Arguments.Packages) with
        | Some [[ Arguments.Packages packages ]] -> packages
        | _ -> [[]]

    let modules =
        match argsMap |> Map.tryFind (nameof Arguments.Modules) with
        | Some [[ Arguments.Modules modules ]] -> modules
        | _ -> [[]]

    let runtime =
        match argsMap |> Map.tryFind (nameof Arguments.Runtime) with
        | Some [[ Arguments.Runtime runtime ]] -> Some runtime
        | _ -> None

    let persistOnly = argsMap |> Map.containsKey (nameof Arguments.Persist_Only)

    if persistOnly
    then path |> persistFile packages modules |> Async.map (fun _ -> 0)
    else path |> buildFile runtime packages modules
    |> Async.runWithTimeout (60000 * 60)
    |> function
        | Some exitCode -> exitCode
        | None -> 1

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let args =
    System.Environment.GetEnvironmentVariable "ARGS"
    |> Runtime.splitArgs
    |> Seq.toArray

match args with
| [[||]] -> 0
| args -> if main args = 0 then 0 else failwith "main failed"

╭─[ 7.83s - return value ]─────────────────────────────────────────────────────╮
│ <div class="dni-plaintext"><pre>0</pre></div><style>                         │
│ .dni-code-hint {                                                             │
│     font-style: italic;                                                      │
│     overflow: hidden;                                                        │
│     white-space: nowrap;                                                     │
│ }                                                                            │
│ .dni-treeview {                                                              │
│     white-space: nowrap;                                                     │
│ }                                                                            │
│ .dni-treeview td {                                                           │
│     vertical-align: top;                                                     │
│     text-align: start;                                                       │
│ }                                                                            │
│ details.dni-treeview {                                                       │
│     padding-left: 1em;                                                       │
│ }                                                                            │
│ table td {                                                                   │
│     text-align: start;                                                       │
│ }                                                                            │
│ table tr {                                                                   │
│     vertical-align: top;                                                     │
│     margin: 0em 0px;                                                         │
│ }                                                                            │
│ table tr td pre                                                              │
│ {                                                                            │
│     vertical-align: top !important;                                          │
│     margin: 0em 0px !important;                                              │
│ }                                                                            │
│ table th {                                                                   │
│     text-align: start;                                                       │
│ }                                                                            │
│ </style>                                                                     │
╰──────────────────────────────────────────────────────────────────────────────╯

╭─[ 7.83s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:00:22 #55 [Debug] persistCodeProject / packages: [Argu;                   │
│ FSharp.Control.AsyncSeq; System.CommandLine; ... ] / modules: [              │
│ lib/spiral/common.fsx; lib/spiral/date_time.fsx; lib/spiral/file_system.fsx; │
│ ... ] / name: Builder / code.Length: 7086                                    │
│ 00:00:22 #56 [Debug] buildProject / fullPath:                                │
│ /home/runner/work/polyglot/polyglot/target/polyglot/builder/Builder/Builder. │
│ fsproj                                                                       │
│ 00:00:22 #57 [Debug] executeAsync / options: { Command =                     │
│    "dotnet publish                                                           │
│ "/home/runner/work/polyglot/polyglot/target/polyglot/builder/Builder/Builder │
│ .fsproj" --configuration Release --output                                    │
│ "/home/runner/work/polyglot/polyglot/apps/builder/dist" --runtime linux-x64" │
│   WorkingDirectory =                                                         │
│    Some                                                                      │
│ "/home/runner/work/polyglot/polyglot/target/polyglot/builder/Builder"        │
│   CancellationToken = None                                                   │
│   OnLine = None }                                                            │
│ 00:00:22 #58 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f  │
│ for .NET                                                                     │
│ 00:00:22 #59 [Verbose] >   Determining projects to restore...                │
│ 00:00:23 #60 [Verbose] >   Paket version                                     │
│ 8.1.0-alpha001+8e77fe66ac27ddecf519e0df5a4d3327ca9250e2                      │
│ 00:00:23 #61 [Verbose] >   The last full restore is still up to date.        │
│ Nothing left to do.                                                          │
│ 00:00:23 #62 [Verbose] >   Total time taken: 0 milliseconds                  │
│ 00:00:23 #63 [Verbose] >   Paket version                                     │
│ 8.1.0-alpha001+8e77fe66ac27ddecf519e0df5a4d3327ca9250e2                      │
│ 00:00:23 #64 [Verbose] >   Restoring                                         │
│ /home/runner/work/polyglot/polyglot/target/polyglot/builder/Builder/Builder. │
│ fsproj                                                                       │
│ 00:00:23 #65 [Verbose] >   Starting restore process.                         │
│ 00:00:23 #66 [Verbose] >   Total time taken: 0 milliseconds                  │
│ 00:00:24 #67 [Verbose] >   Restored                                          │
│ /home/runner/work/polyglot/polyglot/target/polyglot/builder/Builder/Builder. │
│ fsproj (in 287 ms).                                                          │
│ 00:00:24 #68 [Verbose] >                                                     │
│ /usr/share/dotnet/sdk/9.0.100-preview.1.24101.2/Sdks/Microsoft.NET.Sdk/targe │
│ ts/Microsoft.NET.RuntimeIdentifierInference.targets(313,5): message          │
│ NETSDK1057: You are using a preview version of .NET. See:                    │
│ https://aka.ms/dotnet-support-policy [                                       │
│ /home/runner/work/polyglot/polyglot/target/polyglot/builder/Builder/Builder. │
│ fsproj]                                                                      │
│ 00:00:29 #69 [Verbose] >   Builder ->                                        │
│ /home/runner/work/polyglot/polyglot/target/polyglot/builder/Builder/bin/Rele │
│ ase/net9.0/linux-x64/Builder.dll                                             │
│ 00:00:29 #70 [Verbose] >   Builder ->                                        │
│ /home/runner/work/polyglot/polyglot/apps/builder/dist                        │
│ 00:00:29 #71 [Debug] executeAsync / exitCode: 0 / output.Length: 1119        │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
[NbConvertApp] Converting notebook Builder.dib.ipynb to html
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
  validate(nb)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
  return _pygments_highlight(
[NbConvertApp] Writing 329038 bytes to Builder.dib.html
In [ ]:
{ . "$ScriptDir/../apps/parser/build.ps1" } | Invoke-Block
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ # DibParser (Polyglot)                                                       │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/fsharp/Notebooks.dib
#!import ../../lib/fsharp/Testing.dib

── fsharp - import ─────────────────────────────────────────────────────────────
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Asp
NetCore.Html.Abstractions.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.FSharp.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.Formatting.dll"
open System
open System.IO
open System.Text
open Microsoft.DotNet.Interactive.Formatting

── fsharp - import ─────────────────────────────────────────────────────────────
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.FSharp.dll"
open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.dll"
open type Microsoft.DotNet.Interactive.Kernel

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

Formatter.ListExpansionLimit <- 100

── fsharp - import ─────────────────────────────────────────────────────────────
#r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

type AssertExceptionFormatter (ex) =
    member _.Text =
        ex.ToString()
            .Replace("32m", "<span style=\"color: green;\">")
            .Replace("36m", "</span>")
            .Replace("31m", "<span style=\"color: red;\">")
            .Replace("\n", "<br/>\n")


Formatter.Register<AssertExceptionFormatter> ((fun (x : 
AssertExceptionFormatter) -> x.Text), "text/html")

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

let inline __expect fn log expected actual =
    if log then printfn $"{actual.ToDisplayString ()}"
    try
        "Testing.__expect" |> fn actual expected
    with :? Expecto.AssertException as ex ->
        AssertExceptionFormatter(ex).Display () |> ignore
        failwith (ex.GetType().FullName)

let inline __contains log expected actual = __expect Expecto.Expect.contains log
expected actual
let inline _contains expected actual = __contains true expected actual

let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
expected actual
let inline _assertEqual expected actual = __assertEqual true expected actual

let inline __isGreaterThan log expected actual = __expect 
Expecto.Expect.isGreaterThan log ex...

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

let inline __isBetween log a b actual =
    let inline isBetween actual (a, b) _ =
        __isGreaterThanOrEqual log a actual
        __isLessThanOrEqual log b actual
    __expect isBetween log (a, b) actual
let inline _isBetween a b actual = __isBetween true a b actual

── pwsh ────────────────────────────────────────────────────────────────────────
ls ~/.nuget/packages/argu

╭─[ 202.47ms - stdout ]────────────────────────────────────────────────────────╮
│ 6.2.2                                                                        │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
#r 
@"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
dard2.1/FSharp.Control.AsyncSeq.dll"
#r 
@"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
0/System.Reactive.dll"
#r 
@"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/
netstandard2.0/System.Reactive.Linq.dll"
#r 
@"../../../../../../../.nuget/packages/argu/6.2.2/lib/netstandard2.0/Argu.dll"
#r 
@"../../../../../../../.nuget/packages/system.commandline/2.0.0-beta4.22272.1/li
b/net6.0/System.CommandLine.dll"
#r 
@"../../../../../../../.nuget/packages/fparsec/2.0.0-beta2/lib/netstandard2.1/FP
arsec.dll"
#r 
@"../../../../../../../.nuget/packages/fparsec/2.0.0-beta2/lib/netstandard2.1/FP
arsecCS.dll"

── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/spiral/common.fsx
#!import ../../lib/spiral/date_time.fsx
#!import ../../lib/spiral/file_system.fsx
#!import ../../lib/fsharp/Common.fs
#!import ../../lib/fsharp/CommonFSharp.fs
#!import ../../lib/fsharp/Async.fs
#!import ../../lib/fsharp/AsyncSeq.fs
#!import ../../lib/fsharp/Runtime.fs
#!import ../../lib/fsharp/FileSystem.fs

── fsharp - import ─────────────────────────────────────────────────────────────
type [[<Struct>]] US0 =
    | US0_0
    | US0_1
and [[<Struct>]] US1 =
    | US1_0
    | US1_1 of f1_0 : US0
let rec method0 (v0 : (unit -> unit)) : (unit -> unit) =
    v0
and closure0 () (v0 : (unit -> unit)) : System.IDisposable =
    let mutable result = None
    #if FABLE_COMPILER_RUST && !WASM
    let v1 : (unit -> unit) = method0(v0)
    let v2 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v1()" }
    v2
    #endif
    #if FABLE_COMPILER_RUST && WASM
    let v3 : (unit -> unit) = method0(v0)
    let v4 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v3()" }
    v4
    #endif
    #if !FABLE_COMPILER && !F...

── fsharp - import ─────────────────────────────────────────────────────────────
let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
    let v2 : string = v0.ToString ()
    let v3 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
    let v4 : System.Guid = System.Guid $"{v3}{v2.[[v3.Length..]]}"
    v4
and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
    closure1(v0)
and closure5 (v0 : string, v1 : string) (v2 : string) : string =
    let v3 : string = v2.Replace (v0, v1)
    v3
and closure4 (v0 : string) (v1 : string) : (string -> string) =
    closure5(v0, v1)
and closure3 () (v0 : string) : (string -> (string -> string)) =
    closure4(v0)
and method0 () : (string -> (string -> (string -> string))) =
    closure3()
and closure2 () (v0 : System.Guid) : System.DateTime =
  ...

── fsharp - import ─────────────────────────────────────────────────────────────
let rec closure0 () () : string =
    let v0 : string = 
System.Reflection.Assembly.GetEntryAssembly().GetName().Name
    let v1 : (unit -> string) = System.IO.Path.GetTempPath
    let v2 : string = v1 ()
    let v3 : string = $"{v0}"
    let v4 : string = System.IO.Path.Combine (v2, v3)
    let v5 : System.DateTime = System.DateTime.Now
    let v6 : System.Guid = System.Guid.NewGuid ()
    let v7 : string = v6.ToString ()
    let v8 : string = v5.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
    let v9 : System.Guid = System.Guid $"{v8}{v7.[[v8.Length..]]}"
    let v10 : string = v9.ToString ()
    let v11 : string = System.IO.Path.Combine (v4, v10)
    v11
let v0 : (unit -> string) = closure0()
let create_temp_directory_name x = v0 x
()


── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Common =

#if !WASM && !FABLE_COMPILER
    let Date_time = {|
        new_guid_from_date_time =
#if !INTERACTIVE
            Date_time.new_guid_from_date_time
#else
            new_guid_from_date_time
#endif
    |}
#endif

    let nl = System.Environment.NewLine
    let q = @""""

    let inline cons head tail = head :: tail

    module String =
        let inline contains (value : string) (input : string) =
            input.Contains value

        let inline endsWith (value : string) (input : string) =
            input.EndsWith value

        let inline padLeft totalWidth paddingChar (input : string) =
            input.PadLeft (totalWidth, paddingChar)

        let inline replace (oldVa...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module CommonFSharp =

    open Common

    /// ## getUnionCaseName

    let inline getUnionCaseName<'T> (x: 'T) =
        match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with
        | case, _ -> case.Name


── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Async =

    open Common

    /// ## choice

    let inline choice asyncs = async {
        let e = Event<_> ()
        use cts = new System.Threading.CancellationTokenSource ()
        let fn =
            asyncs
            |> Seq.map (fun a -> async {
                let! x = a
                e.Trigger x
            })
            |> Async.Parallel
            |> Async.Ignore
        Async.Start (fn, cts.Token)
        let! result = Async.AwaitEvent e.Publish
        cts.Cancel ()
        return result
    }

    /// ## map

    let inline map fn a = async {
        let! x = a
        return fn x
    }

    /// ## catch

    let inline catch a =
        a
        |> Async.Catch
        ...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module AsyncSeq =

    open Common

    /// ## subscribeEvent

    let inline subscribeEvent (event: IEvent<'H, 'A>) map =
        let observable = System.Reactive.Linq.Observable.FromEventPattern<'H, 
'A>(event.AddHandler, event.RemoveHandler)
        System.Reactive.Linq.Observable.Select (observable, fun event -> map 
event.EventArgs)
        |> FSharp.Control.AsyncSeq.ofObservableBuffered

    let subscribeToken (token : System.Threading.CancellationToken) =
        let tcs = new System.Threading.Tasks.TaskCompletionSource ()
        System.Action tcs.SetResult |> token.Register |> ignore
        let start = System.DateTime.Now.Ticks
        FSharp.Control.AsyncSeq.unfoldAsync
            (fun (...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Runtime =

    open Common

    /// ## isWindows

    let isWindows =
        fun () ->
            System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform
                System.Runtime.InteropServices.OSPlatform.Windows
        |> memoize

    /// ## getExecutableSuffix

    let inline getExecutableSuffix () =
        if isWindows ()
        then ".exe"
        else ""

    /// ## splitCommand

    type private CommandParseStep =
        | Start
        | Path of quoted: bool
        | Arguments

    let splitCommand (command: string) =
        let rec loop (path, args) chars step =
            match chars, step with
            | ('"' | '\'') :: tail, _ when path = "" -> loop (pat...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module FileSystem =

    let File_system = {|
        create_temp_directory_name =
#if !INTERACTIVE
            File_system.create_temp_directory_name
#else
            create_temp_directory_name
#endif
    |}

    open Common

    /// ## Operators

    module Operators =
        let inline (</>) a b =
            System.IO.Path.Combine (a, b)

    open Operators

    /// ## createTempDirectory

    let inline createTempDirectory () =
        let tempFolder = File_system.create_temp_directory_name ()
        let result = System.IO.Directory.CreateDirectory tempFolder

        if not result.Exists then
            let getLocals () =
                $"tempFolder: {tempFolder} / result: {({|
        ...

── fsharp ──────────────────────────────────────────────────────────────────────
open Common
open FParsec

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## escapeCell (test)                                                         │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let inline escapeCell input =
    input
    |> String.split [[| '\n' |]]
    |> Array.map (function
        | line when line |> String.startsWith "\\#!" || line |> 
String.startsWith "\\#r" ->
            System.Text.RegularExpressions.Regex.Replace (line, "^\\\\#", "#")
        | line -> line
    )
    |> String.concat "\n"

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

$"a{nl}\\#!magic{nl}b{nl}"
|> escapeCell
|> _assertEqual (
    $"a{nl}#!magic{nl}b{nl}"
)

╭─[ 37.68ms - stdout ]─────────────────────────────────────────────────────────╮
│ a                                                                            │
│ #!magic                                                                      │
│ b                                                                            │
│                                                                              │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## magicMarker                                                               │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let magicMarker : Parser<string, unit> = pstring "#!"

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

"#!magic"
|> run magicMarker
|> _assertEqual (
    Success ("#!", (), Position ("", 2, 1, 3))
)

╭─[ 28.67ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success                                                                      │
│       Item1: #!                                                              │
│       Item2: <null>                                                          │
│       Item3: Position                                                        │
│         Index: 2                                                             │
│         Line: 1                                                              │
│         Column: 3                                                            │
│         StreamName:                                                          │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

"##!magic"
|> run magicMarker
|> _assertEqual (
    Failure (
        $"Error in Ln: 1 Col: 1{nl}##!magic{nl}^{nl}Expecting: '#!'{nl}",
        ParserError (
            Position ("", 0, 1, 1),
            (),
            ErrorMessageList (ExpectedString "#!")
        ),
        ()
    )
)

╭─[ 84.86ms - stdout ]─────────────────────────────────────────────────────────╮
│ Failure                                                                      │
│       Item1: Error in Ln: 1 Col: 1                                           │
│ ##!magic                                                                     │
│ ^                                                                            │
│ Expecting: '#!'                                                              │
│                                                                              │
│       Item2: ParserError                                                     │
│         Position: Position                                                   │
│           Index: 0                                                           │
│           Line: 1                                                            │
│           Column: 1                                                          │
│           StreamName:                                                        │
│         UserState: <null>                                                    │
│         Messages: ErrorMessageList                                           │
│           Head: ExpectedString                                               │
│             String: #!                                                       │
│             Type: ExpectedString                                             │
│           Tail: <null>                                                       │
│       Item3: <null>                                                          │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## magicCommand                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let magicCommand =
    magicMarker
    >>. manyTill anyChar newline
    |>> (System.String.Concat >> String.trim)

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

"#!magic

a"
|> run magicCommand
|> _assertEqual (
    Success ("magic", (), Position ("", 8, 2, 1))
)

╭─[ 16.65ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success                                                                      │
│       Item1: magic                                                           │
│       Item2: <null>                                                          │
│       Item3: Position                                                        │
│         Index: 8                                                             │
│         Line: 2                                                              │
│         Column: 1                                                            │
│         StreamName:                                                          │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

" #!magic

a"
|> run magicCommand
|> _assertEqual (
    Failure (
        $"Error in Ln: 1 Col: 1{nl} #!magic{nl}^{nl}Expecting: '#!'{nl}",
        ParserError (
            Position ("", 0, 1, 1),
            (),
            ErrorMessageList (ExpectedString "#!")
        ),
        ()
    )
)

╭─[ 18.76ms - stdout ]─────────────────────────────────────────────────────────╮
│ Failure                                                                      │
│       Item1: Error in Ln: 1 Col: 1                                           │
│  #!magic                                                                     │
│ ^                                                                            │
│ Expecting: '#!'                                                              │
│                                                                              │
│       Item2: ParserError                                                     │
│         Position: Position                                                   │
│           Index: 0                                                           │
│           Line: 1                                                            │
│           Column: 1                                                          │
│           StreamName:                                                        │
│         UserState: <null>                                                    │
│         Messages: ErrorMessageList                                           │
│           Head: ExpectedString                                               │
│             String: #!                                                       │
│             Type: ExpectedString                                             │
│           Tail: <null>                                                       │
│       Item3: <null>                                                          │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## content                                                                   │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let content =
    (newline >>. magicMarker) <|> (eof >>. preturn "")
    |> attempt
    |> lookAhead
    |> manyTill anyChar
    |>> (System.String.Concat >> String.trim)

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

"#!magic


a


"
|> run content
|> _assertEqual (
    Success ("#!magic


a", (), Position ("", 14, 7, 1))
)

╭─[ 16.34ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success                                                                      │
│       Item1: #!magic                                                         │
│                                                                              │
│                                                                              │
│ a                                                                            │
│       Item2: <null>                                                          │
│       Item3: Position                                                        │
│         Index: 14                                                            │
│         Line: 7                                                              │
│         Column: 1                                                            │
│         StreamName:                                                          │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## Block                                                                     │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
type Block =
    {
        magic : string
        content : string
    }

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## block                                                                     │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let block =
    pipe2
        magicCommand
        content
        (fun magic content ->
            {
                magic = magic
                content = content
            })

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

"#!magic


a


"
|> run block
|> _assertEqual (
    Success (
        { magic = "magic"; content = "a" },
        (),
        Position ("", 14, 7, 1)
    )
)

╭─[ 19.41ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success                                                                      │
│       Item1: Block                                                           │
│         magic: magic                                                         │
│         content: a                                                           │
│       Item2: <null>                                                          │
│       Item3: Position                                                        │
│         Index: 14                                                            │
│         Line: 7                                                              │
│         Column: 1                                                            │
│         StreamName:                                                          │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## blocks                                                                    │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let blocks =
    skipMany newline
    >>. sepEndBy block (skipMany1 newline)

── fsharp ──────────────────────────────────────────────────────────────────────
//// test


"#!magic1

a

\#!magic2

b

"
|> escapeCell
|> run blocks
|> _assertEqual (
    Success (
        [[
            { magic = "magic1"; content = "a" }
            { magic = "magic2"; content = "b" }
        ]],
        (),
        Position ("", 26, 9, 1)
    )
)

╭─[ 26.12ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success                                                                      │
│       Item1: FSharpList<Block>                                               │
│         - magic: magic1                                                      │
│           content: a                                                         │
│         - magic: magic2                                                      │
│           content: b                                                         │
│       Item2: <null>                                                          │
│       Item3: Position                                                        │
│         Index: 26                                                            │
│         Line: 9                                                              │
│         Column: 1                                                            │
│         StreamName:                                                          │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## Output                                                                    │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
type Output =
    | Fs
    | Md
    | Spi
    | Spir

let inline kernelOutputs magic =
    match magic with
    | "fsharp" -> [[ Fs ]]
    | "markdown" -> [[ Md ]]
    | "spiral" -> [[ Spi; Spir ]]
    | _ -> [[]]

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## formatBlock                                                               │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline formatBlock output (block : Block) =
    match output, block with
    | output, { magic = "markdown"; content = content } ->
        let markdownComment =
            match output with
            | Spi | Spir -> "// // "
            | Fs -> "/// "
            | _ -> ""
        content
        |> String.split [[| '\n' |]]
        |> Array.map (String.trimEnd [[||]])
        |> Array.filter (String.endsWith " (test)" >> not)
        |> Array.map (function
            | "" -> markdownComment |> String.trim
            | line -> System.Text.RegularExpressions.Regex.Replace (line, 
"^\\s*", $"$&{markdownComment}")
        )
        |> String.concat "\n"
    | Fs, { magic = "fsharp"; content = content } ->
        let trimmedContent = content |> String.trim
        if trimmedContent |> String.startsWith "//// test" || trimmedContent |> 
String.startsWith "//// ignore"
        then ""
        else
            content
            |> String.split [[| '\n' |]]
            |> Array.filter (String.trimStart [[||]] >> String.startsWith "#r" 
>> not)
            |> String.concat "\n"
    | (Spi | Spir), { magic = "spiral"; content = content } ->
        let trimmedContent = content |> String.trim
        if trimmedContent |> String.startsWith "// // test" || trimmedContent |>
String.startsWith "// // ignore"
        then ""
        else content
    | _ -> ""

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

"#!markdown


a

    b

c


\#!markdown


c


\#!fsharp


let a = 1"
|> escapeCell
|> run block
|> function
    | Success (block, _, _) -> formatBlock Fs block
    | Failure (msg, _, _) -> failwith msg
|> _assertEqual "/// a
///
    /// b
///
/// c"

╭─[ 35.16ms - stdout ]─────────────────────────────────────────────────────────╮
│ /// a                                                                        │
│ ///                                                                          │
│     /// b                                                                    │
│ ///                                                                          │
│ /// c                                                                        │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## formatBlocks                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline formatBlocks output blocks =
    blocks
    |> List.map (formatBlock output)
    |> List.filter ((<>) "")
    |> String.concat "\n\n"
    |> fun s -> s + "\n"

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

"#!markdown


a

b


\#!markdown


c


\#!fsharp


let a = 1

\#!markdown

d (test)

\#!fsharp

//// test

let a = 2

\#!markdown

e

\#!fsharp

let a = 3"
|> escapeCell
|> run blocks
|> function
    | Success (blocks, _, _) -> formatBlocks Fs blocks
    | Failure (msg, _, _) -> failwith msg
|> _assertEqual "/// a
///
/// b

/// c

let a = 1

/// e

let a = 3
"

╭─[ 38.05ms - stdout ]─────────────────────────────────────────────────────────╮
│ /// a                                                                        │
│ ///                                                                          │
│ /// b                                                                        │
│                                                                              │
│ /// c                                                                        │
│                                                                              │
│ let a = 1                                                                    │
│                                                                              │
│ /// e                                                                        │
│                                                                              │
│ let a = 3                                                                    │
│                                                                              │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## parse                                                                     │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline parse output input =
    match run blocks input with
    | Success (blocks, _, _) ->
        let blocks =
            blocks
            |> List.filter (fun block ->
                block.magic |> kernelOutputs |> List.contains output || 
block.magic = "markdown"
            )

        match blocks with
        | { magic = "markdown"; content = content } :: _
            when output = Fs
            && content |> String.startsWith "# "
            && content |> String.endsWith ")"
            ->
            let inline indentBlock (block : Block) =
                { block with
                    content =
                        block.content
                        |> String.split [[| '\n' |]]
                        |> Array.fold
                            (fun (lines, isMultiline) line ->
                                let trimmedLine = line |> String.trim
                                if trimmedLine = ""
                                then "" :: lines, isMultiline
                                else
                                    let inline singleQuoteLine () =
                                        trimmedLine |> Seq.sumBy ((=) '"' >> 
System.Convert.ToInt32) = 1
                                        && trimmedLine |> String.contains 
@"'""'" |> not
                                        && trimmedLine |> String.endsWith "{" |>
not
                                        && trimmedLine |> String.endsWith "{|" 
|> not
                                        && trimmedLine |> String.startsWith "}" 
|> not
                                        && trimmedLine |> String.startsWith "|}"
|> not

                                    match isMultiline, trimmedLine |> 
String.splitString [[| $"{q}{q}{q}" |]] with
                                    | false, [[| _; _ |]] ->
                                        $"    {line}" :: lines, true

                                    | true, [[| _; _ |]] ->
                                        line :: lines, false

                                    | false, _ when singleQuoteLine () ->
                                        $"    {line}" :: lines, true

                                    | false, _ when line |> String.startsWith 
"#" && block.magic = "fsharp" ->
                                        line :: lines, false

                                    | false, _ ->
                                        $"    {line}" :: lines, false

                                    | true, _ when singleQuoteLine () && line |>
String.startsWith "    " ->
                                        $"    {line}" :: lines, false

                                    | true, _ when singleQuoteLine () ->
                                        line :: lines, false

                                    | true, _ ->
                                        line :: lines, true
                            )
                            ([[]], false)
                        |> fst
                        |> List.rev
                        |> String.concat "\n"
                }

            let moduleName, namespaceName =
                System.Text.RegularExpressions.Regex.Match (content, @"# (.*) 
\((.*)\)$")
                |> fun m -> m.Groups.[[1]].Value, m.Groups.[[2]].Value

            let moduleBlock =
                {
                    magic = "fsharp"
                    content =
                        $"#if !INTERACTIVE
namespace {namespaceName}
#endif

module {moduleName} ="
                }

            blocks
            |> List.indexed
            |> List.fold
                (fun blocks (index, block) ->
                    match index with
                    | 0 -> blocks
                    | 1 -> indentBlock block :: moduleBlock :: blocks
                    | _ -> indentBlock block :: blocks
                )
                [[]]
            |> List.rev
        | _ -> blocks
        |> Result.Ok
    | Failure (errorMsg, _, _) -> Result.Error errorMsg

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let example1 =
    $"""#!meta

{{"kernelInfo":{{"defaultKernelName":"fsharp","items":[[{{"aliases":[[]],"name":
"fsharp"}},{{"aliases":[[]],"name":"fsharp"}}]]}}}}

\#!markdown

# TestModule (TestNamespace)

\#!fsharp

\#!import file.dib

\#!fsharp

\#r "nuget:Expecto"

\#!markdown

## ParserLibrary

\#!fsharp

open System

\#!markdown

## x (test)

\#!fsharp

//// ignore

let x = 1

\#!spiral

// // test

inl x = 0i32

\#!spiral

inl x = 0i32

\#!markdown

### TextInput

\#!fsharp

let str1 = "abc
def"

let str2 =
    "abc\
def"

let str3 =
    $"1{{
        1
    }}1"

let str4 =
    $"1{{({{|
        a = 1
    |}}).a}}1"

let str5 =
    "abc \
        def"

let x =
    match '"' with
    | '"' -> true
    | _ -> false

let long1 = {q}{q}{q}a{q}{q}{q}

let long2 =
    {q}{q}{q}
a
{q}{q}{q}

\#!fsharp

type Position =
    {{
#if INTERACTIVE
        line : string
#else
        line : int
#endif
        column : int
    }}"""
    |> escapeCell

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

example1
|> parse Fs
|> Result.toOption
|> Option.get
|> (formatBlocks Fs)
|> _assertEqual $"""#if !INTERACTIVE
namespace TestNamespace
#endif

module TestModule =

    /// ## ParserLibrary

    open System

    /// ### TextInput

    let str1 = "abc
def"

    let str2 =
        "abc\
def"

    let str3 =
        $"1{{
            1
        }}1"

    let str4 =
        $"1{{({{|
            a = 1
        |}}).a}}1"

    let str5 =
        "abc \
            def"

    let x =
        match '"' with
        | '"' -> true
        | _ -> false

    let long1 = {q}{q}{q}a{q}{q}{q}

    let long2 =
        {q}{q}{q}
a
{q}{q}{q}

    type Position =
        {{
#if INTERACTIVE
            line : string
#else
            line : int
#endif
            column : int
        }}
"""

╭─[ 156.62ms - stdout ]────────────────────────────────────────────────────────╮
│ #if !INTERACTIVE                                                             │
│ namespace TestNamespace                                                      │
│ #endif                                                                       │
│                                                                              │
│ module TestModule =                                                          │
│                                                                              │
│     /// ## ParserLibrary                                                     │
│                                                                              │
│     open System                                                              │
│                                                                              │
│     /// ### TextInput                                                        │
│                                                                              │
│     let str1 = "abc                                                          │
│ def"                                                                         │
│                                                                              │
│     let str2 =                                                               │
│         "abc\                                                                │
│ def"                                                                         │
│                                                                              │
│     let str3 =                                                               │
│         $"1{                                                                 │
│             1                                                                │
│         }1"                                                                  │
│                                                                              │
│     let str4 =                                                               │
│         $"1{({|                                                              │
│             a = 1                                                            │
│         |}).a}1"                                                             │
│                                                                              │
│     let str5 =                                                               │
│         "abc \                                                               │
│             def"                                                             │
│                                                                              │
│     let x =                                                                  │
│         match '"' with                                                       │
│         | '"' -> true                                                        │
│         | _ -> false                                                         │
│                                                                              │
│     let long1 = """a"""                                                      │
│                                                                              │
│     let long2 =                                                              │
│         """                                                                  │
│ a                                                                            │
│ """                                                                          │
│                                                                              │
│     type Position =                                                          │
│         {                                                                    │
│ #if INTERACTIVE                                                              │
│             line : string                                                    │
│ #else                                                                        │
│             line : int                                                       │
│ #endif                                                                       │
│             column : int                                                     │
│         }                                                                    │
│                                                                              │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

example1
|> parse Md
|> Result.toOption
|> Option.get
|> (formatBlocks Md)
|> _assertEqual "# TestModule (TestNamespace)

## ParserLibrary

### TextInput
"

╭─[ 91.82ms - stdout ]─────────────────────────────────────────────────────────╮
│ # TestModule (TestNamespace)                                                 │
│                                                                              │
│ ## ParserLibrary                                                             │
│                                                                              │
│ ### TextInput                                                                │
│                                                                              │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

example1
|> parse Spi
|> Result.toOption
|> Option.get
|> (formatBlocks Spi)
|> _assertEqual "// // # TestModule (TestNamespace)

// // ## ParserLibrary

inl x = 0i32

// // ### TextInput
"

╭─[ 91.80ms - stdout ]─────────────────────────────────────────────────────────╮
│ // // # TestModule (TestNamespace)                                           │
│                                                                              │
│ // // ## ParserLibrary                                                       │
│                                                                              │
│ inl x = 0i32                                                                 │
│                                                                              │
│ // // ### TextInput                                                          │
│                                                                              │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## parseDibCode                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline parseDibCode output file = async {
    let getLocals () = $"output: {output} / file: {file} / {getLocals ()}"
    trace Debug (fun () -> "parseDibCode") getLocals
    let! input = file |> FileSystem.readAllTextAsync
    match parse output input with
    | Result.Ok blocks -> return blocks |> formatBlocks output
    | Result.Error msg -> return failwith msg
}

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## writeDibCode                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline writeDibCode output path = async {
    let getLocals () = $"output: {output} / path: {path} / {getLocals ()}"
    trace Debug (fun () -> "writeDibCode") getLocals
    let! result = parseDibCode output path
    let outputPath = path |> String.replace ".dib" $".{output |> string |> 
String.toLower}"
    do! result |> FileSystem.writeAllTextAsync outputPath
}

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## Arguments                                                                 │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
[[<RequireQualifiedAccess>]]
type Arguments =
    | [[<Argu.ArguAttributes.MainCommand; Argu.ArguAttributes.Mandatory>]]
        File of file : string * Output

    interface Argu.IArgParserTemplate with
        member s.Usage =
            match s with
            | File _ -> nameof File

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

Argu.ArgumentParser.Create<Arguments>().PrintUsage ()

╭─[ 85.16ms - return value ]───────────────────────────────────────────────────╮
│ USAGE: dotnet-repl [--help] <file> <fs|md|spi|spir>                          │
│                                                                              │
│ FILE:                                                                        │
│                                                                              │
│     <file> <fs|md|spi|spir>                                                  │
│                           File                                               │
│                                                                              │
│ OPTIONS:                                                                     │
│                                                                              │
│     --help                display this list of options.                      │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## main                                                                      │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let main args =
    let argsMap = args |> Runtime.parseArgsMap<Arguments>

    let files =
        argsMap.[[nameof Arguments.File]]
        |> List.map (function
            | Arguments.File (path, output) -> path, output
        )

    files
    |> List.map (fun (path, output) -> path |> writeDibCode output)
    |> Async.Parallel
    |> Async.Ignore
    |> Async.runWithTimeout 30000
    |> function
        | Some () -> 0
        | None -> 1

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let args =
    System.Environment.GetEnvironmentVariable "ARGS"
    |> Runtime.splitArgs
    |> Seq.toArray

match args with
| [[||]] -> 0
| args -> if main args = 0 then 0 else failwith "main failed"

╭─[ 112.71ms - return value ]──────────────────────────────────────────────────╮
│ <div class="dni-plaintext"><pre>0</pre></div><style>                         │
│ .dni-code-hint {                                                             │
│     font-style: italic;                                                      │
│     overflow: hidden;                                                        │
│     white-space: nowrap;                                                     │
│ }                                                                            │
│ .dni-treeview {                                                              │
│     white-space: nowrap;                                                     │
│ }                                                                            │
│ .dni-treeview td {                                                           │
│     vertical-align: top;                                                     │
│     text-align: start;                                                       │
│ }                                                                            │
│ details.dni-treeview {                                                       │
│     padding-left: 1em;                                                       │
│ }                                                                            │
│ table td {                                                                   │
│     text-align: start;                                                       │
│ }                                                                            │
│ table tr {                                                                   │
│     vertical-align: top;                                                     │
│     margin: 0em 0px;                                                         │
│ }                                                                            │
│ table tr td pre                                                              │
│ {                                                                            │
│     vertical-align: top !important;                                          │
│     margin: 0em 0px !important;                                              │
│ }                                                                            │
│ table th {                                                                   │
│     text-align: start;                                                       │
│ }                                                                            │
│ </style>                                                                     │
╰──────────────────────────────────────────────────────────────────────────────╯

╭─[ 114.46ms - stdout ]────────────────────────────────────────────────────────╮
│ 00:00:00 #1 [Debug] writeDibCode / output: Fs / path: DibParser.dib          │
│ 00:00:00 #2 [Debug] parseDibCode / output: Fs / file: DibParser.dib          │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
[NbConvertApp] Converting notebook DibParser.dib.ipynb to html
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
  validate(nb)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
  return _pygments_highlight(
[NbConvertApp] Writing 367853 bytes to DibParser.dib.html
00:00:00 #1 [Debug] persistCodeProject / packages: [Argu; FParsec; FSharp.Control.AsyncSeq; ... ] / modules: [lib/spiral/common.fsx; lib/spiral/date_time.fsx; lib/spiral/file_system.fsx; ... ] / name: DibParser / code.Length: 9066
00:00:00 #2 [Debug] buildProject / fullPath: /home/runner/work/polyglot/polyglot/target/polyglot/builder/DibParser/DibParser.fsproj
00:00:00 #3 [Debug] executeAsync / options: { Command =
   "dotnet publish "/home/runner/work/polyglot/polyglot/target/polyglot/builder/DibParser/DibParser.fsproj" --configuration Release --output "/home/runner/work/polyglot/polyglot/apps/parser/dist" --runtime linux-x64"
  WorkingDirectory =
   Some "/home/runner/work/polyglot/polyglot/target/polyglot/builder/DibParser"
  CancellationToken = None
  OnLine = None }
00:00:00 #4 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f for .NET
00:00:00 #5 [Verbose] >   Determining projects to restore...
00:00:00 #6 [Verbose] >   Paket version 8.1.0-alpha001+8e77fe66ac27ddecf519e0df5a4d3327ca9250e2
00:00:00 #7 [Verbose] >   The last full restore is still up to date. Nothing left to do.
00:00:00 #8 [Verbose] >   Total time taken: 0 milliseconds
00:00:01 #9 [Verbose] >   Paket version 8.1.0-alpha001+8e77fe66ac27ddecf519e0df5a4d3327ca9250e2
00:00:01 #10 [Verbose] >   Restoring /home/runner/work/polyglot/polyglot/target/polyglot/builder/DibParser/DibParser.fsproj
00:00:01 #11 [Verbose] >   Starting restore process.
00:00:01 #12 [Verbose] >   Total time taken: 0 milliseconds
00:00:02 #13 [Verbose] >   Restored /home/runner/work/polyglot/polyglot/target/polyglot/builder/DibParser/DibParser.fsproj (in 296 ms).
00:00:02 #14 [Verbose] > /usr/share/dotnet/sdk/9.0.100-preview.1.24101.2/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.RuntimeIdentifierInference.targets(313,5): message NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy [/home/runner/work/polyglot/polyglot/target/polyglot/builder/DibParser/DibParser.fsproj]
00:00:06 #15 [Verbose] >   DibParser -> /home/runner/work/polyglot/polyglot/target/polyglot/builder/DibParser/bin/Release/net9.0/linux-x64/DibParser.dll
00:00:07 #16 [Verbose] >   DibParser -> /home/runner/work/polyglot/polyglot/apps/parser/dist
00:00:07 #17 [Debug] executeAsync / exitCode: 0 / output.Length: 1138

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ # JsonParser (Polyglot)                                                      │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/fsharp/Notebooks.dib
#!import ../../lib/fsharp/Testing.dib

── fsharp - import ─────────────────────────────────────────────────────────────
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Asp
NetCore.Html.Abstractions.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.FSharp.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.Formatting.dll"
open System
open System.IO
open System.Text
open Microsoft.DotNet.Interactive.Formatting

── fsharp - import ─────────────────────────────────────────────────────────────
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.FSharp.dll"
open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.dll"
open type Microsoft.DotNet.Interactive.Kernel

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

Formatter.ListExpansionLimit <- 100

── fsharp - import ─────────────────────────────────────────────────────────────
#r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

type AssertExceptionFormatter (ex) =
    member _.Text =
        ex.ToString()
            .Replace("32m", "<span style=\"color: green;\">")
            .Replace("36m", "</span>")
            .Replace("31m", "<span style=\"color: red;\">")
            .Replace("\n", "<br/>\n")


Formatter.Register<AssertExceptionFormatter> ((fun (x : 
AssertExceptionFormatter) -> x.Text), "text/html")

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

let inline __expect fn log expected actual =
    if log then printfn $"{actual.ToDisplayString ()}"
    try
        "Testing.__expect" |> fn actual expected
    with :? Expecto.AssertException as ex ->
        AssertExceptionFormatter(ex).Display () |> ignore
        failwith (ex.GetType().FullName)

let inline __contains log expected actual = __expect Expecto.Expect.contains log
expected actual
let inline _contains expected actual = __contains true expected actual

let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
expected actual
let inline _assertEqual expected actual = __assertEqual true expected actual

let inline __isGreaterThan log expected actual = __expect 
Expecto.Expect.isGreaterThan log ex...

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

let inline __isBetween log a b actual =
    let inline isBetween actual (a, b) _ =
        __isGreaterThanOrEqual log a actual
        __isLessThanOrEqual log b actual
    __expect isBetween log (a, b) actual
let inline _isBetween a b actual = __isBetween true a b actual

── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/spiral/common.fsx
#!import ../../lib/spiral/date_time.fsx
#!import ../../lib/fsharp/Common.fs
#!import Parser.fs

── fsharp - import ─────────────────────────────────────────────────────────────
type [[<Struct>]] US0 =
    | US0_0
    | US0_1
and [[<Struct>]] US1 =
    | US1_0
    | US1_1 of f1_0 : US0
let rec method0 (v0 : (unit -> unit)) : (unit -> unit) =
    v0
and closure0 () (v0 : (unit -> unit)) : System.IDisposable =
    let mutable result = None
    #if FABLE_COMPILER_RUST && !WASM
    let v1 : (unit -> unit) = method0(v0)
    let v2 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v1()" }
    v2
    #endif
    #if FABLE_COMPILER_RUST && WASM
    let v3 : (unit -> unit) = method0(v0)
    let v4 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v3()" }
    v4
    #endif
    #if !FABLE_COMPILER && !F...

── fsharp - import ─────────────────────────────────────────────────────────────
let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
    let v2 : string = v0.ToString ()
    let v3 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
    let v4 : System.Guid = System.Guid $"{v3}{v2.[[v3.Length..]]}"
    v4
and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
    closure1(v0)
and closure5 (v0 : string, v1 : string) (v2 : string) : string =
    let v3 : string = v2.Replace (v0, v1)
    v3
and closure4 (v0 : string) (v1 : string) : (string -> string) =
    closure5(v0, v1)
and closure3 () (v0 : string) : (string -> (string -> string)) =
    closure4(v0)
and method0 () : (string -> (string -> (string -> string))) =
    closure3()
and closure2 () (v0 : System.Guid) : System.DateTime =
  ...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Common =

#if !WASM && !FABLE_COMPILER
    let Date_time = {|
        new_guid_from_date_time =
#if !INTERACTIVE
            Date_time.new_guid_from_date_time
#else
            new_guid_from_date_time
#endif
    |}
#endif

    let nl = System.Environment.NewLine
    let q = @""""

    let inline cons head tail = head :: tail

    module String =
        let inline contains (value : string) (input : string) =
            input.Contains value

        let inline endsWith (value : string) (input : string) =
            input.EndsWith value

        let inline padLeft totalWidth paddingChar (input : string) =
            input.PadLeft (totalWidth, paddingChar)

        let inline replace (oldVa...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Parser =

    open Common

    /// ### TextInput

    type Position =
        {
            line : int
            column : int
        }

    let initialPos = { line = 0; column = 0 }

    let inline incrCol (pos : Position) =
        { pos with column = pos.column + 1 }

    let inline incrLine pos =
        { line = pos.line + 1; column = 0 }

    type InputState =
        {
            lines : string[[]]
            position : Position
        }

    let inline fromStr str =
        {
            lines =
                if str |> String.IsNullOrEmpty
                then [[||]]
                else str |> String.splitString [[| "\r\n"; "\n" |]]
            position = initialPos
        }

   ...

── fsharp ──────────────────────────────────────────────────────────────────────
open Common
open Parser

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## JsonParser                                                                │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
(*
// --------------------------------
JSON spec from http://www.json.org/
// --------------------------------

The JSON spec is available at [[json.org]](http://www.json.org/). I'll paraphase
it here:

* A `value` can be a `string` or a `number` or a `bool` or `null` or an `object`
or an `array`.
  * These structures can be nested.
* A `string` is a sequence of zero or more Unicode characters, wrapped in double
quotes, using backslash escapes.
* A `number` is very much like a C or Java number, except that the octal and 
hexadecimal formats are not used.
* A `boolean` is the literal `true` or `false`
* A `null` is the literal `null`
* An `object` is an unordered set of name/value pairs.
  * An object begins with { (left brace) and ends with } (right brace).
  * Each name is followed by : (colon) and the name/value pairs are separated by
, (comma).
* An `array` is an ordered collection of values.
  * An array begins with [[ (left bracket) and ends with ]] (right bracket).
  * Values are separated by , (comma).
* Whitespace can be inserted between any pair of tokens.

*)

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let inline parserEqual (expected : ParseResult<'a>) (actual : ParseResult<'a * 
Input>) =
    match actual, expected with
    | Success (_actual, _), Success _expected ->
        printResult actual
        _actual |> _assertEqual _expected
    | Failure (l1, e1, p1), Failure (l2, e2, p2) when l1 = l2 && e1 = e2 && p1 =
p2 ->
        printResult actual
    | _ ->
        printfn $"Actual: {actual}"
        printfn $"Expected: {expected}"
        failwith "Parse failed"
    actual

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ### JValue                                                                   │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
type JValue =
    | JString of string
    | JNumber of float
    | JBool   of bool
    | JNull
    | JObject of Map<string, JValue>
    | JArray  of JValue list

── fsharp ──────────────────────────────────────────────────────────────────────
let jValue, jValueRef = createParserForwardedToRef<JValue> ()

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ### jNull                                                                    │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let jNull =
    pstring "null"
    >>% JNull
    <?> "null"

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

jValueRef <|
    choice
        [[
            jNull
        ]]

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

run jValue "null"
|> parserEqual (Success JNull)

╭─[ 169.94ms - return value ]──────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span                     │
│ class="dni-code-hint"><code>Success (JNull, { lines = [                      │
│ |&quot;null&quot;|]<br/>                  position = { line = 0<br/>         │
│ column = 4 }                                                                 │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span                   │
│ class="dni-code-hint"><code>(JNull, { lines = [|&quot;null&quot;|]<br/>      │
│ position = { line = 0<br/>               column = 4 }                        │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span                  │
│ class="dni-code-hint"><code>JNull</code></span></summary><div><table><thead> │
│ <tr></tr></thead><tbody><tr><td>IsJString</td><td><d...                      │
╰──────────────────────────────────────────────────────────────────────────────╯

╭─[ 173.14ms - stdout ]────────────────────────────────────────────────────────╮
│ JNull                                                                        │
│ JValue                                                                       │
│       IsJString: False                                                       │
│       IsJNumber: False                                                       │
│       IsJBool: False                                                         │
│       IsJNull: True                                                          │
│       IsJObject: False                                                       │
│       IsJArray: False                                                        │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

run jNull "nulp"
|> parserEqual (
    Failure (
        "null",
        "Unexpected 'p'",
        { currentLine = "nulp"; line = 0; column = 3 }
    )
)

╭─[ 84.03ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span                     │
│ class="dni-code-hint"><code>Failure (&quot;null&quot;, &quot;Unexpected      │
│ &#39;p&#39;&quot;, { currentLine = &quot;nulp&quot;<br/>                     │
│ line = 0<br/>                                     column = 3                 │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><div                                                          │
│ class="dni-plaintext"><pre>null</pre></div></td></tr><tr><td>Item2</td><td>< │
│ div class="dni-plaintext"><pre>Unexpected                                    │
│ &#39;p&#39;</pre></div></td></tr><tr><td>Item3</td><td><details              │
│ class="dni-treeview"><summary><span class="dni-code-hint"><code>{            │
│ currentLine = &quot;nulp&quot;<br/>  line = 0<br/>  column = 3               │
│ }</code></span></summary><div><table><thead><tr></tr></thead...              │
╰──────────────────────────────────────────────────────────────────────────────╯

╭─[ 85.20ms - stdout ]─────────────────────────────────────────────────────────╮
│ Line:0 Col:3 Error parsing null                                              │
│ nulp                                                                         │
│    ^Unexpected 'p'                                                           │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ### jBool                                                                    │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let jBool =
    let jtrue =
        pstring "true"
        >>% JBool true
    let jfalse =
        pstring "false"
        >>% JBool false

    jtrue <|> jfalse
    <?> "bool"

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

jValueRef <|
    choice
        [[
            jNull
            jBool
        ]]

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

run jBool "true"
|> parserEqual (Success (JBool true))

╭─[ 31.94ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span                     │
│ class="dni-code-hint"><code>Success (JBool true, { lines = [                 │
│ |&quot;true&quot;|]<br/>                       position = { line = 0<br/>    │
│ column = 4 }                                                                 │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span                   │
│ class="dni-code-hint"><code>(JBool true, { lines = [|&quot;true&quot;|]<br/> │
│ position = { line = 0<br/>               column = 4 }                        │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span                  │
│ class="dni-code-hint"><code>JBool                                            │
│ true</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr.. │
│ .                                                                            │
╰──────────────────────────────────────────────────────────────────────────────╯

╭─[ 33.14ms - stdout ]─────────────────────────────────────────────────────────╮
│ JBool true                                                                   │
│ JBool                                                                        │
│       Item: True                                                             │
│       IsJString: False                                                       │
│       IsJNumber: False                                                       │
│       IsJBool: True                                                          │
│       IsJNull: False                                                         │
│       IsJObject: False                                                       │
│       IsJArray: False                                                        │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

run jBool "false"
|> parserEqual (Success (JBool false))

╭─[ 22.30ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span                     │
│ class="dni-code-hint"><code>Success (JBool false, { lines = [                │
│ |&quot;false&quot;|]<br/>                        position = { line = 0<br/>  │
│ column = 5 }                                                                 │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span                   │
│ class="dni-code-hint"><code>(JBool false, { lines = [                        │
│ |&quot;false&quot;|]<br/>  position = { line = 0<br/>               column = │
│ 5 }                                                                          │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span                  │
│ class="dni-code-hint"><code>JBool                                            │
│ false</code></span></summary><div><table><thead><tr></tr></thead><tb...      │
╰──────────────────────────────────────────────────────────────────────────────╯

╭─[ 23.47ms - stdout ]─────────────────────────────────────────────────────────╮
│ JBool false                                                                  │
│ JBool                                                                        │
│       Item: False                                                            │
│       IsJString: False                                                       │
│       IsJNumber: False                                                       │
│       IsJBool: True                                                          │
│       IsJNull: False                                                         │
│       IsJObject: False                                                       │
│       IsJArray: False                                                        │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

run jBool "truX"
|> parserEqual (
    Failure (
        "bool",
        "Unexpected 't'",
        { currentLine = "truX"; line = 0; column = 0 }
    )
)

╭─[ 18.22ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span                     │
│ class="dni-code-hint"><code>Failure (&quot;bool&quot;, &quot;Unexpected      │
│ &#39;t&#39;&quot;, { currentLine = &quot;truX&quot;<br/>                     │
│ line = 0<br/>                                     column = 0                 │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><div                                                          │
│ class="dni-plaintext"><pre>bool</pre></div></td></tr><tr><td>Item2</td><td>< │
│ div class="dni-plaintext"><pre>Unexpected                                    │
│ &#39;t&#39;</pre></div></td></tr><tr><td>Item3</td><td><details              │
│ class="dni-treeview"><summary><span class="dni-code-hint"><code>{            │
│ currentLine = &quot;truX&quot;<br/>  line = 0<br/>  column = 0               │
│ }</code></span></summary><div><table><thead><tr></tr></thead...              │
╰──────────────────────────────────────────────────────────────────────────────╯

╭─[ 19.32ms - stdout ]─────────────────────────────────────────────────────────╮
│ Line:0 Col:0 Error parsing bool                                              │
│ truX                                                                         │
│ ^Unexpected 't'                                                              │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ### jUnescapedChar                                                           │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let jUnescapedChar =
    satisfy (fun ch -> ch <> '\\' && ch <> '\"') "char"

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

run jUnescapedChar "a"
|> parserEqual (Success 'a')

╭─[ 37.34ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span                     │
│ class="dni-code-hint"><code>Success (&#39;a&#39;, { lines = [                │
│ |&quot;a&quot;|]<br/>                position = { line = 0<br/>              │
│ column = 1 }                                                                 │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span                   │
│ class="dni-code-hint"><code>(a, { lines = [|&quot;a&quot;|]<br/>  position = │
│ { line = 0<br/>               column = 1 }                                   │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><div                                                          │
│ class="dni-plaintext"><pre>a</pre></div></td></tr><tr><td>Item2</td><td><det │
│ ails class="dni-treeview"><summary><span class="dni-code-hint"><code>{ lines │
│ = [|&quot;a&quot;|]<br/...                                                   │
╰──────────────────────────────────────────────────────────────────────────────╯

╭─[ 38.45ms - stdout ]─────────────────────────────────────────────────────────╮
│ 'a'                                                                          │
│ a                                                                            │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

run jUnescapedChar "\\"
|> parserEqual (
    Failure (
        "char",
        "Unexpected '\\'",
        { currentLine = "\\"; line = 0; column = 0 }
    )
)

╭─[ 25.41ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span                     │
│ class="dni-code-hint"><code>Failure (&quot;char&quot;, &quot;Unexpected      │
│ &#39;\&#39;&quot;, { currentLine = &quot;\&quot;<br/>                        │
│ line = 0<br/>                                     column = 0                 │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><div                                                          │
│ class="dni-plaintext"><pre>char</pre></div></td></tr><tr><td>Item2</td><td>< │
│ div class="dni-plaintext"><pre>Unexpected                                    │
│ &#39;\&#39;</pre></div></td></tr><tr><td>Item3</td><td><details              │
│ class="dni-treeview"><summary><span class="dni-code-hint"><code>{            │
│ currentLine = &quot;\&quot;<br/>  line = 0<br/>  column = 0                  │
│ }</code></span></summary><div><table><thead><tr></tr></thead><tbod...        │
╰──────────────────────────────────────────────────────────────────────────────╯

╭─[ 26.43ms - stdout ]─────────────────────────────────────────────────────────╮
│ Line:0 Col:0 Error parsing char                                              │
│ \                                                                            │
│ ^Unexpected '\'                                                              │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ### jEscapedChar                                                             │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let jEscapedChar =
    [[
        ("\\\"",'\"')
        ("\\\\",'\\')
        ("\\/",'/')
        ("\\b",'\b')
        ("\\f",'\f')
        ("\\n",'\n')
        ("\\r",'\r')
        ("\\t",'\t')
    ]]
    |> List.map (fun (toMatch, result) ->
        pstring toMatch >>% result
    )
    |> choice
    <?> "escaped char"

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

run jEscapedChar "\\\\"
|> parserEqual (Success '\\')

╭─[ 21.89ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span                     │
│ class="dni-code-hint"><code>Success (&#39;\\&#39;, { lines = [               │
│ |&quot;\\&quot;|]<br/>                 position = { line = 0<br/>            │
│ column = 2 }                                                                 │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span                   │
│ class="dni-code-hint"><code>(\, { lines = [|&quot;\\&quot;|]<br/>  position  │
│ = { line = 0<br/>               column = 2 }                                 │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><div                                                          │
│ class="dni-plaintext"><pre>\</pre></div></td></tr><tr><td>Item2</td><td><det │
│ ails class="dni-treeview"><summary><span class="dni-code-hint"><code>{ lines │
│ = [|&quot;\\&quot;...                                                        │
╰──────────────────────────────────────────────────────────────────────────────╯

╭─[ 23.04ms - stdout ]─────────────────────────────────────────────────────────╮
│ '\\'                                                                         │
│ \                                                                            │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

run jEscapedChar "\\t"
|> parserEqual (Success '\t')

╭─[ 19.98ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span                     │
│ class="dni-code-hint"><code>Success (&#39;\009&#39;, { lines = [             │
│ |&quot;\t&quot;|]<br/>                   position = { line = 0<br/>          │
│ column = 2 }                                                                 │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span                   │
│ class="dni-code-hint"><code>(	, { lines = [|&quot;\t&quot;|]<br/>  position =  │
│ { line = 0<br/>               column = 2 }                                   │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><div class="dni-plaintext"><pre>	                               │
│ </pre></div></td></tr><tr><td>Item2</td><td><details                         │
│ class="dni-treeview"><summary><span class="dni-code-hint"><code>{ lines = [  │
│ |&quot;\t...                                                                 │
╰──────────────────────────────────────────────────────────────────────────────╯

╭─[ 21.14ms - stdout ]─────────────────────────────────────────────────────────╮
│ '\009'                                                                       │
│ 	                                                                              │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

run jEscapedChar @"\\"
|> parserEqual (Success '\\')

╭─[ 19.57ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span                     │
│ class="dni-code-hint"><code>Success (&#39;\\&#39;, { lines = [               │
│ |&quot;\\&quot;|]<br/>                 position = { line = 0<br/>            │
│ column = 2 }                                                                 │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span                   │
│ class="dni-code-hint"><code>(\, { lines = [|&quot;\\&quot;|]<br/>  position  │
│ = { line = 0<br/>               column = 2 }                                 │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><div                                                          │
│ class="dni-plaintext"><pre>\</pre></div></td></tr><tr><td>Item2</td><td><det │
│ ails class="dni-treeview"><summary><span class="dni-code-hint"><code>{ lines │
│ = [|&quot;\\&quot;...                                                        │
╰──────────────────────────────────────────────────────────────────────────────╯

╭─[ 20.69ms - stdout ]─────────────────────────────────────────────────────────╮
│ '\\'                                                                         │
│ \                                                                            │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

run jEscapedChar @"\n"
|> parserEqual (Success '\n')

╭─[ 19.50ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span                     │
│ class="dni-code-hint"><code>Success (&#39;\010&#39;, { lines = [             │
│ |&quot;<br/>&quot;|]<br/>                   position = { line = 0<br/>       │
│ column = 2 }                                                                 │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span                   │
│ class="dni-code-hint"><code>(<br/>, { lines = [|&quot;<br/>&quot;|]<br/>     │
│ position = { line = 0<br/>               column = 2 }                        │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><div class="dni-plaintext"><pre>                              │
│ </pre></div></td></tr><tr><td>Item2</td><td><details                         │
│ class="dni-treeview"><summary><span class="dni-code-hint"><code>{ lines =    │
│ ...                                                                          │
╰──────────────────────────────────────────────────────────────────────────────╯

╭─[ 20.65ms - stdout ]─────────────────────────────────────────────────────────╮
│ '\010'                                                                       │
│                                                                              │
│                                                                              │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

run jEscapedChar "a"
|> parserEqual (
    Failure (
        "escaped char",
        "Unexpected 'a'",
        { currentLine = "a"; line = 0; column = 0 }
    )
)

╭─[ 18.27ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span                     │
│ class="dni-code-hint"><code>Failure (&quot;escaped char&quot;,               │
│ &quot;Unexpected &#39;a&#39;&quot;, { currentLine = &quot;a&quot;<br/>       │
│ line = 0<br/>                                             column = 0         │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><div class="dni-plaintext"><pre>escaped                       │
│ char</pre></div></td></tr><tr><td>Item2</td><td><div                         │
│ class="dni-plaintext"><pre>Unexpected                                        │
│ &#39;a&#39;</pre></div></td></tr><tr><td>Item3</td><td><details              │
│ class="dni-treeview"><summary><span class="dni-code-hint"><code>{            │
│ currentLine = &quot;a&quot;<br/>  line = 0<br/>  column = 0                  │
│ }</code></span></summary><div><tab...                                        │
╰──────────────────────────────────────────────────────────────────────────────╯

╭─[ 19.29ms - stdout ]─────────────────────────────────────────────────────────╮
│ Line:0 Col:0 Error parsing escaped char                                      │
│ a                                                                            │
│ ^Unexpected 'a'                                                              │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ### jUnicodeChar                                                             │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let jUnicodeChar =
    let backslash = pchar '\\'
    let uChar = pchar 'u'
    let hexdigit = anyOf ([[ '0' .. '9' ]] @ [[ 'A' .. 'F' ]] @ [[ 'a' .. 'f' 
]])
    let fourHexDigits = hexdigit .>>. hexdigit .>>. hexdigit .>>. hexdigit

    let inline convertToChar (((h1, h2), h3), h4) =
        let str = $"%c{h1}%c{h2}%c{h3}%c{h4}"
        Int32.Parse (str, Globalization.NumberStyles.HexNumber) |> char

    backslash >>. uChar >>. fourHexDigits
    |>> convertToChar

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

run jUnicodeChar "\\u263A"
|> parserEqual (Success '☺')

╭─[ 29.63ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span                     │
│ class="dni-code-hint"><code>Success (&#39;☺&#39;, { lines = [                │
│ |&quot;\u263A&quot;|]<br/>                position = { line = 0<br/>         │
│ column = 6 }                                                                 │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span                   │
│ class="dni-code-hint"><code>(☺, { lines = [|&quot;\u263A&quot;|]<br/>        │
│ position = { line = 0<br/>               column = 6 }                        │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><div                                                          │
│ class="dni-plaintext"><pre>☺</pre></div></td></tr><tr><td>Item2</td><td><det │
│ ails class="dni-treeview"><summary><span class="dni-code-hint"><code>{ lines │
│ = [|&quot;\u2...                                                             │
╰──────────────────────────────────────────────────────────────────────────────╯

╭─[ 30.78ms - stdout ]─────────────────────────────────────────────────────────╮
│ '☺'                                                                          │
│ ☺                                                                            │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ### jString                                                                  │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let quotedString =
    let quote = pchar '\"' <?> "quote"
    let jchar = jUnescapedChar <|> jEscapedChar <|> jUnicodeChar

    quote >>. manyChars jchar .>> quote

── fsharp ──────────────────────────────────────────────────────────────────────
let jString =
    quotedString
    |>> JString
    <?> "quoted string"

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

jValueRef <|
    choice
        [[
            jNull
            jBool
            jString
        ]]

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

run jString "\"\""
|> parserEqual (Success (JString ""))

╭─[ 34.72ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span                     │
│ class="dni-code-hint"><code>Success (JString &quot;&quot;, { lines = [       │
│ |&quot;&quot;&quot;&quot;|]<br/>                       position = { line =   │
│ 0<br/>                                    column = 2 }                       │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span                   │
│ class="dni-code-hint"><code>(JString &quot;&quot;, { lines = [               │
│ |&quot;&quot;&quot;&quot;|]<br/>  position = { line = 0<br/>                 │
│ column = 2 }                                                                 │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span                  │
│ class="dni-code-hint"><code>JString &quot;&quot;</code></span></summary>...  │
╰──────────────────────────────────────────────────────────────────────────────╯

╭─[ 35.96ms - stdout ]─────────────────────────────────────────────────────────╮
│ JString ""                                                                   │
│ JString                                                                      │
│       Item:                                                                  │
│       IsJString: True                                                        │
│       IsJNumber: False                                                       │
│       IsJBool: False                                                         │
│       IsJNull: False                                                         │
│       IsJObject: False                                                       │
│       IsJArray: False                                                        │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

run jString "\"a\""
|> parserEqual (Success (JString "a"))

╭─[ 56.13ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span                     │
│ class="dni-code-hint"><code>Success (JString &quot;a&quot;, { lines = [      │
│ |&quot;&quot;a&quot;&quot;|]<br/>                        position = { line = │
│ 0<br/>                                     column = 3 }                      │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span                   │
│ class="dni-code-hint"><code>(JString &quot;a&quot;, { lines = [              │
│ |&quot;&quot;a&quot;&quot;|]<br/>  position = { line = 0<br/>                │
│ column = 3 }                                                                 │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span                  │
│ class="dni-code-hint"><code>JString &quot;a&quot;</code></span></s...        │
╰──────────────────────────────────────────────────────────────────────────────╯

╭─[ 57.47ms - stdout ]─────────────────────────────────────────────────────────╮
│ JString "a"                                                                  │
│ JString                                                                      │
│       Item: a                                                                │
│       IsJString: True                                                        │
│       IsJNumber: False                                                       │
│       IsJBool: False                                                         │
│       IsJNull: False                                                         │
│       IsJObject: False                                                       │
│       IsJArray: False                                                        │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

run jString "\"ab\""
|> parserEqual (Success (JString "ab"))

╭─[ 21.53ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span                     │
│ class="dni-code-hint"><code>Success (JString &quot;ab&quot;, { lines = [     │
│ |&quot;&quot;ab&quot;&quot;|]<br/>                         position = { line │
│ = 0<br/>                                      column = 4 }                   │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span                   │
│ class="dni-code-hint"><code>(JString &quot;ab&quot;, { lines = [             │
│ |&quot;&quot;ab&quot;&quot;|]<br/>  position = { line = 0<br/>               │
│ column = 4 }                                                                 │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span                  │
│ class="dni-code-hint"><code>JString &quot;ab&quot;</code></s...              │
╰──────────────────────────────────────────────────────────────────────────────╯

╭─[ 23.11ms - stdout ]─────────────────────────────────────────────────────────╮
│ JString "ab"                                                                 │
│ JString                                                                      │
│       Item: ab                                                               │
│       IsJString: True                                                        │
│       IsJNumber: False                                                       │
│       IsJBool: False                                                         │
│       IsJNull: False                                                         │
│       IsJObject: False                                                       │
│       IsJArray: False                                                        │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

run jString "\"ab\\tde\""
|> parserEqual (Success (JString "ab\tde"))

╭─[ 21.38ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span                     │
│ class="dni-code-hint"><code>Success (JString &quot;ab	de&quot;, { lines = [    │
│ |&quot;&quot;ab\tde&quot;&quot;|]<br/>                            position = │
│ { line = 0<br/>                                         column = 8 }         │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span                   │
│ class="dni-code-hint"><code>(JString &quot;ab	de&quot;, { lines = [            │
│ |&quot;&quot;ab\tde&quot;&quot;|]<br/>  position = { line = 0<br/>           │
│ column = 8 }                                                                 │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span                  │
│ class="dni-code-hint"><code>JString &quo...                                  │
╰──────────────────────────────────────────────────────────────────────────────╯

╭─[ 22.59ms - stdout ]─────────────────────────────────────────────────────────╮
│ JString "ab	de"                                                                │
│ JString                                                                      │
│       Item: ab	de                                                              │
│       IsJString: True                                                        │
│       IsJNumber: False                                                       │
│       IsJBool: False                                                         │
│       IsJNull: False                                                         │
│       IsJObject: False                                                       │
│       IsJArray: False                                                        │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

run jString "\"ab\\u263Ade\""
|> parserEqual (Success (JString "ab☺de"))

╭─[ 21.61ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span                     │
│ class="dni-code-hint"><code>Success (JString &quot;ab☺de&quot;, { lines = [  │
│ |&quot;&quot;ab\u263Ade&quot;&quot;|]<br/>                                   │
│ position = { line = 0<br/>                                         column =  │
│ 12 }                                                                         │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span                   │
│ class="dni-code-hint"><code>(JString &quot;ab☺de&quot;, { lines = [          │
│ |&quot;&quot;ab\u263Ade&quot;&quot;|]<br/>  position = { line = 0<br/>       │
│ column = 12 }                                                                │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span                  │
│ class="dni-code-hint"><code>JS...                                            │
╰──────────────────────────────────────────────────────────────────────────────╯

╭─[ 22.83ms - stdout ]─────────────────────────────────────────────────────────╮
│ JString "ab☺de"                                                              │
│ JString                                                                      │
│       Item: ab☺de                                                            │
│       IsJString: True                                                        │
│       IsJNumber: False                                                       │
│       IsJBool: False                                                         │
│       IsJNull: False                                                         │
│       IsJObject: False                                                       │
│       IsJArray: False                                                        │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ### jNumber                                                                  │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let jNumber =
    let optSign = opt (pchar '-')

    let zero = pstring "0"

    let digitOneNine =
        satisfy (fun ch -> Char.IsDigit ch && ch <> '0') "1-9"

    let digit =
        satisfy Char.IsDigit "digit"

    let point = pchar '.'

    let e = pchar 'e' <|> pchar 'E'

    let optPlusMinus = opt (pchar '-' <|> pchar '+')

    let nonZeroInt =
        digitOneNine .>>. manyChars digit
        |>> fun (first, rest) -> string first + rest

    let intPart = zero <|> nonZeroInt

    let fractionPart = point >>. manyChars1 digit

    let exponentPart = e >>. optPlusMinus .>>. manyChars1 digit

    let inline (|>?) opt f =
        match opt with
        | None -> ""
        | Some x -> f x

    let inline convertToJNumber (((optSign, intPart), fractionPart), expPart) =
        let signStr =
            optSign
            |>? string

        let fractionPartStr =
            fractionPart
            |>? (fun digits -> "." + digits)

        let expPartStr =
            expPart
            |>? fun (optSign, digits) ->
                let sign = optSign |>? string
                "e" + sign + digits

        (signStr + intPart + fractionPartStr + expPartStr)
        |> float
        |> JNumber

    optSign .>>. intPart .>>. opt fractionPart .>>. opt exponentPart
    |>> convertToJNumber
    <?> "number"

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

jValueRef <|
    choice
        [[
            jNull
            jBool
            jString
            jNumber
        ]]

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

run jNumber "123"
|> parserEqual (Success (JNumber 123.0))

╭─[ 42.66ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span                     │
│ class="dni-code-hint"><code>Success (JNumber 123.0, { lines = [              │
│ |&quot;123&quot;|]<br/>                          position = { line = 0<br/>  │
│ column = 3 }                                                                 │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span                   │
│ class="dni-code-hint"><code>(JNumber 123.0, { lines = [                      │
│ |&quot;123&quot;|]<br/>  position = { line = 0<br/>               column = 3 │
│ }                                                                            │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span                  │
│ class="dni-code-hint"><code>JNumber                                          │
│ 123.0</code></span></summary><div><table><thead><tr></tr></the...            │
╰──────────────────────────────────────────────────────────────────────────────╯

╭─[ 43.95ms - stdout ]─────────────────────────────────────────────────────────╮
│ JNumber 123.0                                                                │
│ JNumber                                                                      │
│       Item: 123                                                              │
│       IsJString: False                                                       │
│       IsJNumber: True                                                        │
│       IsJBool: False                                                         │
│       IsJNull: False                                                         │
│       IsJObject: False                                                       │
│       IsJArray: False                                                        │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

run jNumber "-123"
|> parserEqual (Success (JNumber -123.0))

╭─[ 21.63ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span                     │
│ class="dni-code-hint"><code>Success (JNumber -123.0, { lines = [             │
│ |&quot;-123&quot;|]<br/>                           position = { line =       │
│ 0<br/>                                        column = 4 }                   │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span                   │
│ class="dni-code-hint"><code>(JNumber -123.0, { lines = [                     │
│ |&quot;-123&quot;|]<br/>  position = { line = 0<br/>               column =  │
│ 4 }                                                                          │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span                  │
│ class="dni-code-hint"><code>JNumber                                          │
│ -123.0</code></span></summary><div><table><thead><tr></t...                  │
╰──────────────────────────────────────────────────────────────────────────────╯

╭─[ 22.77ms - stdout ]─────────────────────────────────────────────────────────╮
│ JNumber -123.0                                                               │
│ JNumber                                                                      │
│       Item: -123                                                             │
│       IsJString: False                                                       │
│       IsJNumber: True                                                        │
│       IsJBool: False                                                         │
│       IsJNull: False                                                         │
│       IsJObject: False                                                       │
│       IsJArray: False                                                        │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

run jNumber "123.4"
|> parserEqual (Success (JNumber 123.4))

╭─[ 22.14ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span                     │
│ class="dni-code-hint"><code>Success (JNumber 123.4, { lines = [              │
│ |&quot;123.4&quot;|]<br/>                          position = { line =       │
│ 0<br/>                                       column = 5 }                    │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span                   │
│ class="dni-code-hint"><code>(JNumber 123.4, { lines = [                      │
│ |&quot;123.4&quot;|]<br/>  position = { line = 0<br/>               column = │
│ 5 }                                                                          │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span                  │
│ class="dni-code-hint"><code>JNumber                                          │
│ 123.4</code></span></summary><div><table><thead><tr></tr><...                │
╰──────────────────────────────────────────────────────────────────────────────╯

╭─[ 23.32ms - stdout ]─────────────────────────────────────────────────────────╮
│ JNumber 123.4                                                                │
│ JNumber                                                                      │
│       Item: 123.4                                                            │
│       IsJString: False                                                       │
│       IsJNumber: True                                                        │
│       IsJBool: False                                                         │
│       IsJNull: False                                                         │
│       IsJObject: False                                                       │
│       IsJArray: False                                                        │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

run jNumber "-123."
|> parserEqual (Success (JNumber -123.0))

╭─[ 20.37ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span                     │
│ class="dni-code-hint"><code>Success (JNumber -123.0, { lines = [             │
│ |&quot;-123.&quot;|]<br/>                           position = { line =      │
│ 0<br/>                                        column = 4 }                   │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span                   │
│ class="dni-code-hint"><code>(JNumber -123.0, { lines = [                     │
│ |&quot;-123.&quot;|]<br/>  position = { line = 0<br/>               column = │
│ 4 }                                                                          │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span                  │
│ class="dni-code-hint"><code>JNumber                                          │
│ -123.0</code></span></summary><div><table><thead><tr><...                    │
╰──────────────────────────────────────────────────────────────────────────────╯

╭─[ 21.51ms - stdout ]─────────────────────────────────────────────────────────╮
│ JNumber -123.0                                                               │
│ JNumber                                                                      │
│       Item: -123                                                             │
│       IsJString: False                                                       │
│       IsJNumber: True                                                        │
│       IsJBool: False                                                         │
│       IsJNull: False                                                         │
│       IsJObject: False                                                       │
│       IsJArray: False                                                        │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

run jNumber "00.1"
|> parserEqual (Success (JNumber 0.0))

╭─[ 20.68ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span                     │
│ class="dni-code-hint"><code>Success (JNumber 0.0, { lines = [                │
│ |&quot;00.1&quot;|]<br/>                        position = { line = 0<br/>   │
│ column = 1 }                                                                 │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span                   │
│ class="dni-code-hint"><code>(JNumber 0.0, { lines = [                        │
│ |&quot;00.1&quot;|]<br/>  position = { line = 0<br/>               column =  │
│ 1 }                                                                          │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span                  │
│ class="dni-code-hint"><code>JNumber                                          │
│ 0.0</code></span></summary><div><table><thead><tr></tr></thead><tbod...      │
╰──────────────────────────────────────────────────────────────────────────────╯

╭─[ 21.94ms - stdout ]─────────────────────────────────────────────────────────╮
│ JNumber 0.0                                                                  │
│ JNumber                                                                      │
│       Item: 0                                                                │
│       IsJString: False                                                       │
│       IsJNumber: True                                                        │
│       IsJBool: False                                                         │
│       IsJNull: False                                                         │
│       IsJObject: False                                                       │
│       IsJArray: False                                                        │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let jNumber_ = jNumber .>> spaces1

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

run jNumber_ "123"
|> parserEqual (Success (JNumber 123.0))

╭─[ 22.98ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span                     │
│ class="dni-code-hint"><code>Success (JNumber 123.0, { lines = [              │
│ |&quot;123&quot;|]<br/>                          position = { line = 1<br/>  │
│ column = 0 }                                                                 │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span                   │
│ class="dni-code-hint"><code>(JNumber 123.0, { lines = [                      │
│ |&quot;123&quot;|]<br/>  position = { line = 1<br/>               column = 0 │
│ }                                                                            │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span                  │
│ class="dni-code-hint"><code>JNumber                                          │
│ 123.0</code></span></summary><div><table><thead><tr></tr></the...            │
╰──────────────────────────────────────────────────────────────────────────────╯

╭─[ 24.15ms - stdout ]─────────────────────────────────────────────────────────╮
│ JNumber 123.0                                                                │
│ JNumber                                                                      │
│       Item: 123                                                              │
│       IsJString: False                                                       │
│       IsJNumber: True                                                        │
│       IsJBool: False                                                         │
│       IsJNull: False                                                         │
│       IsJObject: False                                                       │
│       IsJArray: False                                                        │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

run jNumber_ "-123"
|> parserEqual (Success (JNumber -123.0))

╭─[ 23.90ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span                     │
│ class="dni-code-hint"><code>Success (JNumber -123.0, { lines = [             │
│ |&quot;-123&quot;|]<br/>                           position = { line =       │
│ 1<br/>                                        column = 0 }                   │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span                   │
│ class="dni-code-hint"><code>(JNumber -123.0, { lines = [                     │
│ |&quot;-123&quot;|]<br/>  position = { line = 1<br/>               column =  │
│ 0 }                                                                          │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span                  │
│ class="dni-code-hint"><code>JNumber                                          │
│ -123.0</code></span></summary><div><table><thead><tr></t...                  │
╰──────────────────────────────────────────────────────────────────────────────╯

╭─[ 25.22ms - stdout ]─────────────────────────────────────────────────────────╮
│ JNumber -123.0                                                               │
│ JNumber                                                                      │
│       Item: -123                                                             │
│       IsJString: False                                                       │
│       IsJNumber: True                                                        │
│       IsJBool: False                                                         │
│       IsJNull: False                                                         │
│       IsJObject: False                                                       │
│       IsJArray: False                                                        │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

run jNumber_ "-123."
|> parserEqual (
    Failure (
        "number andThen many1 whitespace",
        "Unexpected '.'",
        { currentLine = "-123."; line = 0; column = 4 }
    )
)

╭─[ 43.27ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span                     │
│ class="dni-code-hint"><code>Failure<br/>  (&quot;number andThen many1        │
│ whitespace&quot;, &quot;Unexpected &#39;.&#39;&quot;, { currentLine =        │
│ &quot;-123.&quot;<br/>                                                       │
│ line = 0<br/>                                                                │
│ column = 4                                                                   │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><div class="dni-plaintext"><pre>number andThen many1          │
│ whitespace</pre></div></td></tr><tr><td>Item2</td><td><div                   │
│ class="dni-plaintext"><pre>Unexpected                                        │
│ &#39;.&#39;</pre></div></td></tr><tr><td>Item3</td><td><details              │
│ class="dni-treeview"><summary><span class="dni-code-hint"><code>{            │
│ currentLine = &quot;...                                                      │
╰──────────────────────────────────────────────────────────────────────────────╯

╭─[ 44.34ms - stdout ]─────────────────────────────────────────────────────────╮
│ Line:0 Col:4 Error parsing number andThen many1 whitespace                   │
│ -123.                                                                        │
│     ^Unexpected '.'                                                          │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

run jNumber_ "123.4"
|> parserEqual (Success (JNumber 123.4))

╭─[ 21.85ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span                     │
│ class="dni-code-hint"><code>Success (JNumber 123.4, { lines = [              │
│ |&quot;123.4&quot;|]<br/>                          position = { line =       │
│ 1<br/>                                       column = 0 }                    │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span                   │
│ class="dni-code-hint"><code>(JNumber 123.4, { lines = [                      │
│ |&quot;123.4&quot;|]<br/>  position = { line = 1<br/>               column = │
│ 0 }                                                                          │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span                  │
│ class="dni-code-hint"><code>JNumber                                          │
│ 123.4</code></span></summary><div><table><thead><tr></tr><...                │
╰──────────────────────────────────────────────────────────────────────────────╯

╭─[ 23.14ms - stdout ]─────────────────────────────────────────────────────────╮
│ JNumber 123.4                                                                │
│ JNumber                                                                      │
│       Item: 123.4                                                            │
│       IsJString: False                                                       │
│       IsJNumber: True                                                        │
│       IsJBool: False                                                         │
│       IsJNull: False                                                         │
│       IsJObject: False                                                       │
│       IsJArray: False                                                        │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

run jNumber_ "00.4"
|> parserEqual (
    Failure (
        "number andThen many1 whitespace",
        "Unexpected '0'",
        { currentLine = "00.4"; line = 0; column = 1 }
    )
)

╭─[ 17.96ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span                     │
│ class="dni-code-hint"><code>Failure<br/>  (&quot;number andThen many1        │
│ whitespace&quot;, &quot;Unexpected &#39;0&#39;&quot;, { currentLine =        │
│ &quot;00.4&quot;<br/>                                                        │
│ line = 0<br/>                                                                │
│ column = 1                                                                   │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><div class="dni-plaintext"><pre>number andThen many1          │
│ whitespace</pre></div></td></tr><tr><td>Item2</td><td><div                   │
│ class="dni-plaintext"><pre>Unexpected                                        │
│ &#39;0&#39;</pre></div></td></tr><tr><td>Item3</td><td><details              │
│ class="dni-treeview"><summary><span class="dni-code-hint"><code>{            │
│ currentLine = &quot;0...                                                     │
╰──────────────────────────────────────────────────────────────────────────────╯

╭─[ 18.92ms - stdout ]─────────────────────────────────────────────────────────╮
│ Line:0 Col:1 Error parsing number andThen many1 whitespace                   │
│ 00.4                                                                         │
│  ^Unexpected '0'                                                             │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

run jNumber_ "123e4"
|> parserEqual (Success (JNumber 1230000.0))

╭─[ 23.97ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span                     │
│ class="dni-code-hint"><code>Success (JNumber 1230000.0, { lines = [          │
│ |&quot;123e4&quot;|]<br/>                              position = { line =   │
│ 1<br/>                                           column = 0 }                │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span                   │
│ class="dni-code-hint"><code>(JNumber 1230000.0, { lines = [                  │
│ |&quot;123e4&quot;|]<br/>  position = { line = 1<br/>               column = │
│ 0 }                                                                          │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span                  │
│ class="dni-code-hint"><code>JNumber                                          │
│ 1230000.0</code></span></summary><div><tab...                                │
╰──────────────────────────────────────────────────────────────────────────────╯

╭─[ 25.20ms - stdout ]─────────────────────────────────────────────────────────╮
│ JNumber 1230000.0                                                            │
│ JNumber                                                                      │
│       Item: 1230000                                                          │
│       IsJString: False                                                       │
│       IsJNumber: True                                                        │
│       IsJBool: False                                                         │
│       IsJNull: False                                                         │
│       IsJObject: False                                                       │
│       IsJArray: False                                                        │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

run jNumber_ "123.4e5"
|> parserEqual (Success (JNumber 12340000.0))

╭─[ 22.03ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span                     │
│ class="dni-code-hint"><code>Success (JNumber 12340000.0, { lines = [         │
│ |&quot;123.4e5&quot;|]<br/>                               position = { line  │
│ = 1<br/>                                            column = 0 }             │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span                   │
│ class="dni-code-hint"><code>(JNumber 12340000.0, { lines = [                 │
│ |&quot;123.4e5&quot;|]<br/>  position = { line = 1<br/>               column │
│ = 0 }                                                                        │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span                  │
│ class="dni-code-hint"><code>JNumber 12340000.0</code></span></summary>...    │
╰──────────────────────────────────────────────────────────────────────────────╯

╭─[ 23.22ms - stdout ]─────────────────────────────────────────────────────────╮
│ JNumber 12340000.0                                                           │
│ JNumber                                                                      │
│       Item: 12340000                                                         │
│       IsJString: False                                                       │
│       IsJNumber: True                                                        │
│       IsJBool: False                                                         │
│       IsJNull: False                                                         │
│       IsJObject: False                                                       │
│       IsJArray: False                                                        │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

run jNumber_ "123.4e-5"
|> parserEqual (Success (JNumber 0.001234))

╭─[ 21.67ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span                     │
│ class="dni-code-hint"><code>Success (JNumber 0.001234, { lines = [           │
│ |&quot;123.4e-5&quot;|]<br/>                             position = { line = │
│ 1<br/>                                          column = 0 }                 │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span                   │
│ class="dni-code-hint"><code>(JNumber 0.001234, { lines = [                   │
│ |&quot;123.4e-5&quot;|]<br/>  position = { line = 1<br/>                     │
│ column = 0 }                                                                 │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span                  │
│ class="dni-code-hint"><code>JNumber                                          │
│ 0.001234</code></span></summary><div><ta...                                  │
╰──────────────────────────────────────────────────────────────────────────────╯

╭─[ 22.83ms - stdout ]─────────────────────────────────────────────────────────╮
│ JNumber 0.001234                                                             │
│ JNumber                                                                      │
│       Item: 0.001234                                                         │
│       IsJString: False                                                       │
│       IsJNumber: True                                                        │
│       IsJBool: False                                                         │
│       IsJNull: False                                                         │
│       IsJObject: False                                                       │
│       IsJArray: False                                                        │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ### jArray                                                                   │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let jArray =
    let left = pchar '[[' .>> spaces
    let right = pchar ']]' .>> spaces
    let comma = pchar ',' .>> spaces
    let value = jValue .>> spaces

    let values = sepBy value comma

    between left values right
    |>> JArray
    <?> "array"

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

jValueRef <|
    choice
        [[
            jNull
            jBool
            jString
            jNumber
            jArray
        ]]

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

run jArray "[[ 1, 2 ]]"
|> parserEqual (Success (JArray [[ JNumber 1.0; JNumber 2.0 ]]))

╭─[ 61.56ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span                     │
│ class="dni-code-hint"><code>Success (JArray [JNumber 1.0; JNumber 2.0], {    │
│ lines = [|&quot;[ 1, 2 ]&quot;|]<br/>                                        │
│ position = { line = 1<br/>                                                   │
│ column = 0 }                                                                 │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span                   │
│ class="dni-code-hint"><code>(JArray [JNumber 1.0; JNumber 2.0], { lines = [  │
│ |&quot;[ 1, 2 ]&quot;|]<br/>  position = { line = 1<br/>                     │
│ column = 0 }                                                                 │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span class="d...      │
╰──────────────────────────────────────────────────────────────────────────────╯

╭─[ 63.13ms - stdout ]─────────────────────────────────────────────────────────╮
│ JArray [JNumber 1.0; JNumber 2.0]                                            │
│ JArray                                                                       │
│       Item: FSharpList<JValue>                                               │
│         - Item: 1                                                            │
│           IsJString: False                                                   │
│           IsJNumber: True                                                    │
│           IsJBool: False                                                     │
│           IsJNull: False                                                     │
│           IsJObject: False                                                   │
│           IsJArray: False                                                    │
│         - Item: 2                                                            │
│           IsJString: False                                                   │
│           IsJNumber: True                                                    │
│           IsJBool: False                                                     │
│           IsJNull: False                                                     │
│           IsJObject: False                                                   │
│           IsJArray: False                                                    │
│       IsJString: False                                                       │
│       IsJNumber: False                                                       │
│       IsJBool: False                                                         │
│       IsJNull: False                                                         │
│       IsJObject: False                                                       │
│       IsJArray: True                                                         │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

run jArray "[[ 1, 2, ]]"
|> parserEqual (
    Failure (
        "array",
        "Unexpected ','",
        { currentLine = "[[ 1, 2, ]]"; line = 0; column = 6 }
    )
)

╭─[ 23.58ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span                     │
│ class="dni-code-hint"><code>Failure (&quot;array&quot;, &quot;Unexpected     │
│ &#39;,&#39;&quot;, { currentLine = &quot;[ 1, 2, ]&quot;<br/>                │
│ line = 0<br/>                                      column = 6                │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><div                                                          │
│ class="dni-plaintext"><pre>array</pre></div></td></tr><tr><td>Item2</td><td> │
│ <div class="dni-plaintext"><pre>Unexpected                                   │
│ &#39;,&#39;</pre></div></td></tr><tr><td>Item3</td><td><details              │
│ class="dni-treeview"><summary><span class="dni-code-hint"><code>{            │
│ currentLine = &quot;[ 1, 2, ]&quot;<br/>  line = 0<br/>  column = 6          │
│ }</code></span></summary><div><table><thead><t...                            │
╰──────────────────────────────────────────────────────────────────────────────╯

╭─[ 24.80ms - stdout ]─────────────────────────────────────────────────────────╮
│ Line:0 Col:6 Error parsing array                                             │
│ [ 1, 2, ]                                                                    │
│       ^Unexpected ','                                                        │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ### jObject                                                                  │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let jObject =
    let left = spaces >>. pchar '{' .>> spaces
    let right = pchar '}' .>> spaces
    let colon = pchar ':' .>> spaces
    let comma = pchar ',' .>> spaces
    let key = quotedString .>> spaces
    let value = jValue .>> spaces

    let keyValue = (key .>> colon) .>>. value
    let keyValues = sepBy keyValue comma

    between left keyValues right
    |>> Map.ofList
    |>> JObject
    <?> "object"

── fsharp ──────────────────────────────────────────────────────────────────────
jValueRef <|
    choice
        [[
            jNull
            jBool
            jString
            jNumber
            jArray
            jObject
        ]]

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

run jObject """{ "a":1, "b"  :  2 }"""
|> parserEqual (
    Success (
        JObject (
            Map.ofList [[
                "a", JNumber 1.0
                "b", JNumber 2.0
            ]]
        )
    )
)

╭─[ 72.31ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span                     │
│ class="dni-code-hint"><code>Success<br/>  (JObject (map [(&quot;a&quot;,     │
│ JNumber 1.0); (&quot;b&quot;, JNumber 2.0)]),<br/>   { lines = [|&quot;{     │
│ &quot;a&quot;:1, &quot;b&quot;  :  2 }&quot;|]<br/>     position = { line =  │
│ 1<br/>                  column = 0 }                                         │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span                   │
│ class="dni-code-hint"><code>(JObject (map [(&quot;a&quot;, JNumber 1.0);     │
│ (&quot;b&quot;, JNumber 2.0)]), { lines = [|&quot;{ &quot;a&quot;:1,         │
│ &quot;b&quot;  :  2 }&quot;|]<br/>  position = { line = 1<br/>               │
│ column = 0 }                                                                 │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbod...       │
╰──────────────────────────────────────────────────────────────────────────────╯

╭─[ 74.00ms - stdout ]─────────────────────────────────────────────────────────╮
│ JObject (map [("a", JNumber 1.0); ("b", JNumber 2.0)])                       │
│ JObject                                                                      │
│       Item: FSharpMap<String,JValue>                                         │
│         - Key: a                                                             │
│           Value: JNumber                                                     │
│             Item: 1                                                          │
│             IsJString: False                                                 │
│             IsJNumber: True                                                  │
│             IsJBool: False                                                   │
│             IsJNull: False                                                   │
│             IsJObject: False                                                 │
│             IsJArray: False                                                  │
│         - Key: b                                                             │
│           Value: JNumber                                                     │
│             Item: 2                                                          │
│             IsJString: False                                                 │
│             IsJNumber: True                                                  │
│             IsJBool: False                                                   │
│             IsJNull: False                                                   │
│             IsJObject: False                                                 │
│             IsJArray: False                                                  │
│       IsJString: False                                                       │
│       IsJNumber: False                                                       │
│       IsJBool: False                                                         │
│       IsJNull: False                                                         │
│       IsJObject: True                                                        │
│       IsJArray: False                                                        │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

run jObject """{ "a":1, "b"  :  2, }"""
|> parserEqual (
    Failure (
        "object",
        "Unexpected ','",
        { currentLine = """{ "a":1, "b"  :  2, }"""; line = 0; column = 18 }
    )
)

╭─[ 58.96ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span                     │
│ class="dni-code-hint"><code>Failure (&quot;object&quot;, &quot;Unexpected    │
│ &#39;,&#39;&quot;, { currentLine = &quot;{ &quot;a&quot;:1, &quot;b&quot;  : │
│ 2, }&quot;<br/>                                       line = 0<br/>          │
│ column = 18                                                                  │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><div                                                          │
│ class="dni-plaintext"><pre>object</pre></div></td></tr><tr><td>Item2</td><td │
│ ><div class="dni-plaintext"><pre>Unexpected                                  │
│ &#39;,&#39;</pre></div></td></tr><tr><td>Item3</td><td><details              │
│ class="dni-treeview"><summary><span class="dni-code-hint"><code>{            │
│ currentLine = &quot;{ &quot;a&quot;:1, &quot;b&quot;  :  2, }&quot;<br/>     │
│ lin...                                                                       │
╰──────────────────────────────────────────────────────────────────────────────╯

╭─[ 60.16ms - stdout ]─────────────────────────────────────────────────────────╮
│ Line:0 Col:18 Error parsing object                                           │
│ { "a":1, "b"  :  2, }                                                        │
│                   ^Unexpected ','                                            │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ### jValue                                                                   │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let example1 = """{
    "name" : "Scott",
    "isMale" : true,
    "bday" : {"year":2001, "month":12, "day":25 },
    "favouriteColors" : [["blue", "green"]],
    "emptyArray" : [[]],
    "emptyObject" : {}
}"""
run jValue example1
|> parserEqual (
    Success (
        JObject (
            Map.ofList [[
                "name", JString "Scott"
                "isMale", JBool true
                "bday", JObject (
                    Map.ofList [[
                        "year", JNumber 2001.0
                        "month", JNumber 12.0
                        "day", JNumber 25.0
                    ]]
                )
                "favouriteColors", JArray [[ JString "blue"; JString "green" ]]
                "emptyArray", JArray [[]]
                "emptyObject", JObject Map.empty
            ]]
        )
    )
)

╭─[ 118.05ms - return value ]──────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span                     │
│ class="dni-code-hint"><code>Success<br/>  (JObject<br/>     (map<br/>        │
│ [(&quot;bday&quot;,<br/>          JObject<br/>            (map<br/>          │
│ [(&quot;day&quot;, JNumber 25.0); (&quot;month&quot;, JNumber 12.0);<br/>    │
│ (&quot;year&quot;, JNumber 2001.0)])); (&quot;emptyArray&quot;, JArray [     │
│ ]);<br/>         (&quot;emptyObject&quot;, JObject (map []));<br/>           │
│ (&quot;favouriteColors&quot;,                                                │
│ ...</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><t │
│ d>Item</td><td><details class="dni-treeview"><summary><span                  │
│ class="dni-code-hint"><code>(JObject<br/>  (map<br/>     [                   │
│ (&quot;bday&quot;,<br/>       JObject<br/>         (map<br/>            [    │
│ (...                                                                         │
╰──────────────────────────────────────────────────────────────────────────────╯

╭─[ 119.69ms - stdout ]────────────────────────────────────────────────────────╮
│ JObject                                                                      │
│   (map                                                                       │
│      [("bday",                                                               │
│        JObject                                                               │
│          (map                                                                │
│             [("day", JNumber 25.0); ("month", JNumber 12.0);                 │
│              ("year", JNumber 2001.0)])); ("emptyArray", JArray []);         │
│       ("emptyObject", JObject (map []));                                     │
│       ("favouriteColors", JArray [JString "blue"; JString "green"]);         │
│       ("isMale", JBool true); ("name", JString "Scott")])                    │
│ JObject                                                                      │
│       Item: FSharpMap<String,JValue>                                         │
│         - Key: bday                                                          │
│           Value: JObject                                                     │
│             Item: FSharpMap<String,JValue>                                   │
│               - Key: day                                                     │
│                 Value: JNumber 25.0                                          │
│               - Key: month                                                   │
│                 Value: JNumber 12.0                                          │
│               - Key: year                                                    │
│                 Value: JNumber 2001.0                                        │
│             IsJString: False                                                 │
│             IsJNumber: False                                                 │
│             IsJBool: False                                                   │
│             IsJNull: False                                                   │
│             IsJObject: True                                                  │
│             IsJArray: False                                                  │
│         - Key: emptyArray                                                    │
│           Value: JArray                                                      │
│             Item: FSharpList<JValue>                                         │
│                                                                              │
│             IsJString: False                                                 │
│             IsJNumber: False                                                 │
│             IsJBool: False                                                   │
│             IsJNull: False                                                   │
│             IsJObject: False                                                 │
│             IsJArray: True                                                   │
│         - Key: emptyObject                                                   │
│           Value: JObject                                                     │
│             Item: FSharpMap<String,JValue>                                   │
│                                                                              │
│             IsJString: False                                                 │
│             IsJNumber: False                                                 │
│             IsJBool: False                                                   │
│             IsJNull: False                                                   │
│             IsJObject: True                                                  │
│             IsJArray: False                                                  │
│         - Key: favouriteColors                                               │
│           Value: JArray                                                      │
│             Item: FSharpList<JValue>                                         │
│               - Item: blue                                                   │
│                 IsJString: True                                              │
│                 IsJNumber: False                                             │
│                 IsJBool: False                                               │
│                 IsJNull: False                                               │
│                 IsJObject: False                                             │
│                 IsJArray: False                                              │
│               - Item: green                                                  │
│                 IsJString: True                                              │
│                 IsJNumber: False                                             │
│                 IsJBool: False                                               │
│                 IsJNull: False                                               │
│                 IsJObject: False                                             │
│                 IsJArray: False                                              │
│             IsJString: False                                                 │
│             IsJNumber: False                                                 │
│             IsJBool: False                                                   │
│             IsJNull: False                                                   │
│             IsJObject: False                                                 │
│             IsJArray: True                                                   │
│         - Key: isMale                                                        │
│           Value: JBool                                                       │
│             Item: True                                                       │
│             IsJString: False                                                 │
│             IsJNumber: False                                                 │
│             IsJBool: True                                                    │
│             IsJNull: False                                                   │
│             IsJObject: False                                                 │
│             IsJArray: False                                                  │
│         - Key: name                                                          │
│           Value: JString                                                     │
│             Item: Scott                                                      │
│             IsJString: True                                                  │
│             IsJNumber: False                                                 │
│             IsJBool: False                                                   │
│             IsJNull: False                                                   │
│             IsJObject: False                                                 │
│             IsJArray: False                                                  │
│       IsJString: False                                                       │
│       IsJNumber: False                                                       │
│       IsJBool: False                                                         │
│       IsJNull: False                                                         │
│       IsJObject: True                                                        │
│       IsJArray: False                                                        │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let example2 = """{"widget": {
    "debug": "on",
    "window": {
        "title": "Sample Konfabulator Widget",
        "name": "main_window",
        "width": 500,
        "height": 500
    },
    "image": {
        "src": "Images/Sun.png",
        "name": "sun1",
        "hOffset": 250,
        "vOffset": 250,
        "alignment": "center"
    },
    "text": {
        "data": "Click Here",
        "size": 36,
        "style": "bold",
        "name": "text1",
        "hOffset": 250,
        "vOffset": 100,
        "alignment": "center",
        "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
    }
}}"""

run jValue example2
|> parserEqual (
    Success (
        JObject (
            Map.ofList [[
                "widget", JObject (
                    Map.ofList [[
                        "debug", JString "on"
                        "window", JObject (
                            Map.ofList [[
                                "title", JString "Sample Konfabulator Widget"
                                "name", JString "main_window"
                                "width", JNumber 500.0
                                "height", JNumber 500.0
                            ]]
                        )
                        "image", JObject (
                            Map.ofList [[
                                "src", JString "Images/Sun.png"
                                "name", JString "sun1"
                                "hOffset", JNumber 250.0
                                "vOffset", JNumber 250.0
                                "alignment", JString "center"
                            ]]
                        )
                        "text", JObject (
                            Map.ofList [[
                                "data", JString "Click Here"
                                "size", JNumber 36.0
                                "style", JString "bold"
                                "name", JString "text1"
                                "hOffset", JNumber 250.0
                                "vOffset", JNumber 100.0
                                "alignment", JString "center"
                                "onMouseUp", JString "sun1.opacity = 
(sun1.opacity / 100) * 90;"
                            ]]
                        )
                    ]]
                )
            ]]
        )
    )
)

╭─[ 268.22ms - return value ]──────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span                     │
│ class="dni-code-hint"><code>Success<br/>  (JObject<br/>     (map<br/>        │
│ [(&quot;widget&quot;,<br/>          JObject<br/>            (map<br/>        │
│ [(&quot;debug&quot;, JString &quot;on&quot;);<br/>                           │
│ (&quot;image&quot;,<br/>                 JObject<br/>                        │
│ (map<br/>                      [(&quot;alignment&quot;, JString              │
│ &quot;center&quot;);<br/>                                                    │
│ (&quot;hOffset&quot;...</code></span></summary><div><table><thead><tr></tr>< │
│ /thead><tbody><tr><td>Item</td><td><details                                  │
│ class="dni-treeview"><summary><span                                          │
│ class="dni-code-hint"><code>(JObject<br/>  (map<br/>     [                   │
│ (&quot;widget&quot;,<br/>       JObject<br/>         (map<br/>      ...      │
╰──────────────────────────────────────────────────────────────────────────────╯

╭─[ 269.88ms - stdout ]────────────────────────────────────────────────────────╮
│ JObject                                                                      │
│   (map                                                                       │
│      [("widget",                                                             │
│        JObject                                                               │
│          (map                                                                │
│             [("debug", JString "on");                                        │
│              ("image",                                                       │
│               JObject                                                        │
│                 (map                                                         │
│                    [("alignment", JString "center"); ("hOffset", JNumber     │
│ 250.0);                                                                      │
│                     ("name", JString "sun1"); ("src", JString                │
│ "Images/Sun.png");                                                           │
│                     ("vOffset", JNumber 250.0)]));                           │
│              ("text",                                                        │
│               JObject                                                        │
│                 (map                                                         │
│                    [("alignment", JString "center");                         │
│                     ("data", JString "Click Here"); ("hOffset", JNumber      │
│ 250.0);                                                                      │
│                     ("name", JString "text1");                               │
│                     ("onMouseUp",                                            │
│                      JString "sun1.opacity = (sun1.opacity / 100) * 90;");   │
│                     ("size", JNumber 36.0); ("style", JString "bold");       │
│                     ("vOffset", JNumber 100.0)]));                           │
│              ("window",                                                      │
│               JObject                                                        │
│                 (map                                                         │
│                    [("height", JNumber 500.0); ("name", JString              │
│ "main_window");                                                              │
│                     ("title", JString "Sample Konfabulator Widget");         │
│                     ("width", JNumber 500.0)]))]))])                         │
│ JObject                                                                      │
│       Item: FSharpMap<String,JValue>                                         │
│         - Key: widget                                                        │
│           Value: JObject                                                     │
│             Item: FSharpMap<String,JValue>                                   │
│               - Key: debug                                                   │
│                 Value: JString "on"                                          │
│               - Key: image                                                   │
│                 Value: JObject                                               │
│   (map                                                                       │
│      [("alignment", JString "center"); ("hOffset", JNumber 250.0);           │
│       ("name", JString "sun1"); ("src", JString "Images/Sun.png");           │
│       ("vOffset", JNumber 250.0)])                                           │
│               - Key: text                                                    │
│                 Value: JObject                                               │
│   (map                                                                       │
│      [("alignment", JString "center"); ("data", JString "Click Here");       │
│       ("hOffset", JNumber 250.0); ("name", JString "text1");                 │
│       ("onMouseUp", JString "sun1.opacity = (sun1.opacity / 100) * 90;");    │
│       ("size", JNumber 36.0); ("style", JString "bold");                     │
│       ("vOffset", JNumber 100.0)])                                           │
│               - Key: window                                                  │
│                 Value: JObject                                               │
│   (map                                                                       │
│      [("height", JNumber 500.0); ("name", JString "main_window");            │
│       ("title", JString "Sample Konfabulator Widget"); ("width", JNumber     │
│ 500.0)])                                                                     │
│             IsJString: False                                                 │
│             IsJNumber: False                                                 │
│             IsJBool: False                                                   │
│             IsJNull: False                                                   │
│             IsJObject: True                                                  │
│             IsJArray: False                                                  │
│       IsJString: False                                                       │
│       IsJNumber: False                                                       │
│       IsJBool: False                                                         │
│       IsJNull: False                                                         │
│       IsJObject: True                                                        │
│       IsJArray: False                                                        │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let example3 = """{
  "string": "Hello, \"World\"!",
  "escapedString": "This string contains \\/\\\\\\b\\f\\n\\r\\t\\\"\\'",
  "number": 42,
  "scientificNumber": 3.14e-10,
  "boolean": true,
  "nullValue": null,
  "array": [[1, 2, 3, 4, 5]],
  "unicodeString1": "프리마",
  "unicodeString2": "\u0048\u0065\u006C\u006C\u006F, 
\u0022\u0057\u006F\u0072\u006C\u0064\u0022!",
  "specialCharacters": "!@#$%^&*()",
  "emptyArray": [[]],
  "emptyObject": {},
  "nestedArrays": [[[[1, 2, 3]], [[4, 5, 6]]]],
  "object": {
    "nestedString": "Nested Value",
    "nestedNumber": 3.14,
    "nestedBoolean": false,
    "nestedNull": null,
    "nestedArray": [["a", "b", "c"]],
    "nestedObject": {
      "nestedProperty": "Nested Object Value"
    }
  },
  "nestedObjects": [[
    {"name": "Alice", "age": 25},
    {"name": "Bob", "age": 30}
  ]]
}"""
run jValue example3
|> parserEqual (
    Success (
        JObject (
            Map.ofList [[
                "string", JString @"Hello, ""World""!"
                "escapedString", JString @"This string contains 
\/\\\b\f\n\r\t\""\'"
                "number", JNumber 42.0
                "scientificNumber", JNumber 3.14e-10
                "boolean", JBool true
                "nullValue", JNull
                "array", JArray [[
                    JNumber 1.0; JNumber 2.0; JNumber 3.0; JNumber 4.0; JNumber 
5.0
                ]]
                "unicodeString1", JString "프리마"
                "unicodeString2", JString @"Hello, ""World""!"
                "specialCharacters", JString "!@#$%^&*()"
                "emptyArray", JArray [[]]
                "emptyObject", JObject Map.empty
                "nestedArrays", JArray [[
                    JArray [[ JNumber 1.0; JNumber 2.0; JNumber 3.0 ]]
                    JArray [[ JNumber 4.0; JNumber 5.0; JNumber 6.0 ]]
                ]]
                "object", JObject (
                    Map.ofList [[
                        "nestedString", JString "Nested Value"
                        "nestedNumber", JNumber 3.14
                        "nestedBoolean", JBool false
                        "nestedNull", JNull
                        "nestedArray", JArray [[JString "a"; JString "b"; 
JString "c"]]
                        "nestedObject", JObject (
                            Map.ofList [[
                                "nestedProperty", JString "Nested Object Value"
                            ]]
                        )
                    ]]
                )
                "nestedObjects", JArray [[
                  JObject (Map.ofList [[ "name", JString "Alice"; "age", JNumber
25.0 ]])
                  JObject (Map.ofList [[ "name", JString "Bob"; "age", JNumber 
30.0 ]])
                ]]
            ]]
        )
    )
)

╭─[ 377.61ms - return value ]──────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span                     │
│ class="dni-code-hint"><code>Success<br/>  (JObject<br/>     (map<br/>        │
│ [(&quot;array&quot;,<br/>          JArray<br/>            [JNumber 1.0;      │
│ JNumber 2.0; JNumber 3.0; JNumber 4.0; JNumber 5.0]);<br/>                   │
│ (&quot;boolean&quot;, JBool true); (&quot;emptyArray&quot;, JArray []);<br/> │
│ (&quot;emptyObject&quot;, JObject (map []));<br/>                            │
│ (&quot;escapedString&quot;, JString &quot;This                               │
│ s...</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr>< │
│ td>Item</td><td><details class="dni-treeview"><summary><span                 │
│ class="dni-code-hint"><code>(JObject<br/>  (map<br/>     [                   │
│ (&quot;array&quot;,<br/>       JArray [JNumber 1.0; JNumber 2.0; JNumber     │
│ 3.0; JNumber 4.0; J...                                                       │
╰──────────────────────────────────────────────────────────────────────────────╯

╭─[ 380.42ms - stdout ]────────────────────────────────────────────────────────╮
│ JObject                                                                      │
│   (map                                                                       │
│      [("array",                                                              │
│        JArray [JNumber 1.0; JNumber 2.0; JNumber 3.0; JNumber 4.0; JNumber   │
│ 5.0]);                                                                       │
│       ("boolean", JBool true); ("emptyArray", JArray []);                    │
│       ("emptyObject", JObject (map []));                                     │
│       ("escapedString", JString "This string contains \/\\\b\f\n\r\t\"\'");  │
│       ("nestedArrays",                                                       │
│        JArray                                                                │
│          [JArray [JNumber 1.0; JNumber 2.0; JNumber 3.0];                    │
│           JArray [JNumber 4.0; JNumber 5.0; JNumber 6.0]]);                  │
│       ("nestedObjects",                                                      │
│        JArray                                                                │
│          [JObject (map [("age", JNumber 25.0); ("name", JString "Alice")]);  │
│           JObject (map [("age", JNumber 30.0); ("name", JString "Bob")])]);  │
│       ("nullValue", JNull); ("number", JNumber 42.0); ...])                  │
│ JObject                                                                      │
│       Item: FSharpMap<String,JValue>                                         │
│         - Key: array                                                         │
│           Value: JArray                                                      │
│             Item: FSharpList<JValue>                                         │
│               - Item: 1                                                      │
│                 IsJString: False                                             │
│                 IsJNumber: True                                              │
│                 IsJBool: False                                               │
│                 IsJNull: False                                               │
│                 IsJObject: False                                             │
│                 IsJArray: False                                              │
│               - Item: 2                                                      │
│                 IsJString: False                                             │
│                 IsJNumber: True                                              │
│                 IsJBool: False                                               │
│                 IsJNull: False                                               │
│                 IsJObject: False                                             │
│                 IsJArray: False                                              │
│               - Item: 3                                                      │
│                 IsJString: False                                             │
│                 IsJNumber: True                                              │
│                 IsJBool: False                                               │
│                 IsJNull: False                                               │
│                 IsJObject: False                                             │
│                 IsJArray: False                                              │
│               - Item: 4                                                      │
│                 IsJString: False                                             │
│                 IsJNumber: True                                              │
│                 IsJBool: False                                               │
│                 IsJNull: False                                               │
│                 IsJObject: False                                             │
│                 IsJArray: False                                              │
│               - Item: 5                                                      │
│                 IsJString: False                                             │
│                 IsJNumber: True                                              │
│                 IsJBool: False                                               │
│                 IsJNull: False                                               │
│                 IsJObject: False                                             │
│                 IsJArray: False                                              │
│             IsJString: False                                                 │
│             IsJNumber: False                                                 │
│             IsJBool: False                                                   │
│             IsJNull: False                                                   │
│             IsJObject: False                                                 │
│             IsJArray: True                                                   │
│         - Key: boolean                                                       │
│           Value: JBool                                                       │
│             Item: True                                                       │
│             IsJString: False                                                 │
│             IsJNumber: False                                                 │
│             IsJBool: True                                                    │
│             IsJNull: False                                                   │
│             IsJObject: False                                                 │
│             IsJArray: False                                                  │
│         - Key: emptyArray                                                    │
│           Value: JArray                                                      │
│             Item: FSharpList<JValue>                                         │
│                                                                              │
│             IsJString: False                                                 │
│             IsJNumber: False                                                 │
│             IsJBool: False                                                   │
│             IsJNull: False                                                   │
│             IsJObject: False                                                 │
│             IsJArray: True                                                   │
│         - Key: emptyObject                                                   │
│           Value: JObject                                                     │
│             Item: FSharpMap<String,JValue>                                   │
│                                                                              │
│             IsJString: False                                                 │
│             IsJNumber: False                                                 │
│             IsJBool: False                                                   │
│             IsJNull: False                                                   │
│             IsJObject: True                                                  │
│             IsJArray: False                                                  │
│         - Key: escapedString                                                 │
│           Value: JString                                                     │
│             Item: This string contains \/\\\b\f\n\r\t\"\'                    │
│             IsJString: True                                                  │
│             IsJNumber: False                                                 │
│             IsJBool: False                                                   │
│             IsJNull: False                                                   │
│             IsJObject: False                                                 │
│             IsJArray: False                                                  │
│         - Key: nestedArrays                                                  │
│           Value: JArray                                                      │
│             Item: FSharpList<JValue>                                         │
│               - Item: [ JNumber 1.0, JNumber 2.0, JNumber 3.0 ]              │
│                 IsJString: False                                             │
│                 IsJNumber: False                                             │
│                 IsJBool: False                                               │
│                 IsJNull: False                                               │
│                 IsJObject: False                                             │
│                 IsJArray: True                                               │
│               - Item: [ JNumber 4.0, JNumber 5.0, JNumber 6.0 ]              │
│                 IsJString: False                                             │
│                 IsJNumber: False                                             │
│                 IsJBool: False                                               │
│                 IsJNull: False                                               │
│                 IsJObject: False                                             │
│                 IsJArray: True                                               │
│             IsJString: False                                                 │
│             IsJNumber: False                                                 │
│             IsJBool: False                                                   │
│             IsJNull: False                                                   │
│             IsJObject: False                                                 │
│             IsJArray: True                                                   │
│         - Key: nestedObjects                                                 │
│           Value: JArray                                                      │
│             Item: FSharpList<JValue>                                         │
│               - Item: [ [age, JNumber 25.0], [name, JString "Alice"] ]       │
│                 IsJString: False                                             │
│                 IsJNumber: False                                             │
│                 IsJBool: False                                               │
│                 IsJNull: False                                               │
│                 IsJObject: True                                              │
│                 IsJArray: False                                              │
│               - Item: [ [age, JNumber 30.0], [name, JString "Bob"] ]         │
│                 IsJString: False                                             │
│                 IsJNumber: False                                             │
│                 IsJBool: False                                               │
│                 IsJNull: False                                               │
│                 IsJObject: True                                              │
│                 IsJArray: False                                              │
│             IsJString: False                                                 │
│             IsJNumber: False                                                 │
│             IsJBool: False                                                   │
│             IsJNull: False                                                   │
│             IsJObject: False                                                 │
│             IsJArray: True                                                   │
│         - Key: nullValue                                                     │
│           Value: JValue                                                      │
│             IsJString: False                                                 │
│             IsJNumber: False                                                 │
│             IsJBool: False                                                   │
│             IsJNull: True                                                    │
│             IsJObject: False                                                 │
│             IsJArray: False                                                  │
│         - Key: number                                                        │
│           Value: JNumber                                                     │
│             Item: 42                                                         │
│             IsJString: False                                                 │
│             IsJNumber: True                                                  │
│             IsJBool: False                                                   │
│             IsJNull: False                                                   │
│             IsJObject: False                                                 │
│             IsJArray: False                                                  │
│         - Key: object                                                        │
│           Value: JObject                                                     │
│             Item: FSharpMap<String,JValue>                                   │
│               - Key: nestedArray                                             │
│                 Value: JArray [JString "a"; JString "b"; JString "c"]        │
│               - Key: nestedBoolean                                           │
│                 Value: JBool false                                           │
│               - Key: nestedNull                                              │
│                 Value: JNull                                                 │
│               - Key: nestedNumber                                            │
│                 Value: JNumber 3.14                                          │
│               - Key: nestedObject                                            │
│                 Value: JObject (map [("nestedProperty", JString "Nested      │
│ Object Value")])                                                             │
│               - Key: nestedString                                            │
│                 Value: JString "Nested Value"                                │
│             IsJString: False                                                 │
│             IsJNumber: False                                                 │
│             IsJBool: False                                                   │
│             IsJNull: False                                                   │
│             IsJObject: True                                                  │
│             IsJArray: False                                                  │
│         - Key: scientificNumber                                              │
│           Value: JNumber                                                     │
│             Item: 3.14E-10                                                   │
│             IsJString: False                                                 │
│             IsJNumber: True                                                  │
│             IsJBool: False                                                   │
│             IsJNull: False                                                   │
│             IsJObject: False                                                 │
│             IsJArray: False                                                  │
│         - Key: specialCharacters                                             │
│           Value: JString                                                     │
│             Item: !@#$%^&*()                                                 │
│             IsJString: True                                                  │
│             IsJNumber: False                                                 │
│             IsJBool: False                                                   │
│             IsJNull: False                                                   │
│             IsJObject: False                                                 │
│             IsJArray: False                                                  │
│         - Key: string                                                        │
│           Value: JString                                                     │
│             Item: Hello, "World"!                                            │
│             IsJString: True                                                  │
│             IsJNumber: False                                                 │
│             IsJBool: False                                                   │
│             IsJNull: False                                                   │
│             IsJObject: False                                                 │
│             IsJArray: False                                                  │
│         - Key: unicodeString1                                                │
│           Value: JString                                                     │
│             Item: 프리마                                                     │
│             IsJString: True                                                  │
│             IsJNumber: False                                                 │
│             IsJBool: False                                                   │
│             IsJNull: False                                                   │
│             IsJObject: False                                                 │
│             IsJArray: False                                                  │
│         - Key: unicodeString2                                                │
│           Value: JString                                                     │
│             Item: Hello, "World"!                                            │
│             IsJString: True                                                  │
│             IsJNumber: False                                                 │
│             IsJBool: False                                                   │
│             IsJNull: False                                                   │
│             IsJObject: False                                                 │
│             IsJArray: False                                                  │
│       IsJString: False                                                       │
│       IsJNumber: False                                                       │
│       IsJBool: False                                                         │
│       IsJNull: False                                                         │
│       IsJObject: True                                                        │
│       IsJArray: False                                                        │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
[NbConvertApp] Converting notebook JsonParser.dib.ipynb to html
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
  validate(nb)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
  return _pygments_highlight(
[NbConvertApp] Writing 543829 bytes to JsonParser.dib.html

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ # Parser (Polyglot)                                                          │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/fsharp/Notebooks.dib
#!import ../../lib/fsharp/Testing.dib

── fsharp - import ─────────────────────────────────────────────────────────────
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Asp
NetCore.Html.Abstractions.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.FSharp.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.Formatting.dll"
open System
open System.IO
open System.Text
open Microsoft.DotNet.Interactive.Formatting

── fsharp - import ─────────────────────────────────────────────────────────────
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.FSharp.dll"
open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.dll"
open type Microsoft.DotNet.Interactive.Kernel

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

Formatter.ListExpansionLimit <- 100

── fsharp - import ─────────────────────────────────────────────────────────────
#r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

type AssertExceptionFormatter (ex) =
    member _.Text =
        ex.ToString()
            .Replace("32m", "<span style=\"color: green;\">")
            .Replace("36m", "</span>")
            .Replace("31m", "<span style=\"color: red;\">")
            .Replace("\n", "<br/>\n")


Formatter.Register<AssertExceptionFormatter> ((fun (x : 
AssertExceptionFormatter) -> x.Text), "text/html")

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

let inline __expect fn log expected actual =
    if log then printfn $"{actual.ToDisplayString ()}"
    try
        "Testing.__expect" |> fn actual expected
    with :? Expecto.AssertException as ex ->
        AssertExceptionFormatter(ex).Display () |> ignore
        failwith (ex.GetType().FullName)

let inline __contains log expected actual = __expect Expecto.Expect.contains log
expected actual
let inline _contains expected actual = __contains true expected actual

let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
expected actual
let inline _assertEqual expected actual = __assertEqual true expected actual

let inline __isGreaterThan log expected actual = __expect 
Expecto.Expect.isGreaterThan log ex...

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

let inline __isBetween log a b actual =
    let inline isBetween actual (a, b) _ =
        __isGreaterThanOrEqual log a actual
        __isLessThanOrEqual log b actual
    __expect isBetween log (a, b) actual
let inline _isBetween a b actual = __isBetween true a b actual

── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/spiral/common.fsx
#!import ../../lib/spiral/date_time.fsx
#!import ../../lib/fsharp/Common.fs

── fsharp - import ─────────────────────────────────────────────────────────────
type [[<Struct>]] US0 =
    | US0_0
    | US0_1
and [[<Struct>]] US1 =
    | US1_0
    | US1_1 of f1_0 : US0
let rec method0 (v0 : (unit -> unit)) : (unit -> unit) =
    v0
and closure0 () (v0 : (unit -> unit)) : System.IDisposable =
    let mutable result = None
    #if FABLE_COMPILER_RUST && !WASM
    let v1 : (unit -> unit) = method0(v0)
    let v2 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v1()" }
    v2
    #endif
    #if FABLE_COMPILER_RUST && WASM
    let v3 : (unit -> unit) = method0(v0)
    let v4 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v3()" }
    v4
    #endif
    #if !FABLE_COMPILER && !F...

── fsharp - import ─────────────────────────────────────────────────────────────
let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
    let v2 : string = v0.ToString ()
    let v3 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
    let v4 : System.Guid = System.Guid $"{v3}{v2.[[v3.Length..]]}"
    v4
and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
    closure1(v0)
and closure5 (v0 : string, v1 : string) (v2 : string) : string =
    let v3 : string = v2.Replace (v0, v1)
    v3
and closure4 (v0 : string) (v1 : string) : (string -> string) =
    closure5(v0, v1)
and closure3 () (v0 : string) : (string -> (string -> string)) =
    closure4(v0)
and method0 () : (string -> (string -> (string -> string))) =
    closure3()
and closure2 () (v0 : System.Guid) : System.DateTime =
  ...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Common =

#if !WASM && !FABLE_COMPILER
    let Date_time = {|
        new_guid_from_date_time =
#if !INTERACTIVE
            Date_time.new_guid_from_date_time
#else
            new_guid_from_date_time
#endif
    |}
#endif

    let nl = System.Environment.NewLine
    let q = @""""

    let inline cons head tail = head :: tail

    module String =
        let inline contains (value : string) (input : string) =
            input.Contains value

        let inline endsWith (value : string) (input : string) =
            input.EndsWith value

        let inline padLeft totalWidth paddingChar (input : string) =
            input.PadLeft (totalWidth, paddingChar)

        let inline replace (oldVa...

── fsharp ──────────────────────────────────────────────────────────────────────
open Common

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ### TextInput                                                                │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
type Position =
    {
        line : int
        column : int
    }

── fsharp ──────────────────────────────────────────────────────────────────────
let initialPos = { line = 0; column = 0 }

── fsharp ──────────────────────────────────────────────────────────────────────
let inline incrCol (pos : Position) =
    { pos with column = pos.column + 1 }

── fsharp ──────────────────────────────────────────────────────────────────────
let inline incrLine pos =
    { line = pos.line + 1; column = 0 }

── fsharp ──────────────────────────────────────────────────────────────────────
type InputState =
    {
        lines : string[[]]
        position : Position
    }

── fsharp ──────────────────────────────────────────────────────────────────────
let inline fromStr str =
    {
        lines =
            if str |> String.IsNullOrEmpty
            then [[||]]
            else str |> String.splitString [[| "\r\n"; "\n" |]]
        position = initialPos
    }

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

fromStr "" |> _assertEqual {
    lines = [[||]]
    position = { line = 0; column = 0 }
}

╭─[ 33.45ms - stdout ]─────────────────────────────────────────────────────────╮
│ InputState                                                                   │
│       lines: [  ]                                                            │
│       position: Position                                                     │
│         line: 0                                                              │
│         column: 0                                                            │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

fromStr "Hello \n World" |> _assertEqual {
    lines = [[| "Hello "; " World" |]]
    position = { line = 0; column = 0 }
}

╭─[ 9.85ms - stdout ]──────────────────────────────────────────────────────────╮
│ InputState                                                                   │
│       lines: [ Hello ,  World ]                                              │
│       position: Position                                                     │
│         line: 0                                                              │
│         column: 0                                                            │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline currentLine inputState =
    let linePos = inputState.position.line
    if linePos < inputState.lines.Length
    then inputState.lines.[[linePos]]
    else "end of file"

── fsharp ──────────────────────────────────────────────────────────────────────
let inline nextChar input =
    let linePos = input.position.line
    let colPos = input.position.column

    if linePos >= input.lines.Length
    then input, None
    else
        let currentLine = currentLine input
        if colPos < currentLine.Length then
            let char = currentLine.[[colPos]]
            let newPos = incrCol input.position
            let newState = { input with position = newPos }
            newState, Some char
        else
            let char = '\n'
            let newPos = incrLine input.position
            let newState = { input with position = newPos }
            newState, Some char

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let newInput, charOpt = fromStr "Hello World" |> nextChar

newInput |> _assertEqual {
    lines = [[| "Hello World" |]]
    position = { line = 0; column = 1 }
}
charOpt |> _assertEqual (Some 'H')

╭─[ 24.05ms - stdout ]─────────────────────────────────────────────────────────╮
│ InputState                                                                   │
│       lines: [ Hello World ]                                                 │
│       position: Position                                                     │
│         line: 0                                                              │
│         column: 1                                                            │
│ FSharpOption<Char>                                                           │
│       Value: H                                                               │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let newInput, charOpt = fromStr "Hello\n\nWorld" |> nextChar

newInput |> _assertEqual {
    lines = [[| "Hello"; ""; "World" |]]
    position = { line = 0; column = 1 }
}
charOpt |> _assertEqual (Some 'H')

╭─[ 17.42ms - stdout ]─────────────────────────────────────────────────────────╮
│ InputState                                                                   │
│       lines: [ Hello, , World ]                                              │
│       position: Position                                                     │
│         line: 0                                                              │
│         column: 1                                                            │
│ FSharpOption<Char>                                                           │
│       Value: H                                                               │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ### Parser                                                                   │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
type Input = InputState
type ParserLabel = string
type ParserError = string

type ParserPosition =
    {
        currentLine : string
        line : int
        column : int
    }

type ParseResult<'a> =
    | Success of 'a
    | Failure of ParserLabel * ParserError * ParserPosition

type Parser<'a> =
    {
        label : ParserLabel
        parseFn : Input -> ParseResult<'a * Input>
    }

── fsharp ──────────────────────────────────────────────────────────────────────
let inline printResult result =
    match result with
    | Success (value, input) ->
        printfn $"%A{value}"
    | Failure (label, error, parserPos) ->
        let errorLine = parserPos.currentLine
        let colPos = parserPos.column
        let linePos = parserPos.line
        let failureCaret = $"{' ' |> string |> String.replicate colPos}^{error}"
        printfn $"Line:%i{linePos} Col:%i{colPos} Error parsing 
%s{label}\n%s{errorLine}\n%s{failureCaret}"

── fsharp ──────────────────────────────────────────────────────────────────────
let inline runOnInput parser input =
    parser.parseFn input

── fsharp ──────────────────────────────────────────────────────────────────────
let inline run parser inputStr =
    runOnInput parser (fromStr inputStr)

── fsharp ──────────────────────────────────────────────────────────────────────
let inline parserPositionFromInputState (inputState : Input) =
    {
        currentLine = currentLine inputState
        line = inputState.position.line
        column = inputState.position.column
    }

── fsharp ──────────────────────────────────────────────────────────────────────
let inline getLabel parser =
    parser.label

── fsharp ──────────────────────────────────────────────────────────────────────
let inline setLabel parser newLabel =
    {
        label = newLabel
        parseFn = fun input ->
            match parser.parseFn input with
            | Success s -> Success s
            | Failure (oldLabel, err, pos) -> Failure (newLabel, err, pos)
    }

── fsharp ──────────────────────────────────────────────────────────────────────
let (<?>) = setLabel

── fsharp ──────────────────────────────────────────────────────────────────────
let inline satisfy predicate label =
    {
        label = label
        parseFn = fun input ->
            let remainingInput, charOpt = nextChar input
            match charOpt with
            | None ->
                let err = "No more input"
                let pos = parserPositionFromInputState input
                Failure (label, err, pos)
            | Some first ->
                if predicate first
                then Success (first, remainingInput)
                else
                    let err = $"Unexpected '%c{first}'"
                    let pos = parserPositionFromInputState input
                    Failure (label, err, pos)
    }

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let input = fromStr "Hello"
let parser = satisfy (fun c -> c = 'H') "H"
runOnInput parser input |> _assertEqual (
    Success (
        'H',
        {
            lines = [[| "Hello" |]]
            position = { line = 0; column = 1 }
        }
    )
)

╭─[ 21.96ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success                                                                      │
│       Item:       - H                                                        │
│       - InputState                                                           │
│           lines: [ Hello ]                                                   │
│           position: Position                                                 │
│             line: 0                                                          │
│             column: 1                                                        │
│     - IsSuccess: True                                                        │
│       IsFailure: False                                                       │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let input = fromStr "World"
let parser = satisfy (fun c -> c = 'H') "H"
runOnInput parser input |> _assertEqual (
    Failure (
        "H",
        "Unexpected 'W'",
        {
            currentLine = "World"
            line = 0
            column = 0
        }
    )
)

╭─[ 28.77ms - stdout ]─────────────────────────────────────────────────────────╮
│ Failure                                                                      │
│       Item1: H                                                               │
│       Item2: Unexpected 'W'                                                  │
│       Item3: ParserPosition                                                  │
│         currentLine: World                                                   │
│         line: 0                                                              │
│         column: 0                                                            │
│       IsSuccess: False                                                       │
│       IsFailure: True                                                        │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline bindP f p =
    {
        label = "unknown"
        parseFn = fun input ->
            match runOnInput p input with
            | Failure (label, err, pos) -> Failure (label, err, pos)
            | Success (value1, remainingInput) -> runOnInput (f value1) 
remainingInput
    }

── fsharp ──────────────────────────────────────────────────────────────────────
let inline (>>=) p f = bindP f p

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let input = fromStr "Hello"
let parser = satisfy (fun c -> c = 'H') "H"
let parser2 = parser >>= fun c -> satisfy (fun c -> c = 'e') "e"
runOnInput parser2 input |> _assertEqual (
    Success (
        'e',
        {
            lines = [[| "Hello" |]]
            position = { line = 0; column = 2 }
        }
    )
)

╭─[ 24.78ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success                                                                      │
│       Item:       - e                                                        │
│       - InputState                                                           │
│           lines: [ Hello ]                                                   │
│           position: Position                                                 │
│             line: 0                                                          │
│             column: 2                                                        │
│     - IsSuccess: True                                                        │
│       IsFailure: False                                                       │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let input = fromStr "World"
let parser = satisfy (fun c -> c = 'W') "W"
let parser2 = parser >>= fun c -> satisfy (fun c -> c = 'e') "e"
runOnInput parser2 input |> _assertEqual (
    Failure (
        "e",
        "Unexpected 'o'",
        {
            currentLine = "World"
            line = 0
            column = 1
        }
    )
)

╭─[ 23.79ms - stdout ]─────────────────────────────────────────────────────────╮
│ Failure                                                                      │
│       Item1: e                                                               │
│       Item2: Unexpected 'o'                                                  │
│       Item3: ParserPosition                                                  │
│         currentLine: World                                                   │
│         line: 0                                                              │
│         column: 1                                                            │
│       IsSuccess: False                                                       │
│       IsFailure: True                                                        │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline returnP x =
    {
        label = $"%A{x}"
        parseFn = fun input -> Success (x, input)
    }

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let input = fromStr "Hello"
let parser = returnP "Hello"
runOnInput parser input |> _assertEqual (
    Success (
        "Hello",
        {
            lines = [[| "Hello" |]]
            position = { line = 0; column = 0 }
        }
    )
)

╭─[ 21.85ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success                                                                      │
│       Item:       - Hello                                                    │
│       - InputState                                                           │
│           lines: [ Hello ]                                                   │
│           position: Position                                                 │
│             line: 0                                                          │
│             column: 0                                                        │
│     - IsSuccess: True                                                        │
│       IsFailure: False                                                       │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline mapP f =
    bindP (f >> returnP)

── fsharp ──────────────────────────────────────────────────────────────────────
let (<!>) = mapP

── fsharp ──────────────────────────────────────────────────────────────────────
let inline (|>>) x f = f <!> x

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let input = fromStr "Hello"
let parser = satisfy (fun c -> c = 'H') "H"
let parser2 = parser |>> string
runOnInput parser2 input |> _assertEqual (
    Success (
        "H",
        {
            lines = [[| "Hello" |]]
            position = { line = 0; column = 1 }
        }
    )
)

╭─[ 20.34ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success                                                                      │
│       Item:       - H                                                        │
│       - InputState                                                           │
│           lines: [ Hello ]                                                   │
│           position: Position                                                 │
│             line: 0                                                          │
│             column: 1                                                        │
│     - IsSuccess: True                                                        │
│       IsFailure: False                                                       │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline applyP fP xP =
    fP >>=
        fun f ->
            xP >>=
                fun x ->
                    returnP (f x)

── fsharp ──────────────────────────────────────────────────────────────────────
let (<*>) = applyP

── fsharp ──────────────────────────────────────────────────────────────────────
let inline lift2 f xP yP =
    returnP f <*> xP <*> yP

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let input = fromStr "Hello"
let parser = satisfy (fun c -> c = 'H') "H"
let parser2 = satisfy (fun c -> c = 'e') "e"
let parser3 = lift2 (fun c1 c2 -> string c1 + string c2) parser parser2
runOnInput parser3 input |> _assertEqual (
    Success (
        "He",
        {
            lines = [[| "Hello" |]]
            position = { line = 0; column = 2 }
        }
    )
)

╭─[ 50.84ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success                                                                      │
│       Item:       - He                                                       │
│       - InputState                                                           │
│           lines: [ Hello ]                                                   │
│           position: Position                                                 │
│             line: 0                                                          │
│             column: 2                                                        │
│     - IsSuccess: True                                                        │
│       IsFailure: False                                                       │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline andThen p1 p2 =
    p1 >>=
        fun p1Result ->
            p2 >>=
                fun p2Result ->
                    returnP (p1Result, p2Result)
    <?> $"{getLabel p1} andThen {getLabel p2}"

── fsharp ──────────────────────────────────────────────────────────────────────
let (.>>.) = andThen

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let input = fromStr "Hello"
let parser = satisfy (fun c -> c = 'H') "H"
let parser2 = satisfy (fun c -> c = 'e') "e"
let parser3 = parser .>>. parser2
runOnInput parser3 input |> _assertEqual (
    Success (
        ('H', 'e'),
        {
            lines = [[| "Hello" |]]
            position = { line = 0; column = 2 }
        }
    )
)

╭─[ 35.96ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success                                                                      │
│       Item:       - ( H, e )                                                 │
│       - InputState                                                           │
│           lines: [ Hello ]                                                   │
│           position: Position                                                 │
│             line: 0                                                          │
│             column: 2                                                        │
│     - IsSuccess: True                                                        │
│       IsFailure: False                                                       │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline orElse p1 p2 =
    {
        label = $"{getLabel p1} orElse {getLabel p2}"
        parseFn = fun input ->
            match runOnInput p1 input with
            | Success _ as result -> result
            | Failure _ -> runOnInput p2 input
    }

── fsharp ──────────────────────────────────────────────────────────────────────
let (<|>) = orElse

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let input = fromStr "hello"
let parser = satisfy (fun c -> c = 'H') "H"
let parser2 = satisfy (fun c -> c = 'h') "h"
let parser3 = parser <|> parser2
runOnInput parser3 input |> _assertEqual (
    Success (
        'h',
        {
            lines = [[| "hello" |]]
            position = { line = 0; column = 1 }
        }
    )
)

╭─[ 28.22ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success                                                                      │
│       Item:       - h                                                        │
│       - InputState                                                           │
│           lines: [ hello ]                                                   │
│           position: Position                                                 │
│             line: 0                                                          │
│             column: 1                                                        │
│     - IsSuccess: True                                                        │
│       IsFailure: False                                                       │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline choice listOfParsers =
    listOfParsers |> List.reduce (<|>)

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let input = fromStr "hello"
let parser = satisfy (fun c -> c = 'H') "H"
let parser2 = satisfy (fun c -> c = 'h') "h"
let parser3 = choice [[ parser; parser2 ]]
runOnInput parser3 input |> _assertEqual (
    Success (
        'h',
        {
            lines = [[| "hello" |]]
            position = { line = 0; column = 1 }
        }
    )
)

╭─[ 22.43ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success                                                                      │
│       Item:       - h                                                        │
│       - InputState                                                           │
│           lines: [ hello ]                                                   │
│           position: Position                                                 │
│             line: 0                                                          │
│             column: 1                                                        │
│     - IsSuccess: True                                                        │
│       IsFailure: False                                                       │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let rec sequence parserList =
    match parserList with
    | [[]] -> returnP [[]]
    | head :: tail -> (lift2 cons) head (sequence tail)

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let input = fromStr "Hello"
let parser = satisfy (fun c -> c = 'H') "H"
let parser2 = satisfy (fun c -> c = 'e') "e"
let parser3 = sequence [[ parser; parser2 ]]
runOnInput parser3 input |> _assertEqual (
    Success (
        [[ 'H'; 'e' ]],
        {
            lines = [[| "Hello" |]]
            position = { line = 0; column = 2 }
        }
    )
)

╭─[ 36.93ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success                                                                      │
│       Item:       - [ H, e ]                                                 │
│       - InputState                                                           │
│           lines: [ Hello ]                                                   │
│           position: Position                                                 │
│             line: 0                                                          │
│             column: 2                                                        │
│     - IsSuccess: True                                                        │
│       IsFailure: False                                                       │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let rec parseZeroOrMore parser input =
    match runOnInput parser input with
    | Failure (_, _, _) ->
        [[]], input
    | Success (firstValue, inputAfterFirstParse) ->
        let subsequentValues, remainingInput = parseZeroOrMore parser 
inputAfterFirstParse
        firstValue :: subsequentValues, remainingInput

── fsharp ──────────────────────────────────────────────────────────────────────
let inline many parser =
    {
        label = $"many {getLabel parser}"
        parseFn = fun input -> Success (parseZeroOrMore parser input)
    }

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let input = fromStr "hello"
let parser = satisfy (fun c -> c = 'H') "H"
let parser2 = many parser
runOnInput parser2 input |> _assertEqual (
    Success (
        [[]],
        {
            lines = [[| "hello" |]]
            position = { line = 0; column = 0 }
        }
    )
)

╭─[ 18.67ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success                                                                      │
│       Item:       - [  ]                                                     │
│       - InputState                                                           │
│           lines: [ hello ]                                                   │
│           position: Position                                                 │
│             line: 0                                                          │
│             column: 0                                                        │
│     - IsSuccess: True                                                        │
│       IsFailure: False                                                       │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline many1 p =
    p >>=
        fun head ->
            many p >>=
                fun tail ->
                    returnP (head :: tail)
    <?> $"many1 {getLabel p}"

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let input = fromStr "hello"
let parser = satisfy (fun c -> c = 'H') "H"
let parser2 = many1 parser
runOnInput parser2 input |> _assertEqual (
    Failure (
        "many1 H",
        "Unexpected 'h'",
        {
            currentLine = "hello"
            line = 0
            column = 0
        }
    )
)

╭─[ 76.10ms - stdout ]─────────────────────────────────────────────────────────╮
│ Failure                                                                      │
│       Item1: many1 H                                                         │
│       Item2: Unexpected 'h'                                                  │
│       Item3: ParserPosition                                                  │
│         currentLine: hello                                                   │
│         line: 0                                                              │
│         column: 0                                                            │
│       IsSuccess: False                                                       │
│       IsFailure: True                                                        │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline opt p =
    let some = p |>> Some
    let none = returnP None
    (some <|> none)
    <?> $"opt {getLabel p}"

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let input = fromStr "hello"
let parser = satisfy (fun c -> c = 'H') "H"
let parser2 = opt parser
runOnInput parser2 input |> _assertEqual (
    Success (
        None,
        {
            lines = [[| "hello" |]]
            position = { line = 0; column = 0 }
        }
    )
)

╭─[ 26.52ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success                                                                      │
│       Item:       - <null>                                                   │
│       - InputState                                                           │
│           lines: [ hello ]                                                   │
│           position: Position                                                 │
│             line: 0                                                          │
│             column: 0                                                        │
│     - IsSuccess: True                                                        │
│       IsFailure: False                                                       │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline (.>>) p1 p2 =
    p1 .>>. p2
    |> mapP fst

── fsharp ──────────────────────────────────────────────────────────────────────
let inline (>>.) p1 p2 =
    p1 .>>. p2
    |> mapP snd

── fsharp ──────────────────────────────────────────────────────────────────────
let inline between p1 p2 p3 =
    p1 >>. p2 .>> p3

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let input = fromStr "[[Hello]]"
let parser =
    between
        (satisfy (fun c -> c = '[[') "[[")
        (many (satisfy (fun c -> [[ 'a' .. 'z' ]] @ [[ 'A' .. 'Z' ]] |> 
List.contains c) "letter"))
        (satisfy (fun c -> c = ']]') "]]")
runOnInput parser input |> _assertEqual (
    Success (
        [[ 'H'; 'e'; 'l'; 'l'; 'o' ]],
        {
            lines = [[| "[[Hello]]" |]]
            position = { line = 0; column = 7 }
        }
    )
)

╭─[ 79.55ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success                                                                      │
│       Item:       - [ H, e, l, l, o ]                                        │
│       - InputState                                                           │
│           lines: [ [Hello] ]                                                 │
│           position: Position                                                 │
│             line: 0                                                          │
│             column: 7                                                        │
│     - IsSuccess: True                                                        │
│       IsFailure: False                                                       │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline sepBy1 p sep =
    let sepThenP = sep >>. p
    p .>>. many sepThenP
    |>> fun (p, pList) -> p :: pList

── fsharp ──────────────────────────────────────────────────────────────────────
let inline sepBy p sep =
    sepBy1 p sep <|> returnP [[]]

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let input = fromStr "Hello,World"
let parser = sepBy (many (satisfy (fun c -> c <> ',') "not comma")) (satisfy 
(fun c -> c = ',') "comma")
runOnInput parser input |> _assertEqual (
    Success (
        [[ [[ 'H'; 'e'; 'l'; 'l'; 'o' ]]; [[ 'W'; 'o'; 'r'; 'l'; 'd'; '\n' ]] 
]],
        {
            lines = [[| "Hello,World" |]]
            position = { line = 1; column = 0 }
        }
    )
)

╭─[ 53.04ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success                                                                      │
│       Item:       - FSharpList<FSharpList<Char>>                             │
│ [ H, e, l, l, o ]                                                            │
│ [ W, o, r, l, d,                                                             │
│  ]                                                                           │
│       - InputState                                                           │
│           lines: [ Hello,World ]                                             │
│           position: Position                                                 │
│             line: 1                                                          │
│             column: 0                                                        │
│     - IsSuccess: True                                                        │
│       IsFailure: False                                                       │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline pchar charToMatch =
    satisfy ((=) charToMatch) $"%c{charToMatch}"

── fsharp ──────────────────────────────────────────────────────────────────────
let inline anyOf listOfChars =
    listOfChars
    |> List.map pchar
    |> choice
    <?> $"anyOf %A{listOfChars}"

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let input = fromStr "Hello"
let parser = anyOf [[ 'H'; 'e'; 'l'; 'o' ]] |> many
runOnInput parser input |> _assertEqual (
    Success (
        [[ 'H'; 'e'; 'l'; 'l'; 'o' ]],
        {
            lines = [[| "Hello" |]]
            position = { line = 0; column = 5 }
        }
    )
)

╭─[ 24.08ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success                                                                      │
│       Item:       - [ H, e, l, l, o ]                                        │
│       - InputState                                                           │
│           lines: [ Hello ]                                                   │
│           position: Position                                                 │
│             line: 0                                                          │
│             column: 5                                                        │
│     - IsSuccess: True                                                        │
│       IsFailure: False                                                       │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline charListToStr charList =
    charList |> List.toArray |> String

── fsharp ──────────────────────────────────────────────────────────────────────
let inline manyChars cp =
    many cp
    |>> charListToStr

── fsharp ──────────────────────────────────────────────────────────────────────
let inline manyChars1 cp =
    many1 cp
    |>> charListToStr

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let input = fromStr "Hello"
let parser = manyChars1 (anyOf [[ 'H'; 'e'; 'l'; 'o' ]])
runOnInput parser input |> _assertEqual (
    Success (
        "Hello",
        {
            lines = [[| "Hello" |]]
            position = { line = 0; column = 5 }
        }
    )
)

╭─[ 32.51ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success                                                                      │
│       Item:       - Hello                                                    │
│       - InputState                                                           │
│           lines: [ Hello ]                                                   │
│           position: Position                                                 │
│             line: 0                                                          │
│             column: 5                                                        │
│     - IsSuccess: True                                                        │
│       IsFailure: False                                                       │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline pstring str =
    str
    |> List.ofSeq
    |> List.map pchar
    |> sequence
    |> mapP charListToStr
    <?> str

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let input = fromStr "Hello"
let parser = pstring "Hello"
runOnInput parser input |> _assertEqual (
    Success (
        "Hello",
        {
            lines = [[| "Hello" |]]
            position = { line = 0; column = 5 }
        }
    )
)

╭─[ 27.35ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success                                                                      │
│       Item:       - Hello                                                    │
│       - InputState                                                           │
│           lines: [ Hello ]                                                   │
│           position: Position                                                 │
│             line: 0                                                          │
│             column: 5                                                        │
│     - IsSuccess: True                                                        │
│       IsFailure: False                                                       │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let whitespaceChar =
    satisfy Char.IsWhiteSpace "whitespace"

── fsharp ──────────────────────────────────────────────────────────────────────
let spaces = many whitespaceChar

── fsharp ──────────────────────────────────────────────────────────────────────
let spaces1 = many1 whitespaceChar

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let input = fromStr "  Hello"
let parser = spaces1 .>>. pstring "Hello"
runOnInput parser input |> _assertEqual (
    Success (
        ([[ ' '; ' ' ]], "Hello"),
        {
            lines = [[| "  Hello" |]]
            position = { line = 0; column = 7 }
        }
    )
)

╭─[ 33.54ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success                                                                      │
│       Item:       -         - [  ,   ]                                       │
│         - Hello                                                              │
│       - InputState                                                           │
│           lines: [   Hello ]                                                 │
│           position: Position                                                 │
│             line: 0                                                          │
│             column: 7                                                        │
│     - IsSuccess: True                                                        │
│       IsFailure: False                                                       │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let digitChar =
    satisfy Char.IsDigit "digit"

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let input = fromStr "Hello"
let parser = digitChar
runOnInput parser input |> _assertEqual (
    Failure (
        "digit",
        "Unexpected 'H'",
        {
            currentLine = "Hello"
            line = 0
            column = 0
        }
    )
)

╭─[ 60.82ms - stdout ]─────────────────────────────────────────────────────────╮
│ Failure                                                                      │
│       Item1: digit                                                           │
│       Item2: Unexpected 'H'                                                  │
│       Item3: ParserPosition                                                  │
│         currentLine: Hello                                                   │
│         line: 0                                                              │
│         column: 0                                                            │
│       IsSuccess: False                                                       │
│       IsFailure: True                                                        │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let pint =
    let inline resultToInt (sign, digits) =
        let i = int digits
        match sign with
        | Some ch -> -i
        | None -> i

    let digits = manyChars1 digitChar

    opt (pchar '-') .>>. digits
    |> mapP resultToInt
    <?> "integer"

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

run pint "-123"
|> _assertEqual (
    Success (
        -123,
        {
            lines = [[| "-123" |]]
            position = { line = 0; column = 4 }
        }
    )
)

╭─[ 25.88ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success                                                                      │
│       Item:       - -123                                                     │
│       - InputState                                                           │
│           lines: [ -123 ]                                                    │
│           position: Position                                                 │
│             line: 0                                                          │
│             column: 4                                                        │
│     - IsSuccess: True                                                        │
│       IsFailure: False                                                       │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let pfloat =
    let inline resultToFloat (((sign, digits1), point), digits2) =
        let fl = float $"{digits1}.{digits2}"
        match sign with
        | Some ch -> -fl
        | None -> fl

    let digits = manyChars1 digitChar

    opt (pchar '-') .>>. digits .>>. pchar '.' .>>. digits
    |> mapP resultToFloat
    <?> "float"

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

run pfloat "-123.45"
|> _assertEqual (
    Success (
        -123.45,
        {
            lines = [[| "-123.45" |]]
            position = { line = 0; column = 7 }
        }
    )
)

╭─[ 24.27ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success                                                                      │
│       Item:       - -123.45                                                  │
│       - InputState                                                           │
│           lines: [ -123.45 ]                                                 │
│           position: Position                                                 │
│             line: 0                                                          │
│             column: 7                                                        │
│     - IsSuccess: True                                                        │
│       IsFailure: False                                                       │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline createParserForwardedToRef<'a> () =
    let mutable parserRef : Parser<'a> =
        {
            label = "unknown"
            parseFn = fun _ -> failwith "unfixed forwarded parser"
        }

    let wrapperParser =
        { parserRef with
            parseFn = fun input -> runOnInput parserRef input
        }

    wrapperParser, (fun v -> parserRef <- v)

── fsharp ──────────────────────────────────────────────────────────────────────
let inline (>>%) p x =
    p
    |>> fun _ -> x
[NbConvertApp] Converting notebook Parser.dib.ipynb to html
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
  validate(nb)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
  return _pygments_highlight(
[NbConvertApp] Writing 415161 bytes to Parser.dib.html
00:00:00 #1 [Debug] writeDibCode / output: Fs / path: JsonParser.dib
00:00:00 #1 [Debug] writeDibCode / output: Fs / path: Parser.dib
00:00:00 #3 [Debug] parseDibCode / output: Fs / file: Parser.dib
00:00:00 #3 [Debug] parseDibCode / output: Fs / file: JsonParser.dib
In [ ]:
{ . "$ScriptDir/../lib/fsharp/build.ps1" } | Invoke-Block
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ # Async (Polyglot)                                                           │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/fsharp/Notebooks.dib
#!import ../../lib/fsharp/Testing.dib

── fsharp - import ─────────────────────────────────────────────────────────────
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Asp
NetCore.Html.Abstractions.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.FSharp.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.Formatting.dll"
open System
open System.IO
open System.Text
open Microsoft.DotNet.Interactive.Formatting

── fsharp - import ─────────────────────────────────────────────────────────────
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.FSharp.dll"
open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.dll"
open type Microsoft.DotNet.Interactive.Kernel

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

Formatter.ListExpansionLimit <- 100

── fsharp - import ─────────────────────────────────────────────────────────────
#r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

type AssertExceptionFormatter (ex) =
    member _.Text =
        ex.ToString()
            .Replace("32m", "<span style=\"color: green;\">")
            .Replace("36m", "</span>")
            .Replace("31m", "<span style=\"color: red;\">")
            .Replace("\n", "<br/>\n")


Formatter.Register<AssertExceptionFormatter> ((fun (x : 
AssertExceptionFormatter) -> x.Text), "text/html")

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

let inline __expect fn log expected actual =
    if log then printfn $"{actual.ToDisplayString ()}"
    try
        "Testing.__expect" |> fn actual expected
    with :? Expecto.AssertException as ex ->
        AssertExceptionFormatter(ex).Display () |> ignore
        failwith (ex.GetType().FullName)

let inline __contains log expected actual = __expect Expecto.Expect.contains log
expected actual
let inline _contains expected actual = __contains true expected actual

let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
expected actual
let inline _assertEqual expected actual = __assertEqual true expected actual

let inline __isGreaterThan log expected actual = __expect 
Expecto.Expect.isGreaterThan log ex...

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

let inline __isBetween log a b actual =
    let inline isBetween actual (a, b) _ =
        __isGreaterThanOrEqual log a actual
        __isLessThanOrEqual log b actual
    __expect isBetween log (a, b) actual
let inline _isBetween a b actual = __isBetween true a b actual

── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/spiral/common.fsx
#!import ../../lib/spiral/date_time.fsx
#!import ../../lib/fsharp/Common.fs

── fsharp - import ─────────────────────────────────────────────────────────────
type [[<Struct>]] US0 =
    | US0_0
    | US0_1
and [[<Struct>]] US1 =
    | US1_0
    | US1_1 of f1_0 : US0
let rec method0 (v0 : (unit -> unit)) : (unit -> unit) =
    v0
and closure0 () (v0 : (unit -> unit)) : System.IDisposable =
    let mutable result = None
    #if FABLE_COMPILER_RUST && !WASM
    let v1 : (unit -> unit) = method0(v0)
    let v2 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v1()" }
    v2
    #endif
    #if FABLE_COMPILER_RUST && WASM
    let v3 : (unit -> unit) = method0(v0)
    let v4 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v3()" }
    v4
    #endif
    #if !FABLE_COMPILER && !F...

── fsharp - import ─────────────────────────────────────────────────────────────
let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
    let v2 : string = v0.ToString ()
    let v3 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
    let v4 : System.Guid = System.Guid $"{v3}{v2.[[v3.Length..]]}"
    v4
and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
    closure1(v0)
and closure5 (v0 : string, v1 : string) (v2 : string) : string =
    let v3 : string = v2.Replace (v0, v1)
    v3
and closure4 (v0 : string) (v1 : string) : (string -> string) =
    closure5(v0, v1)
and closure3 () (v0 : string) : (string -> (string -> string)) =
    closure4(v0)
and method0 () : (string -> (string -> (string -> string))) =
    closure3()
and closure2 () (v0 : System.Guid) : System.DateTime =
  ...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Common =

#if !WASM && !FABLE_COMPILER
    let Date_time = {|
        new_guid_from_date_time =
#if !INTERACTIVE
            Date_time.new_guid_from_date_time
#else
            new_guid_from_date_time
#endif
    |}
#endif

    let nl = System.Environment.NewLine
    let q = @""""

    let inline cons head tail = head :: tail

    module String =
        let inline contains (value : string) (input : string) =
            input.Contains value

        let inline endsWith (value : string) (input : string) =
            input.EndsWith value

        let inline padLeft totalWidth paddingChar (input : string) =
            input.PadLeft (totalWidth, paddingChar)

        let inline replace (oldVa...

── fsharp ──────────────────────────────────────────────────────────────────────
open Common

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## choice                                                                    │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline choice asyncs = async {
    let e = Event<_> ()
    use cts = new System.Threading.CancellationTokenSource ()
    let fn =
        asyncs
        |> Seq.map (fun a -> async {
            let! x = a
            e.Trigger x
        })
        |> Async.Parallel
        |> Async.Ignore
    Async.Start (fn, cts.Token)
    let! result = Async.AwaitEvent e.Publish
    cts.Cancel ()
    return result
}

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## map                                                                       │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline map fn a = async {
    let! x = a
    return fn x
}

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## catch                                                                     │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline catch a =
    a
    |> Async.Catch
    |> map (function
        | Choice1Of2 result -> Ok result
        | Choice2Of2 ex -> Error ex
    )

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## runWithTimeoutAsync                                                       │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline runWithTimeoutAsync (timeout : int) fn =
    let getLocals () = $"timeout: {timeout} / {getLocals ()}"

    let timeoutTask = async {
        do! Async.Sleep timeout
        trace Debug (fun () -> "runWithTimeoutAsync") getLocals
        return None
    }

    let task = async {
        try
            let! result = fn
            return Some result
        with
        | :? System.AggregateException as ex when
            ex.InnerExceptions
            |> Seq.exists (function :? 
System.Threading.Tasks.TaskCanceledException -> true | _ -> false)
            ->
            let getLocals () = $"ex: {ex |> formatException} / {getLocals ()}"
            trace Warning (fun () -> "runWithTimeoutAsync") getLocals
            return None
        | ex ->
            trace Critical (fun () -> $"runWithTimeoutAsync** / ex: {ex |> 
formatException}") getLocals
            return None
    }

    [[ timeoutTask; task ]]
    |> choice

── fsharp ──────────────────────────────────────────────────────────────────────
let inline runWithTimeout timeout fn =
    fn
    |> runWithTimeoutAsync timeout
    |> Async.RunSynchronously

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

Async.Sleep 60
|> runWithTimeout 10
|> _assertEqual None

╭─[ 106.03ms - stdout ]────────────────────────────────────────────────────────╮
│ 00:00:00 #1 [Debug] runWithTimeoutAsync / timeout: 10                        │
│ <null>                                                                       │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

Async.Sleep 10
|> runWithTimeout 60
|> _assertEqual (Some ())

╭─[ 72.49ms - stdout ]─────────────────────────────────────────────────────────╮
│ FSharpOption<Unit>                                                           │
│       Value: <null>                                                          │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

async {
    raise (exn "error")
}
|> runWithTimeout 60
|> _assertEqual None

╭─[ 100.18ms - stdout ]────────────────────────────────────────────────────────╮
│ 00:00:00 #2 [Critical] runWithTimeoutAsync** / ex: System.Exception: error / │
│ timeout: 60                                                                  │
│ <null>                                                                       │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## runWithTimeoutChildAsync                                                  │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline runWithTimeoutChildAsync (timeout : int) fn = async {
    let getLocals () = $"timeout: {timeout} / {getLocals ()}"
    let! child = Async.StartChild (fn, timeout)
    return!
        child
        |> catch
        |> map (function
            | Ok result -> Some result
            | Error (:? System.TimeoutException as ex) ->
                trace Debug (fun () -> $"runWithTimeoutChildAsync") getLocals
                None
            | Error ex ->
                trace Critical (fun () -> $"runWithTimeoutChildAsync** / ex: {ex
|> formatException}") getLocals
                None
        )
}

── fsharp ──────────────────────────────────────────────────────────────────────
let inline runWithTimeoutChild timeout fn =
    fn
    |> runWithTimeoutChildAsync timeout
    |> Async.RunSynchronously

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

Async.Sleep 60
|> runWithTimeoutChild 10
|> _assertEqual None

╭─[ 63.89ms - stdout ]─────────────────────────────────────────────────────────╮
│ 00:00:00 #3 [Debug] runWithTimeoutChildAsync / timeout: 10                   │
│ <null>                                                                       │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

Async.Sleep 10
|> runWithTimeoutChild 60
|> _assertEqual (Some ())

╭─[ 52.55ms - stdout ]─────────────────────────────────────────────────────────╮
│ FSharpOption<Unit>                                                           │
│       Value: <null>                                                          │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

async {
    raise (exn "error")
}
|> runWithTimeoutChild 60
|> _assertEqual None

╭─[ 49.74ms - stdout ]─────────────────────────────────────────────────────────╮
│ 00:00:00 #4 [Critical] runWithTimeoutChildAsync** / ex: System.Exception:    │
│ error / timeout: 60                                                          │
│ <null>                                                                       │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## runWithTimeoutStrict                                                      │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline runWithTimeoutStrict (timeout : int) fn =
    let getLocals () = $"timeout: {timeout} / {getLocals ()}"

    let timeoutTask = async {
        do! Async.Sleep timeout
        return None, getLocals
    }

    let task = async {
        try
            return Async.RunSynchronously (fn, timeout) |> Some, getLocals
        with
        | :? System.TimeoutException as ex ->
            let getLocals () = $"ex: {ex |> formatException} / {getLocals ()}"
            return None, getLocals
        | ex ->
            trace Critical (fun () -> $"runWithTimeoutStrict / ex: {ex |> 
formatException}") getLocals
            return raise ex
    }

    try
        [[| timeoutTask; task |]]
        |> Array.map Async.StartAsTask
        |> System.Threading.Tasks.Task.WhenAny
        |> fun task ->
            match task.Result.Result with
            | None, getLocals ->
                trace Debug (fun () -> "runWithTimeoutStrict") getLocals
                None
            | result, _ -> result
    with
    | :? System.AggregateException as ex when
        ex.InnerExceptions
        |> Seq.exists (function :? System.Threading.Tasks.TaskCanceledException 
-> true | _ -> false)
        ->
        let getLocals () = $"ex: {ex |> formatException} / {getLocals ()}"
        trace Warning (fun () -> "runWithTimeoutStrict") getLocals
        None
    | ex ->
        let getLocals () = $"ex: {ex |> formatException} / {getLocals ()}"
        trace Critical (fun () -> "runWithTimeoutStrict**") getLocals
        None

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

Async.Sleep 60
|> runWithTimeoutStrict 10
|> _assertEqual None

╭─[ 69.28ms - stdout ]─────────────────────────────────────────────────────────╮
│ 00:00:00 #5 [Debug] runWithTimeoutStrict / timeout: 10                       │
│ <null>                                                                       │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

Async.Sleep 10
|> runWithTimeoutStrict 60
|> _assertEqual (Some ())

╭─[ 64.85ms - stdout ]─────────────────────────────────────────────────────────╮
│ FSharpOption<Unit>                                                           │
│       Value: <null>                                                          │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

async {
    raise (exn "error")
}
|> runWithTimeoutStrict 60
|> _assertEqual None

╭─[ 72.42ms - stdout ]─────────────────────────────────────────────────────────╮
│ 00:00:00 #6 [Critical] runWithTimeoutStrict / ex: System.Exception: error /  │
│ timeout: 60                                                                  │
│ 00:00:00 #7 [Critical] runWithTimeoutStrict** / ex:                          │
│ System.AggregateException: One or more errors occurred. (error) / timeout:   │
│ 60                                                                           │
│ <null>                                                                       │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## awaitValueTask                                                            │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline awaitValueTaskUnit (task : System.Threading.Tasks.ValueTask) =
    task.AsTask () |> Async.AwaitTask

let inline awaitValueTask (task : System.Threading.Tasks.ValueTask<_>) =
    task.AsTask () |> Async.AwaitTask

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## init                                                                      │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline init x = async {
    return x
}

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

init 1
|> Async.RunSynchronously
|> _assertEqual 1

╭─[ 16.72ms - stdout ]─────────────────────────────────────────────────────────╮
│ 1                                                                            │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## mergeCancellationTokenWithDefaultAsync                                    │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline mergeCancellationTokenWithDefaultAsync (token : 
System.Threading.CancellationToken) = async {
    let! ct = Async.CancellationToken
    let dct = Async.DefaultCancellationToken
    let cts = System.Threading.CancellationTokenSource.CreateLinkedTokenSource 
[[| ct; dct; token |]]
    return cts.Token
}

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## withCancellationToken                                                     │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline withCancellationToken (ct : System.Threading.CancellationToken) fn =
    Async.StartImmediateAsTask (fn, ct)
    |> Async.AwaitTask

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let cts = new System.Threading.CancellationTokenSource ()

async {
    let run = async {
        do! Async.Sleep 100
        return 1
    }

    let! child =
        run
        |> withCancellationToken cts.Token
        |> catch
        |> Async.StartChild

    do! Async.Sleep 50
    cts.Cancel ()
    return! child
}
|> Async.RunSynchronously
|> Result.mapError _.Message
|> _assertEqual (Error ("A task was canceled."))

╭─[ 136.18ms - stdout ]────────────────────────────────────────────────────────╮
│ FSharpResult<Int32,String>                                                   │
│       ResultValue: 0                                                         │
│       ErrorValue: A task was canceled.                                       │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## withTraceLevel                                                            │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline withTraceLevel level fn = async {
    let oldTraceLevel = traceLevel
    try
        traceLevel <- level
        return! fn
    finally
        traceLevel <- oldTraceLevel
}
[NbConvertApp] Converting notebook Async.dib.ipynb to html
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
  validate(nb)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
  return _pygments_highlight(
[NbConvertApp] Writing 324815 bytes to Async.dib.html

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ # AsyncSeq (Polyglot)                                                        │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/fsharp/Notebooks.dib
#!import ../../lib/fsharp/Testing.dib

── fsharp - import ─────────────────────────────────────────────────────────────
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Asp
NetCore.Html.Abstractions.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.FSharp.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.Formatting.dll"
open System
open System.IO
open System.Text
open Microsoft.DotNet.Interactive.Formatting

── fsharp - import ─────────────────────────────────────────────────────────────
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.FSharp.dll"
open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.dll"
open type Microsoft.DotNet.Interactive.Kernel

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

Formatter.ListExpansionLimit <- 100

── fsharp - import ─────────────────────────────────────────────────────────────
#r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

type AssertExceptionFormatter (ex) =
    member _.Text =
        ex.ToString()
            .Replace("32m", "<span style=\"color: green;\">")
            .Replace("36m", "</span>")
            .Replace("31m", "<span style=\"color: red;\">")
            .Replace("\n", "<br/>\n")


Formatter.Register<AssertExceptionFormatter> ((fun (x : 
AssertExceptionFormatter) -> x.Text), "text/html")

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

let inline __expect fn log expected actual =
    if log then printfn $"{actual.ToDisplayString ()}"
    try
        "Testing.__expect" |> fn actual expected
    with :? Expecto.AssertException as ex ->
        AssertExceptionFormatter(ex).Display () |> ignore
        failwith (ex.GetType().FullName)

let inline __contains log expected actual = __expect Expecto.Expect.contains log
expected actual
let inline _contains expected actual = __contains true expected actual

let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
expected actual
let inline _assertEqual expected actual = __assertEqual true expected actual

let inline __isGreaterThan log expected actual = __expect 
Expecto.Expect.isGreaterThan log ex...

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

let inline __isBetween log a b actual =
    let inline isBetween actual (a, b) _ =
        __isGreaterThanOrEqual log a actual
        __isLessThanOrEqual log b actual
    __expect isBetween log (a, b) actual
let inline _isBetween a b actual = __isBetween true a b actual

── fsharp ──────────────────────────────────────────────────────────────────────
#r 
@"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
dard2.1/FSharp.Control.AsyncSeq.dll"
#r 
@"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
0/System.Reactive.dll"
#r 
@"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/
netstandard2.0/System.Reactive.Linq.dll"

── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/spiral/common.fsx
#!import ../../lib/spiral/date_time.fsx
#!import ../../lib/fsharp/Common.fs
#!import ../../lib/fsharp/Async.fs

── fsharp - import ─────────────────────────────────────────────────────────────
type [[<Struct>]] US0 =
    | US0_0
    | US0_1
and [[<Struct>]] US1 =
    | US1_0
    | US1_1 of f1_0 : US0
let rec method0 (v0 : (unit -> unit)) : (unit -> unit) =
    v0
and closure0 () (v0 : (unit -> unit)) : System.IDisposable =
    let mutable result = None
    #if FABLE_COMPILER_RUST && !WASM
    let v1 : (unit -> unit) = method0(v0)
    let v2 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v1()" }
    v2
    #endif
    #if FABLE_COMPILER_RUST && WASM
    let v3 : (unit -> unit) = method0(v0)
    let v4 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v3()" }
    v4
    #endif
    #if !FABLE_COMPILER && !F...

── fsharp - import ─────────────────────────────────────────────────────────────
let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
    let v2 : string = v0.ToString ()
    let v3 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
    let v4 : System.Guid = System.Guid $"{v3}{v2.[[v3.Length..]]}"
    v4
and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
    closure1(v0)
and closure5 (v0 : string, v1 : string) (v2 : string) : string =
    let v3 : string = v2.Replace (v0, v1)
    v3
and closure4 (v0 : string) (v1 : string) : (string -> string) =
    closure5(v0, v1)
and closure3 () (v0 : string) : (string -> (string -> string)) =
    closure4(v0)
and method0 () : (string -> (string -> (string -> string))) =
    closure3()
and closure2 () (v0 : System.Guid) : System.DateTime =
  ...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Common =

#if !WASM && !FABLE_COMPILER
    let Date_time = {|
        new_guid_from_date_time =
#if !INTERACTIVE
            Date_time.new_guid_from_date_time
#else
            new_guid_from_date_time
#endif
    |}
#endif

    let nl = System.Environment.NewLine
    let q = @""""

    let inline cons head tail = head :: tail

    module String =
        let inline contains (value : string) (input : string) =
            input.Contains value

        let inline endsWith (value : string) (input : string) =
            input.EndsWith value

        let inline padLeft totalWidth paddingChar (input : string) =
            input.PadLeft (totalWidth, paddingChar)

        let inline replace (oldVa...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Async =

    open Common

    /// ## choice

    let inline choice asyncs = async {
        let e = Event<_> ()
        use cts = new System.Threading.CancellationTokenSource ()
        let fn =
            asyncs
            |> Seq.map (fun a -> async {
                let! x = a
                e.Trigger x
            })
            |> Async.Parallel
            |> Async.Ignore
        Async.Start (fn, cts.Token)
        let! result = Async.AwaitEvent e.Publish
        cts.Cancel ()
        return result
    }

    /// ## map

    let inline map fn a = async {
        let! x = a
        return fn x
    }

    /// ## catch

    let inline catch a =
        a
        |> Async.Catch
        ...

── fsharp ──────────────────────────────────────────────────────────────────────
open Common

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## subscribeEvent                                                            │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline subscribeEvent (event: IEvent<'H, 'A>) map =
    let observable = System.Reactive.Linq.Observable.FromEventPattern<'H, 
'A>(event.AddHandler, event.RemoveHandler)
    System.Reactive.Linq.Observable.Select (observable, fun event -> map 
event.EventArgs)
    |> FSharp.Control.AsyncSeq.ofObservableBuffered

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

type TestEvent () as self =
    member val Calls = [[]] with get, set
    member val Event = Event<ErrorEventHandler, ErrorEventArgs> () with get

    member _.AddCall text =
        self.Calls <- self.Calls @ [[ text ]]

    member _.EventInterface =
        { new IEvent<ErrorEventHandler, ErrorEventArgs> with
            member _.AddHandler handler =
                self.AddCall "AddHandler"
                self.Event.Publish.AddHandler handler

            member _.RemoveHandler handler =
                self.AddCall "RemoveHandler"
                self.Event.Publish.RemoveHandler handler

            member _.Subscribe observer =
                self.AddCall "IObservable.Subscribe"
                let disposable = self.Event.Publish.Subscribe observer
                new_disposable (fun () ->
                    self.AddCall "IObservable.Dispose"
                    disposable.Dispose ()
                )
        }

    member _.Subscribe () =
        subscribeEvent
            self.EventInterface
            (fun args ->
                let result = args.GetException () |> formatException
                self.AddCall $"TestEvent.Subscribe({result})"
                result
            )

    member _.Iter subscription =
        subscription
        |> FSharp.Control.AsyncSeq.iteriAsync (fun i error -> async {
            self.AddCall $"TestEvent.Iter({i}: {error})"
        })

    member _.WaitCall text = async {
        while self.Calls |> List.last <> text do
            do! Async.SwitchToThreadPool ()
    }

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let testEvent = TestEvent ()

async {
    testEvent.AddCall "1"
    let! child = testEvent.Subscribe () |> testEvent.Iter |> Async.StartChild
    do! testEvent.WaitCall "AddHandler"
    testEvent.AddCall "2"
    do! child
    testEvent.AddCall "3"
}
|> Async.runWithTimeout 300
|> _assertEqual None

testEvent.Calls
|> Seq.toList
|> _assertEqual [[ "1"; "AddHandler"; "2"; "RemoveHandler" ]]

╭─[ 445.43ms - stdout ]────────────────────────────────────────────────────────╮
│ 00:00:00 #1 [Debug] runWithTimeoutAsync / timeout: 300                       │
│ <null>                                                                       │
│ [ 1, AddHandler, 2, RemoveHandler ]                                          │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let testEvent = TestEvent ()

async {
    testEvent.AddCall "1"
    let! child = testEvent.Subscribe () |> testEvent.Iter |> Async.StartChild
    do! testEvent.WaitCall "AddHandler"
    testEvent.AddCall "2"
    use _ = testEvent.EventInterface.Subscribe (fun args ->
        testEvent.AddCall $"testEvent.EventInterface.Subscribe({args})"
    )
    testEvent.AddCall "3"
    do! child
    testEvent.AddCall "4"
}
|> Async.runWithTimeout 300
|> _assertEqual None

testEvent.Calls
|> _assertEqual [[ "1"; "AddHandler"; "2"; "IObservable.Subscribe"; "3"; 
"RemoveHandler"; "IObservable.Dispose" ]]

╭─[ 425.62ms - stdout ]────────────────────────────────────────────────────────╮
│ 00:00:00 #2 [Debug] runWithTimeoutAsync / timeout: 300                       │
│ <null>                                                                       │
│ [ 1, AddHandler, 2, IObservable.Subscribe, 3, RemoveHandler,                 │
│ IObservable.Dispose ]                                                        │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let testEvent = TestEvent ()

async {
    testEvent.AddCall "1"
    let! child = testEvent.Subscribe () |> testEvent.Iter |> Async.StartChild
    do! testEvent.WaitCall "AddHandler"
    testEvent.AddCall "2"
    use _ = testEvent.EventInterface.Subscribe (fun args ->
        async {
            do! testEvent.WaitCall "TestEvent.Iter(0: System.Exception: error)"
            testEvent.AddCall 
$"testEvent.EventInterface.Subscribe({args.GetException () |> formatException})"
        }
        |> Async.RunSynchronously
    )
    testEvent.AddCall "3"
    testEvent.Event.Trigger (null, ErrorEventArgs (Exception "error"))
    testEvent.AddCall "4"
    do! child
    testEvent.AddCall "5"
}
|> Async.runWithTimeout 300
|> _assertEqual None

testEvent.Calls
|> _assertEqual [[
    "1"
    "AddHandler"
    "2"
    "IObservable.Subscribe"
    "3"
    "TestEvent.Subscribe(System.Exception: error)"
    "TestEvent.Iter(0: System.Exception: error)"
    "testEvent.EventInterface.Subscribe(System.Exception: error)"
    "4"
    "RemoveHandler"
    "IObservable.Dispose"
]]

╭─[ 414.30ms - stdout ]────────────────────────────────────────────────────────╮
│ 00:00:00 #3 [Debug] runWithTimeoutAsync / timeout: 300                       │
│ <null>                                                                       │
│ [ 1, AddHandler, 2, IObservable.Subscribe, 3,                                │
│ TestEvent.Subscribe(System.Exception: error), TestEvent.Iter(0:              │
│ System.Exception: error),                                                    │
│ testEvent.EventInterface.Subscribe(System.Exception: error), 4,              │
│ RemoveHandler, IObservable.Dispose ]                                         │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let subscribeToken (token : System.Threading.CancellationToken) =
    let tcs = new System.Threading.Tasks.TaskCompletionSource ()
    System.Action tcs.SetResult |> token.Register |> ignore
    let start = System.DateTime.Now.Ticks
    FSharp.Control.AsyncSeq.unfoldAsync
        (fun () -> async {
            do! tcs.Task |> Async.AwaitTask
            return Some (System.DateTime.Now.Ticks - start, ())
        })
        ()

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let cts = new System.Threading.CancellationTokenSource ()

async {
    let! child =
        cts.Token
        |> subscribeToken
        |> FSharp.Control.AsyncSeq.tryFirst
        |> Async.StartChild

    do! Async.Sleep 100
    cts.Cancel ()
    return! child
}
|> Async.RunSynchronously
|> Option.get
|> _isGreaterThan 900000

╭─[ 147.08ms - stdout ]────────────────────────────────────────────────────────╮
│ 1018964                                                                      │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
[NbConvertApp] Converting notebook AsyncSeq.dib.ipynb to html
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
  validate(nb)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
  return _pygments_highlight(
[NbConvertApp] Writing 301617 bytes to AsyncSeq.dib.html

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ # Common (Polyglot)                                                          │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/fsharp/Notebooks.dib
#!import ../../lib/fsharp/Testing.dib

── fsharp - import ─────────────────────────────────────────────────────────────
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Asp
NetCore.Html.Abstractions.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.FSharp.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.Formatting.dll"
open System
open System.IO
open System.Text
open Microsoft.DotNet.Interactive.Formatting

── fsharp - import ─────────────────────────────────────────────────────────────
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.FSharp.dll"
open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.dll"
open type Microsoft.DotNet.Interactive.Kernel

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

Formatter.ListExpansionLimit <- 100

── fsharp - import ─────────────────────────────────────────────────────────────
#r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

type AssertExceptionFormatter (ex) =
    member _.Text =
        ex.ToString()
            .Replace("32m", "<span style=\"color: green;\">")
            .Replace("36m", "</span>")
            .Replace("31m", "<span style=\"color: red;\">")
            .Replace("\n", "<br/>\n")


Formatter.Register<AssertExceptionFormatter> ((fun (x : 
AssertExceptionFormatter) -> x.Text), "text/html")

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

let inline __expect fn log expected actual =
    if log then printfn $"{actual.ToDisplayString ()}"
    try
        "Testing.__expect" |> fn actual expected
    with :? Expecto.AssertException as ex ->
        AssertExceptionFormatter(ex).Display () |> ignore
        failwith (ex.GetType().FullName)

let inline __contains log expected actual = __expect Expecto.Expect.contains log
expected actual
let inline _contains expected actual = __contains true expected actual

let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
expected actual
let inline _assertEqual expected actual = __assertEqual true expected actual

let inline __isGreaterThan log expected actual = __expect 
Expecto.Expect.isGreaterThan log ex...

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

let inline __isBetween log a b actual =
    let inline isBetween actual (a, b) _ =
        __isGreaterThanOrEqual log a actual
        __isLessThanOrEqual log b actual
    __expect isBetween log (a, b) actual
let inline _isBetween a b actual = __isBetween true a b actual

── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/spiral/common.fsx
#!import ../../lib/spiral/date_time.fsx

── fsharp - import ─────────────────────────────────────────────────────────────
type [[<Struct>]] US0 =
    | US0_0
    | US0_1
and [[<Struct>]] US1 =
    | US1_0
    | US1_1 of f1_0 : US0
let rec method0 (v0 : (unit -> unit)) : (unit -> unit) =
    v0
and closure0 () (v0 : (unit -> unit)) : System.IDisposable =
    let mutable result = None
    #if FABLE_COMPILER_RUST && !WASM
    let v1 : (unit -> unit) = method0(v0)
    let v2 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v1()" }
    v2
    #endif
    #if FABLE_COMPILER_RUST && WASM
    let v3 : (unit -> unit) = method0(v0)
    let v4 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v3()" }
    v4
    #endif
    #if !FABLE_COMPILER && !F...

── fsharp - import ─────────────────────────────────────────────────────────────
let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
    let v2 : string = v0.ToString ()
    let v3 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
    let v4 : System.Guid = System.Guid $"{v3}{v2.[[v3.Length..]]}"
    v4
and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
    closure1(v0)
and closure5 (v0 : string, v1 : string) (v2 : string) : string =
    let v3 : string = v2.Replace (v0, v1)
    v3
and closure4 (v0 : string) (v1 : string) : (string -> string) =
    closure5(v0, v1)
and closure3 () (v0 : string) : (string -> (string -> string)) =
    closure4(v0)
and method0 () : (string -> (string -> (string -> string))) =
    closure3()
and closure2 () (v0 : System.Guid) : System.DateTime =
  ...

── fsharp ──────────────────────────────────────────────────────────────────────
#if !WASM && !FABLE_COMPILER
let Date_time = {|
    new_guid_from_date_time =
#if !INTERACTIVE
        Date_time.new_guid_from_date_time
#else
        new_guid_from_date_time
#endif
|}
#endif

── fsharp ──────────────────────────────────────────────────────────────────────
let nl = System.Environment.NewLine
let q = @""""

── fsharp ──────────────────────────────────────────────────────────────────────
let inline cons head tail = head :: tail

── fsharp ──────────────────────────────────────────────────────────────────────
module String =
    let inline contains (value : string) (input : string) =
        input.Contains value

    let inline endsWith (value : string) (input : string) =
        input.EndsWith value

    let inline padLeft totalWidth paddingChar (input : string) =
        input.PadLeft (totalWidth, paddingChar)

    let inline replace (oldValue : string) (newValue : string) (input : string) 
=
        input.Replace (oldValue, newValue)

    let inline split separator (input : string) =
        input.Split separator

    let inline splitString (separator : string array) (input : string) =
        input.Split (separator, System.StringSplitOptions.None)

    let inline startsWith (value : string) (input : string) =
        input.StartsWith value

    let inline substring startIndex length (input : string) =
        input.Substring (startIndex, length)

    let inline toLower (input : string) =
        input.ToLower ()

    let inline toUpper (input : string) =
        input.ToUpper ()

    let inline trim (input : string) =
        input.Trim ()

    let inline trimEnd (trimChars : char array) (input : string) =
        input.TrimEnd trimChars

    let inline trimStart (trimChars : char array) (input : string) =
        input.TrimStart trimChars


    let ellipsis max value =
        if value |> String.length <= max
        then value
        else $"{value |> substring 0 max}..."

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## formatException                                                           │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline formatException (ex : exn) =
    $"{ex.GetType ()}: {ex.Message}"

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## memoize                                                                   │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline memoize fn =
    let result = lazy fn ()
    fun () -> result.Value

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## TraceLevel                                                                │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
type TraceLevel =
    | Verbose
    | Debug
    | Info
    | Warning
    | Critical

let inline getLocals () = ""

let mutable traceEnabled = true
let mutable traceCount = 0
let mutable traceLevel = Verbose
let mutable traceDump = false

── fsharp ──────────────────────────────────────────────────────────────────────
let testTraceLevel level =
    traceEnabled && level >= traceLevel

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## traceRaw                                                                  │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let rec traceRaw level fn =
    if level |> testTraceLevel then
        traceCount <- traceCount + 1

        let text = $"%s{fn ()}"
#if FABLE_COMPILER_RUST
        Fable.Core.RustInterop.emitRustExpr () @"println!(""{}"", text)"
#else
        System.Console.WriteLine text
#endif

#if !WASM && !FABLE_COMPILER
        if traceDump then
            try
                let tmpPath = System.IO.Path.GetTempPath ()
                let logDir = System.IO.Path.Combine (tmpPath, "!polyglot")
                System.IO.Directory.CreateDirectory logDir |> ignore
                let logFile = System.IO.Path.Combine (logDir, 
$"{Date_time.new_guid_from_date_time System.DateTime.Now}.txt")
                System.IO.File.WriteAllTextAsync (logFile, text) |> 
Async.AwaitTask |> Async.RunSynchronously
            with ex ->
                traceRaw Critical (fun () -> $"trace / ex: {ex |> 
formatException}")
#endif

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

traceRaw Debug (fun () -> "test")

╭─[ 6.19ms - stdout ]──────────────────────────────────────────────────────────╮
│ test                                                                         │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## trace                                                                     │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let private replStart =
#if INTERACTIVE || !FABLE_COMPILER
    fun () ->
        if System.Reflection.Assembly.GetEntryAssembly().GetName().Name <> 
"Microsoft.DotNet.Interactive.App"
        then Some System.DateTime.Now.Ticks
        else None
    |> memoize
#else
    fun () -> None : int64 option
#endif

let trace level fn getLocals =
    fun () ->
        let time =
#if WASM
            ""
#else
            match replStart () with
            | Some replStart ->
                let t = System.DateTime.Now.Ticks - replStart |> System.TimeSpan
                System.DateTime (1, 1, 1, t.Hours, t.Minutes, t.Seconds, 
t.Milliseconds)
            | None -> System.DateTime.Now
            |> fun dateTime ->
#if FABLE_COMPILER_RUST
                "hh:mm:ss"
#else
                "HH:mm:ss"
#endif
                |> dateTime.ToString
#endif
        $"{time} #{traceCount} [[%A{level}]] %s{fn ()} / %s{getLocals ()}"
        |> String.trimStart [[||]]
        |> String.trimEnd [[| ' '; '/' |]]
    |> traceRaw level

let inline withTrace enabled fn =
    let oldTraceEnabled = traceEnabled
    try
        traceEnabled <- enabled
        fn ()
    finally
        traceEnabled <- oldTraceEnabled

let inline withTraceEnabled fn =
    withTrace true fn

let inline withTraceDisabled fn =
    withTrace false fn

let inline withTraceLevel level fn =
    let oldTraceLevel = traceLevel
    try
        traceLevel <- level
        fn ()
    finally
        traceLevel <- oldTraceLevel

let inline withTraceDump dump fn =
    let oldTraceDump = traceDump
    try
        traceDump <- dump
        fn ()
    finally
        traceDump <- oldTraceDump

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

trace Debug (fun () -> "test") getLocals

╭─[ 18.06ms - stdout ]─────────────────────────────────────────────────────────╮
│ 00:00:00 #2 [Debug] test                                                     │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
[NbConvertApp] Converting notebook Common.dib.ipynb to html
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
  validate(nb)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
  return _pygments_highlight(
[NbConvertApp] Writing 304402 bytes to Common.dib.html

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ # CommonFSharp (Polyglot)                                                    │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/fsharp/Notebooks.dib
#!import ../../lib/fsharp/Testing.dib

── fsharp - import ─────────────────────────────────────────────────────────────
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Asp
NetCore.Html.Abstractions.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.FSharp.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.Formatting.dll"
open System
open System.IO
open System.Text
open Microsoft.DotNet.Interactive.Formatting

── fsharp - import ─────────────────────────────────────────────────────────────
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.FSharp.dll"
open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.dll"
open type Microsoft.DotNet.Interactive.Kernel

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

Formatter.ListExpansionLimit <- 100

── fsharp - import ─────────────────────────────────────────────────────────────
#r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

type AssertExceptionFormatter (ex) =
    member _.Text =
        ex.ToString()
            .Replace("32m", "<span style=\"color: green;\">")
            .Replace("36m", "</span>")
            .Replace("31m", "<span style=\"color: red;\">")
            .Replace("\n", "<br/>\n")


Formatter.Register<AssertExceptionFormatter> ((fun (x : 
AssertExceptionFormatter) -> x.Text), "text/html")

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

let inline __expect fn log expected actual =
    if log then printfn $"{actual.ToDisplayString ()}"
    try
        "Testing.__expect" |> fn actual expected
    with :? Expecto.AssertException as ex ->
        AssertExceptionFormatter(ex).Display () |> ignore
        failwith (ex.GetType().FullName)

let inline __contains log expected actual = __expect Expecto.Expect.contains log
expected actual
let inline _contains expected actual = __contains true expected actual

let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
expected actual
let inline _assertEqual expected actual = __assertEqual true expected actual

let inline __isGreaterThan log expected actual = __expect 
Expecto.Expect.isGreaterThan log ex...

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

let inline __isBetween log a b actual =
    let inline isBetween actual (a, b) _ =
        __isGreaterThanOrEqual log a actual
        __isLessThanOrEqual log b actual
    __expect isBetween log (a, b) actual
let inline _isBetween a b actual = __isBetween true a b actual

── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/spiral/common.fsx
#!import ../../lib/spiral/date_time.fsx
#!import ../../lib/fsharp/Common.fs

── fsharp - import ─────────────────────────────────────────────────────────────
type [[<Struct>]] US0 =
    | US0_0
    | US0_1
and [[<Struct>]] US1 =
    | US1_0
    | US1_1 of f1_0 : US0
let rec method0 (v0 : (unit -> unit)) : (unit -> unit) =
    v0
and closure0 () (v0 : (unit -> unit)) : System.IDisposable =
    let mutable result = None
    #if FABLE_COMPILER_RUST && !WASM
    let v1 : (unit -> unit) = method0(v0)
    let v2 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v1()" }
    v2
    #endif
    #if FABLE_COMPILER_RUST && WASM
    let v3 : (unit -> unit) = method0(v0)
    let v4 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v3()" }
    v4
    #endif
    #if !FABLE_COMPILER && !F...

── fsharp - import ─────────────────────────────────────────────────────────────
let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
    let v2 : string = v0.ToString ()
    let v3 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
    let v4 : System.Guid = System.Guid $"{v3}{v2.[[v3.Length..]]}"
    v4
and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
    closure1(v0)
and closure5 (v0 : string, v1 : string) (v2 : string) : string =
    let v3 : string = v2.Replace (v0, v1)
    v3
and closure4 (v0 : string) (v1 : string) : (string -> string) =
    closure5(v0, v1)
and closure3 () (v0 : string) : (string -> (string -> string)) =
    closure4(v0)
and method0 () : (string -> (string -> (string -> string))) =
    closure3()
and closure2 () (v0 : System.Guid) : System.DateTime =
  ...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Common =

#if !WASM && !FABLE_COMPILER
    let Date_time = {|
        new_guid_from_date_time =
#if !INTERACTIVE
            Date_time.new_guid_from_date_time
#else
            new_guid_from_date_time
#endif
    |}
#endif

    let nl = System.Environment.NewLine
    let q = @""""

    let inline cons head tail = head :: tail

    module String =
        let inline contains (value : string) (input : string) =
            input.Contains value

        let inline endsWith (value : string) (input : string) =
            input.EndsWith value

        let inline padLeft totalWidth paddingChar (input : string) =
            input.PadLeft (totalWidth, paddingChar)

        let inline replace (oldVa...

── fsharp ──────────────────────────────────────────────────────────────────────
open Common

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## getUnionCaseName                                                          │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline getUnionCaseName<'T> (x: 'T) =
    match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with
    | case, _ -> case.Name

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

TraceLevel.Critical
|> getUnionCaseName
|> _assertEqual (nameof TraceLevel.Critical)

╭─[ 38.89ms - stdout ]─────────────────────────────────────────────────────────╮
│ Critical                                                                     │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
[NbConvertApp] Converting notebook CommonFSharp.dib.ipynb to html
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
  validate(nb)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
  return _pygments_highlight(
[NbConvertApp] Writing 275712 bytes to CommonFSharp.dib.html

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ # Threading (Polyglot)                                                       │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/fsharp/Notebooks.dib
#!import ../../lib/fsharp/Testing.dib

── fsharp - import ─────────────────────────────────────────────────────────────
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Asp
NetCore.Html.Abstractions.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.FSharp.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.Formatting.dll"
open System
open System.IO
open System.Text
open Microsoft.DotNet.Interactive.Formatting

── fsharp - import ─────────────────────────────────────────────────────────────
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.FSharp.dll"
open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.dll"
open type Microsoft.DotNet.Interactive.Kernel

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

Formatter.ListExpansionLimit <- 100

── fsharp - import ─────────────────────────────────────────────────────────────
#r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

type AssertExceptionFormatter (ex) =
    member _.Text =
        ex.ToString()
            .Replace("32m", "<span style=\"color: green;\">")
            .Replace("36m", "</span>")
            .Replace("31m", "<span style=\"color: red;\">")
            .Replace("\n", "<br/>\n")


Formatter.Register<AssertExceptionFormatter> ((fun (x : 
AssertExceptionFormatter) -> x.Text), "text/html")

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

let inline __expect fn log expected actual =
    if log then printfn $"{actual.ToDisplayString ()}"
    try
        "Testing.__expect" |> fn actual expected
    with :? Expecto.AssertException as ex ->
        AssertExceptionFormatter(ex).Display () |> ignore
        failwith (ex.GetType().FullName)

let inline __contains log expected actual = __expect Expecto.Expect.contains log
expected actual
let inline _contains expected actual = __contains true expected actual

let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
expected actual
let inline _assertEqual expected actual = __assertEqual true expected actual

let inline __isGreaterThan log expected actual = __expect 
Expecto.Expect.isGreaterThan log ex...

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

let inline __isBetween log a b actual =
    let inline isBetween actual (a, b) _ =
        __isGreaterThanOrEqual log a actual
        __isLessThanOrEqual log b actual
    __expect isBetween log (a, b) actual
let inline _isBetween a b actual = __isBetween true a b actual

── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/spiral/common.fsx
#!import ../../lib/spiral/date_time.fsx
#!import ../../lib/fsharp/Common.fs

── fsharp - import ─────────────────────────────────────────────────────────────
type [[<Struct>]] US0 =
    | US0_0
    | US0_1
and [[<Struct>]] US1 =
    | US1_0
    | US1_1 of f1_0 : US0
let rec method0 (v0 : (unit -> unit)) : (unit -> unit) =
    v0
and closure0 () (v0 : (unit -> unit)) : System.IDisposable =
    let mutable result = None
    #if FABLE_COMPILER_RUST && !WASM
    let v1 : (unit -> unit) = method0(v0)
    let v2 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v1()" }
    v2
    #endif
    #if FABLE_COMPILER_RUST && WASM
    let v3 : (unit -> unit) = method0(v0)
    let v4 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v3()" }
    v4
    #endif
    #if !FABLE_COMPILER && !F...

── fsharp - import ─────────────────────────────────────────────────────────────
let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
    let v2 : string = v0.ToString ()
    let v3 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
    let v4 : System.Guid = System.Guid $"{v3}{v2.[[v3.Length..]]}"
    v4
and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
    closure1(v0)
and closure5 (v0 : string, v1 : string) (v2 : string) : string =
    let v3 : string = v2.Replace (v0, v1)
    v3
and closure4 (v0 : string) (v1 : string) : (string -> string) =
    closure5(v0, v1)
and closure3 () (v0 : string) : (string -> (string -> string)) =
    closure4(v0)
and method0 () : (string -> (string -> (string -> string))) =
    closure3()
and closure2 () (v0 : System.Guid) : System.DateTime =
  ...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Common =

#if !WASM && !FABLE_COMPILER
    let Date_time = {|
        new_guid_from_date_time =
#if !INTERACTIVE
            Date_time.new_guid_from_date_time
#else
            new_guid_from_date_time
#endif
    |}
#endif

    let nl = System.Environment.NewLine
    let q = @""""

    let inline cons head tail = head :: tail

    module String =
        let inline contains (value : string) (input : string) =
            input.Contains value

        let inline endsWith (value : string) (input : string) =
            input.EndsWith value

        let inline padLeft totalWidth paddingChar (input : string) =
            input.PadLeft (totalWidth, paddingChar)

        let inline replace (oldVa...

── fsharp ──────────────────────────────────────────────────────────────────────
open Common

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## newDisposableToken                                                        │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline newDisposableToken (mergeToken: System.Threading.CancellationToken 
option) =
    let cts = new System.Threading.CancellationTokenSource ()
    let cts =
        match mergeToken with
        | None -> cts
        | Some mergeToken ->
            System.Threading.CancellationTokenSource.CreateLinkedTokenSource [[|
cts.Token; mergeToken |]]
    let disposable = new_disposable cts.Cancel
    cts.Token, disposable

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let mutable counter = 0

let inline run fn =
    let token, disposable = newDisposableToken None
    use _ = disposable
    fn token
    async {
        fn token
    }
    |> Async.Start

let inline fn (token : System.Threading.CancellationToken) =
    counter <- counter + (if token.IsCancellationRequested then 10 else 1)

async {
    run fn
    do! Async.Sleep 10
    return counter
}
|> Async.RunSynchronously
|> _assertEqual 11

╭─[ 107.00ms - stdout ]────────────────────────────────────────────────────────╮
│ 11                                                                           │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
[NbConvertApp] Converting notebook Threading.dib.ipynb to html
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
  validate(nb)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
  return _pygments_highlight(
[NbConvertApp] Writing 278730 bytes to Threading.dib.html

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ # Crypto (Polyglot)                                                          │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/fsharp/Notebooks.dib
#!import ../../lib/fsharp/Testing.dib

── fsharp - import ─────────────────────────────────────────────────────────────
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Asp
NetCore.Html.Abstractions.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.FSharp.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.Formatting.dll"
open System
open System.IO
open System.Text
open Microsoft.DotNet.Interactive.Formatting

── fsharp - import ─────────────────────────────────────────────────────────────
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.FSharp.dll"
open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.dll"
open type Microsoft.DotNet.Interactive.Kernel

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

Formatter.ListExpansionLimit <- 100

── fsharp - import ─────────────────────────────────────────────────────────────
#r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

type AssertExceptionFormatter (ex) =
    member _.Text =
        ex.ToString()
            .Replace("32m", "<span style=\"color: green;\">")
            .Replace("36m", "</span>")
            .Replace("31m", "<span style=\"color: red;\">")
            .Replace("\n", "<br/>\n")


Formatter.Register<AssertExceptionFormatter> ((fun (x : 
AssertExceptionFormatter) -> x.Text), "text/html")

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

let inline __expect fn log expected actual =
    if log then printfn $"{actual.ToDisplayString ()}"
    try
        "Testing.__expect" |> fn actual expected
    with :? Expecto.AssertException as ex ->
        AssertExceptionFormatter(ex).Display () |> ignore
        failwith (ex.GetType().FullName)

let inline __contains log expected actual = __expect Expecto.Expect.contains log
expected actual
let inline _contains expected actual = __contains true expected actual

let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
expected actual
let inline _assertEqual expected actual = __assertEqual true expected actual

let inline __isGreaterThan log expected actual = __expect 
Expecto.Expect.isGreaterThan log ex...

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

let inline __isBetween log a b actual =
    let inline isBetween actual (a, b) _ =
        __isGreaterThanOrEqual log a actual
        __isLessThanOrEqual log b actual
    __expect isBetween log (a, b) actual
let inline _isBetween a b actual = __isBetween true a b actual

── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/spiral/common.fsx
#!import ../../lib/spiral/date_time.fsx
#!import ../../lib/fsharp/Common.fs

── fsharp - import ─────────────────────────────────────────────────────────────
type [[<Struct>]] US0 =
    | US0_0
    | US0_1
and [[<Struct>]] US1 =
    | US1_0
    | US1_1 of f1_0 : US0
let rec method0 (v0 : (unit -> unit)) : (unit -> unit) =
    v0
and closure0 () (v0 : (unit -> unit)) : System.IDisposable =
    let mutable result = None
    #if FABLE_COMPILER_RUST && !WASM
    let v1 : (unit -> unit) = method0(v0)
    let v2 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v1()" }
    v2
    #endif
    #if FABLE_COMPILER_RUST && WASM
    let v3 : (unit -> unit) = method0(v0)
    let v4 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v3()" }
    v4
    #endif
    #if !FABLE_COMPILER && !F...

── fsharp - import ─────────────────────────────────────────────────────────────
let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
    let v2 : string = v0.ToString ()
    let v3 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
    let v4 : System.Guid = System.Guid $"{v3}{v2.[[v3.Length..]]}"
    v4
and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
    closure1(v0)
and closure5 (v0 : string, v1 : string) (v2 : string) : string =
    let v3 : string = v2.Replace (v0, v1)
    v3
and closure4 (v0 : string) (v1 : string) : (string -> string) =
    closure5(v0, v1)
and closure3 () (v0 : string) : (string -> (string -> string)) =
    closure4(v0)
and method0 () : (string -> (string -> (string -> string))) =
    closure3()
and closure2 () (v0 : System.Guid) : System.DateTime =
  ...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Common =

#if !WASM && !FABLE_COMPILER
    let Date_time = {|
        new_guid_from_date_time =
#if !INTERACTIVE
            Date_time.new_guid_from_date_time
#else
            new_guid_from_date_time
#endif
    |}
#endif

    let nl = System.Environment.NewLine
    let q = @""""

    let inline cons head tail = head :: tail

    module String =
        let inline contains (value : string) (input : string) =
            input.Contains value

        let inline endsWith (value : string) (input : string) =
            input.EndsWith value

        let inline padLeft totalWidth paddingChar (input : string) =
            input.PadLeft (totalWidth, paddingChar)

        let inline replace (oldVa...

── fsharp ──────────────────────────────────────────────────────────────────────
open Common

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## hashText                                                                  │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let hashText (input : string) =
    use sha256 = System.Security.Cryptography.SHA256.Create ()
    input
    |> System.Text.Encoding.UTF8.GetBytes
    |> sha256.ComputeHash
    |> Array.map (fun b -> b.ToString "x2")
    |> String.concat ""

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

""
|> hashText
|> _assertEqual 
"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"

╭─[ 33.30ms - stdout ]─────────────────────────────────────────────────────────╮
│ e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855             │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

" "
|> hashText
|> _assertEqual 
"36a9e7f1c95b82ffb99743e0c5c4ce95d83c9a430aac59f84ef3cbfab6145068"

╭─[ 9.82ms - stdout ]──────────────────────────────────────────────────────────╮
│ 36a9e7f1c95b82ffb99743e0c5c4ce95d83c9a430aac59f84ef3cbfab6145068             │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
[NbConvertApp] Converting notebook Crypto.dib.ipynb to html
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
  validate(nb)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
  return _pygments_highlight(
[NbConvertApp] Writing 277551 bytes to Crypto.dib.html

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ # FileSystem (Polyglot)                                                      │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/fsharp/Notebooks.dib
#!import ../../lib/fsharp/Testing.dib

── fsharp - import ─────────────────────────────────────────────────────────────
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Asp
NetCore.Html.Abstractions.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.FSharp.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.Formatting.dll"
open System
open System.IO
open System.Text
open Microsoft.DotNet.Interactive.Formatting

── fsharp - import ─────────────────────────────────────────────────────────────
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.FSharp.dll"
open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.dll"
open type Microsoft.DotNet.Interactive.Kernel

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

Formatter.ListExpansionLimit <- 100

── fsharp - import ─────────────────────────────────────────────────────────────
#r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

type AssertExceptionFormatter (ex) =
    member _.Text =
        ex.ToString()
            .Replace("32m", "<span style=\"color: green;\">")
            .Replace("36m", "</span>")
            .Replace("31m", "<span style=\"color: red;\">")
            .Replace("\n", "<br/>\n")


Formatter.Register<AssertExceptionFormatter> ((fun (x : 
AssertExceptionFormatter) -> x.Text), "text/html")

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

let inline __expect fn log expected actual =
    if log then printfn $"{actual.ToDisplayString ()}"
    try
        "Testing.__expect" |> fn actual expected
    with :? Expecto.AssertException as ex ->
        AssertExceptionFormatter(ex).Display () |> ignore
        failwith (ex.GetType().FullName)

let inline __contains log expected actual = __expect Expecto.Expect.contains log
expected actual
let inline _contains expected actual = __contains true expected actual

let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
expected actual
let inline _assertEqual expected actual = __assertEqual true expected actual

let inline __isGreaterThan log expected actual = __expect 
Expecto.Expect.isGreaterThan log ex...

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

let inline __isBetween log a b actual =
    let inline isBetween actual (a, b) _ =
        __isGreaterThanOrEqual log a actual
        __isLessThanOrEqual log b actual
    __expect isBetween log (a, b) actual
let inline _isBetween a b actual = __isBetween true a b actual

── fsharp ──────────────────────────────────────────────────────────────────────
#r 
@"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
dard2.1/FSharp.Control.AsyncSeq.dll"
#r 
@"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
0/System.Reactive.dll"
#r 
@"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/
netstandard2.0/System.Reactive.Linq.dll"
#r 
@"../../../../../../../.nuget/packages/argu/6.2.2/lib/netstandard2.0/Argu.dll"
#r 
@"../../../../../../../.nuget/packages/system.commandline/2.0.0-beta4.22272.1/li
b/net6.0/System.CommandLine.dll"

── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/spiral/common.fsx
#!import ../../lib/spiral/date_time.fsx
#!import ../../lib/spiral/file_system.fsx
#!import ../../lib/fsharp/Common.fs
#!import ../../lib/fsharp/CommonFSharp.fs
#!import ../../lib/fsharp/Async.fs
#!import ../../lib/fsharp/AsyncSeq.fs
#!import ../../lib/fsharp/Runtime.fs

── fsharp - import ─────────────────────────────────────────────────────────────
type [[<Struct>]] US0 =
    | US0_0
    | US0_1
and [[<Struct>]] US1 =
    | US1_0
    | US1_1 of f1_0 : US0
let rec method0 (v0 : (unit -> unit)) : (unit -> unit) =
    v0
and closure0 () (v0 : (unit -> unit)) : System.IDisposable =
    let mutable result = None
    #if FABLE_COMPILER_RUST && !WASM
    let v1 : (unit -> unit) = method0(v0)
    let v2 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v1()" }
    v2
    #endif
    #if FABLE_COMPILER_RUST && WASM
    let v3 : (unit -> unit) = method0(v0)
    let v4 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v3()" }
    v4
    #endif
    #if !FABLE_COMPILER && !F...

── fsharp - import ─────────────────────────────────────────────────────────────
let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
    let v2 : string = v0.ToString ()
    let v3 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
    let v4 : System.Guid = System.Guid $"{v3}{v2.[[v3.Length..]]}"
    v4
and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
    closure1(v0)
and closure5 (v0 : string, v1 : string) (v2 : string) : string =
    let v3 : string = v2.Replace (v0, v1)
    v3
and closure4 (v0 : string) (v1 : string) : (string -> string) =
    closure5(v0, v1)
and closure3 () (v0 : string) : (string -> (string -> string)) =
    closure4(v0)
and method0 () : (string -> (string -> (string -> string))) =
    closure3()
and closure2 () (v0 : System.Guid) : System.DateTime =
  ...

── fsharp - import ─────────────────────────────────────────────────────────────
let rec closure0 () () : string =
    let v0 : string = 
System.Reflection.Assembly.GetEntryAssembly().GetName().Name
    let v1 : (unit -> string) = System.IO.Path.GetTempPath
    let v2 : string = v1 ()
    let v3 : string = $"{v0}"
    let v4 : string = System.IO.Path.Combine (v2, v3)
    let v5 : System.DateTime = System.DateTime.Now
    let v6 : System.Guid = System.Guid.NewGuid ()
    let v7 : string = v6.ToString ()
    let v8 : string = v5.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
    let v9 : System.Guid = System.Guid $"{v8}{v7.[[v8.Length..]]}"
    let v10 : string = v9.ToString ()
    let v11 : string = System.IO.Path.Combine (v4, v10)
    v11
let v0 : (unit -> string) = closure0()
let create_temp_directory_name x = v0 x
()


── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Common =

#if !WASM && !FABLE_COMPILER
    let Date_time = {|
        new_guid_from_date_time =
#if !INTERACTIVE
            Date_time.new_guid_from_date_time
#else
            new_guid_from_date_time
#endif
    |}
#endif

    let nl = System.Environment.NewLine
    let q = @""""

    let inline cons head tail = head :: tail

    module String =
        let inline contains (value : string) (input : string) =
            input.Contains value

        let inline endsWith (value : string) (input : string) =
            input.EndsWith value

        let inline padLeft totalWidth paddingChar (input : string) =
            input.PadLeft (totalWidth, paddingChar)

        let inline replace (oldVa...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module CommonFSharp =

    open Common

    /// ## getUnionCaseName

    let inline getUnionCaseName<'T> (x: 'T) =
        match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with
        | case, _ -> case.Name


── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Async =

    open Common

    /// ## choice

    let inline choice asyncs = async {
        let e = Event<_> ()
        use cts = new System.Threading.CancellationTokenSource ()
        let fn =
            asyncs
            |> Seq.map (fun a -> async {
                let! x = a
                e.Trigger x
            })
            |> Async.Parallel
            |> Async.Ignore
        Async.Start (fn, cts.Token)
        let! result = Async.AwaitEvent e.Publish
        cts.Cancel ()
        return result
    }

    /// ## map

    let inline map fn a = async {
        let! x = a
        return fn x
    }

    /// ## catch

    let inline catch a =
        a
        |> Async.Catch
        ...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module AsyncSeq =

    open Common

    /// ## subscribeEvent

    let inline subscribeEvent (event: IEvent<'H, 'A>) map =
        let observable = System.Reactive.Linq.Observable.FromEventPattern<'H, 
'A>(event.AddHandler, event.RemoveHandler)
        System.Reactive.Linq.Observable.Select (observable, fun event -> map 
event.EventArgs)
        |> FSharp.Control.AsyncSeq.ofObservableBuffered

    let subscribeToken (token : System.Threading.CancellationToken) =
        let tcs = new System.Threading.Tasks.TaskCompletionSource ()
        System.Action tcs.SetResult |> token.Register |> ignore
        let start = System.DateTime.Now.Ticks
        FSharp.Control.AsyncSeq.unfoldAsync
            (fun (...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Runtime =

    open Common

    /// ## isWindows

    let isWindows =
        fun () ->
            System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform
                System.Runtime.InteropServices.OSPlatform.Windows
        |> memoize

    /// ## getExecutableSuffix

    let inline getExecutableSuffix () =
        if isWindows ()
        then ".exe"
        else ""

    /// ## splitCommand

    type private CommandParseStep =
        | Start
        | Path of quoted: bool
        | Arguments

    let splitCommand (command: string) =
        let rec loop (path, args) chars step =
            match chars, step with
            | ('"' | '\'') :: tail, _ when path = "" -> loop (pat...

── fsharp ──────────────────────────────────────────────────────────────────────
let File_system = {|
    create_temp_directory_name =
#if !INTERACTIVE
        File_system.create_temp_directory_name
#else
        create_temp_directory_name
#endif
|}

── fsharp ──────────────────────────────────────────────────────────────────────
open Common

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## Operators                                                                 │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
module Operators =
    let inline (</>) a b =
        System.IO.Path.Combine (a, b)

── fsharp ──────────────────────────────────────────────────────────────────────
open Operators

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## createTempDirectory                                                       │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline createTempDirectory () =
    let tempFolder = File_system.create_temp_directory_name ()
    let result = System.IO.Directory.CreateDirectory tempFolder

    if not result.Exists then
        let getLocals () =
            $"tempFolder: {tempFolder} / result: {({|
                Exists = result.Exists
                CreationTime = result.CreationTime
            |})} {getLocals ()}"

        trace Debug (fun () -> "createTempDirectory") getLocals

    tempFolder

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let tempDirectory = createTempDirectory ()

Directory.Exists tempDirectory
|> _assertEqual true

╭─[ 25.55ms - stdout ]─────────────────────────────────────────────────────────╮
│ True                                                                         │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## getSourceDirectory                                                        │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let getSourceDirectory =
    fun () -> __SOURCE_DIRECTORY__
    |> memoize

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

getSourceDirectory ()
|> System.IO.DirectoryInfo
|> fun dir -> dir.Name
|> _assertEqual "fsharp"

╭─[ 22.24ms - stdout ]─────────────────────────────────────────────────────────╮
│ fsharp                                                                       │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## findParent                                                                │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline findParent name isFile rootDir =
    let rec loop dir =
        if dir </> name |> (if isFile then System.IO.File.Exists else 
System.IO.Directory.Exists)
        then dir
        else
            dir
            |> System.IO.Directory.GetParent
            |> function
                | null -> failwith $"""No parent for {if isFile then "file" else
"dir"} '{name}' at '{rootDir}'"""
                | parent -> parent.FullName |> loop
    loop rootDir

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

getSourceDirectory () |> findParent ".paket" false
|> System.IO.DirectoryInfo
|> fun dir -> dir.Name
|> _assertEqual "polyglot"

╭─[ 50.09ms - stdout ]─────────────────────────────────────────────────────────╮
│ polyglot                                                                     │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

getSourceDirectory () |> findParent "paket.dependencies" true
|> System.IO.DirectoryInfo
|> fun dir -> dir.Name
|> _assertEqual "polyglot"

╭─[ 13.31ms - stdout ]─────────────────────────────────────────────────────────╮
│ polyglot                                                                     │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## readAllTextAsync                                                          │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline readAllTextAsync path =
    path |> System.IO.File.ReadAllTextAsync |> Async.AwaitTask

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## fileExistsContent                                                         │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline fileExistsContent path content = async {
    if path |> System.IO.File.Exists |> not
    then return false
    else
        let! existingContent = path |> readAllTextAsync
        return content = existingContent
}

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## writeAllTextAsync                                                         │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline writeAllTextAsync path contents =
    System.IO.File.WriteAllTextAsync (path, contents) |> Async.AwaitTask

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## writeAllTextExists                                                        │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline writeAllTextExists path contents = async {
    let! exists = contents |> fileExistsContent path
    if not exists
    then do! contents |> writeAllTextAsync path
}

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## waitForFileAccess                                                         │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline waitForFileAccess access path =
    let fileAccess, fileShare =
        access
        |> Option.defaultValue (System.IO.FileAccess.ReadWrite, 
System.IO.FileShare.Read)

    let rec loop retry = async {
        try
            use _ = new System.IO.FileStream (
                path,
                System.IO.FileMode.Open,
                fileAccess,
                fileShare
            )
            return retry
        with ex ->
            if retry % 100 = 0 then
                let getLocals () = $"path: {path |> System.IO.Path.GetFileName} 
/ ex: {ex |> formatException} / {getLocals ()}"
                trace Debug (fun () -> "waitForFileAccess") getLocals
            do! Async.Sleep 10
            return! loop (retry + 1)
    }
    loop 0

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let tempFolder = createTempDirectory ()
let path = tempFolder </> "test.txt"

let inline lockFile () = async {
    trace Debug (fun () -> "_1") getLocals
    use stream = new System.IO.FileStream (
        path,
        System.IO.FileMode.Open,
        System.IO.FileAccess.ReadWrite,
        System.IO.FileShare.None
    )
    trace Debug (fun () -> "_2") getLocals
    do! Async.Sleep 2000
    trace Debug (fun () -> "_3") getLocals
    stream.Seek (0L, SeekOrigin.Begin) |> ignore
    trace Debug (fun () -> "_4") getLocals
    stream.WriteByte 49uy
    trace Debug (fun () -> "_5") getLocals
    stream.Flush ()
    trace Debug (fun () -> "_6") getLocals
}

async {
    trace Debug (fun () -> "1") getLocals
    do! "0" |> writeAllTextAsync path
    trace Debug (fun () -> "2") getLocals
    let! child = lockFile () |> Async.StartChild
    trace Debug (fun () -> "3") getLocals
    do! Async.Sleep 1
    trace Debug (fun () -> "4") getLocals
    let! retries = path |> waitForFileAccess None
    trace Debug (fun () -> "5") getLocals
    let! text = path |> readAllTextAsync
    trace Debug (fun () -> "6") getLocals
    do! child
    trace Debug (fun () -> "7") getLocals
    return retries, text
}
|> Async.runWithTimeout 3000
|> function
    | Some (retries, text) ->
        retries
        |> _isBetween
            (if Runtime.isWindows () then 100 else 100)
            (if Runtime.isWindows () then 150 else 200)

        text |> _assertEqual "1"

        true
    | _ -> false
|> _assertEqual true

╭─[ 2.26s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:00:00 #1 [Debug] 1                                                        │
│ 00:00:00 #2 [Debug] 2                                                        │
│ 00:00:00 #3 [Debug] _1                                                       │
│ 00:00:00 #4 [Debug] 3                                                        │
│ 00:00:00 #5 [Debug] _2                                                       │
│ 00:00:00 #6 [Debug] 4                                                        │
│ 00:00:00 #7 [Debug] waitForFileAccess / path: test.txt / ex:                 │
│ System.IO.IOException: The process cannot access the file                    │
│ '/tmp/dotnet-repl/20240329-2202-1776-7615-724767b7e464/test.txt' because it  │
│ is being used by another process.                                            │
│ 00:00:01 #8 [Debug] waitForFileAccess / path: test.txt / ex:                 │
│ System.IO.IOException: The process cannot access the file                    │
│ '/tmp/dotnet-repl/20240329-2202-1776-7615-724767b7e464/test.txt' because it  │
│ is being used by another process.                                            │
│ 00:00:02 #9 [Debug] _3                                                       │
│ 00:00:02 #10 [Debug] _4                                                      │
│ 00:00:02 #11 [Debug] _5                                                      │
│ 00:00:02 #12 [Debug] _6                                                      │
│ 00:00:02 #13 [Debug] 5                                                       │
│ 00:00:02 #14 [Debug] 6                                                       │
│ 00:00:02 #15 [Debug] 7                                                       │
│ 167                                                                          │
│ 167                                                                          │
│ 167                                                                          │
│ 1                                                                            │
│ True                                                                         │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## readAllTextRetryAsync                                                     │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline readAllTextRetryAsync fullPath =
    let rec loop retry = async {
        try
            if retry > 0
            then do!
                fullPath
                |> waitForFileAccess (Some (
                    System.IO.FileAccess.Read,
                    System.IO.FileShare.Read
                ))
                |> Async.runWithTimeoutAsync 1000
                |> Async.Ignore
            return! fullPath |> readAllTextAsync |> Async.map Some
        with ex ->
            let getLocals () = $"retry: {retry} / ex: {ex |> formatException} / 
{getLocals ()}"
            trace Debug (fun () -> $"watchWithFilter / readContent") getLocals
            if retry = 0
            then return! loop (retry + 1)
            else return None
    }
    loop 0

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## deleteDirectoryAsync                                                      │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline deleteDirectoryAsync path =
    let rec loop retry = async {
        try
            System.IO.Directory.Delete (path, true)
            return retry
        with ex ->
            if retry % 100 = 0 then
                let getLocals () = $"path: {path |> System.IO.Path.GetFileName} 
/ ex: {ex |> formatException} / {getLocals ()}"
                trace Debug (fun () -> "deleteDirectoryAsync") getLocals
            do! Async.Sleep 10
            return! loop (retry + 1)
    }
    loop 0

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let tempFolder = createTempDirectory ()
let path = tempFolder </> "test"

let inline lockDirectory () = async {
    trace Debug (fun () -> "_1") getLocals
    System.IO.File.WriteAllText (path </> "test.txt", "0")
    use _ = new System.IO.FileStream (
        path </> "test.txt",
        System.IO.FileMode.Open,
        System.IO.FileAccess.ReadWrite,
        System.IO.FileShare.None
    )
    trace Debug (fun () -> "_2") getLocals
    do! Async.Sleep 2000
    trace Debug (fun () -> "_3") getLocals
}

async {
    trace Debug (fun () -> "1") getLocals
    Directory.CreateDirectory path |> ignore
    trace Debug (fun () -> "2") getLocals
    let! child = lockDirectory () |> Async.StartChild
    trace Debug (fun () -> "3") getLocals
    do! Async.Sleep 60
    trace Debug (fun () -> "4") getLocals
    let! retries = deleteDirectoryAsync path
    trace Debug (fun () -> "5") getLocals
    do! child
    trace Debug (fun () -> "6") getLocals
    return retries
}
|> Async.runWithTimeout 3000
|> function
    | Some retries ->
        retries
        |> _isBetween
            (if Runtime.isWindows () then 100 else 0)
            (if Runtime.isWindows () then 150 else 0)

        true
    | _ -> false
|> _assertEqual true

╭─[ 2.21s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:00:02 #16 [Debug] 1                                                       │
│ 00:00:02 #17 [Debug] 2                                                       │
│ 00:00:02 #18 [Debug] 3                                                       │
│ 00:00:02 #19 [Debug] _1                                                      │
│ 00:00:02 #20 [Debug] _2                                                      │
│ 00:00:02 #21 [Debug] 4                                                       │
│ 00:00:02 #22 [Debug] 5                                                       │
│ 00:00:04 #23 [Debug] _3                                                      │
│ 00:00:04 #24 [Debug] 6                                                       │
│ 0                                                                            │
│ 0                                                                            │
│ 0                                                                            │
│ True                                                                         │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## deleteFileAsync                                                           │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline deleteFileAsync path =
    let rec loop retry = async {
        try
            System.IO.File.Delete path
            return retry
        with ex ->
            if retry % 100 = 0 then
                let getLocals () = $"path: {path |> System.IO.Path.GetFileName} 
/ ex: {ex |> formatException} / {getLocals ()}"
                trace Warning (fun () -> "deleteFileAsync") getLocals
            do! Async.Sleep 10
            return! loop (retry + 1)
    }
    loop 0

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let tempFolder = createTempDirectory ()
let path = tempFolder </> "test.txt"

let inline lockFile () = async {
    trace Debug (fun () -> "_1") getLocals
    use _ = new System.IO.FileStream (
        path,
        System.IO.FileMode.Open,
        System.IO.FileAccess.ReadWrite,
        System.IO.FileShare.None
    )
    trace Debug (fun () -> "_2") getLocals
    do! Async.Sleep 2000
    trace Debug (fun () -> "_3") getLocals
}

async {
    trace Debug (fun () -> "1") getLocals
    do! "0" |> writeAllTextAsync path
    trace Debug (fun () -> "2") getLocals
    let! child = lockFile () |> Async.StartChild
    trace Debug (fun () -> "3") getLocals
    do! Async.Sleep 1
    trace Debug (fun () -> "4") getLocals
    let! retries = deleteFileAsync path
    trace Debug (fun () -> "5") getLocals
    do! child
    trace Debug (fun () -> "6") getLocals
    return retries
}
|> Async.runWithTimeout 3000
|> function
    | Some retries ->
        retries
        |> _isBetween
            (if Runtime.isWindows () then 100 else 0)
            (if Runtime.isWindows () then 150 else 0)

        true
    | _ -> false
|> _assertEqual true

╭─[ 2.14s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:00:04 #25 [Debug] 1                                                       │
│ 00:00:04 #26 [Debug] 2                                                       │
│ 00:00:04 #27 [Debug] 3                                                       │
│ 00:00:04 #28 [Debug] _1                                                      │
│ 00:00:04 #29 [Debug] _2                                                      │
│ 00:00:04 #30 [Debug] 4                                                       │
│ 00:00:04 #31 [Debug] 5                                                       │
│ 00:00:06 #32 [Debug] _3                                                      │
│ 00:00:06 #33 [Debug] 6                                                       │
│ 0                                                                            │
│ 0                                                                            │
│ 0                                                                            │
│ True                                                                         │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## moveFileAsync                                                             │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline moveFileAsync newPath oldPath =
    let rec loop retry = async {
        try
            System.IO.File.Move (oldPath, newPath)
            return retry
        with ex ->
            if retry % 100 = 0 then
                let getLocals () =
                    $"oldPath: {oldPath |> System.IO.Path.GetFileName} / 
newPath: {newPath |> System.IO.Path.GetFileName} / ex: {ex |> formatException} /
{getLocals ()}"
                trace Warning (fun () -> "moveFileAsync") getLocals
            do! Async.Sleep 10
            return! loop (retry + 1)
    }
    loop 0

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let tempFolder = createTempDirectory ()
let path = tempFolder </> "test.txt"
let newPath = tempFolder </> "test2.txt"

let inline lockFile () = async {
    trace Debug (fun () -> "_1") getLocals
    use _ = new System.IO.FileStream (
        path,
        System.IO.FileMode.Open,
        System.IO.FileAccess.ReadWrite,
        System.IO.FileShare.None
    )
    trace Debug (fun () -> "_2") getLocals
    do! Async.Sleep 2000
    trace Debug (fun () -> "_3") getLocals
}

async {
    trace Debug (fun () -> "1") getLocals
    do! "0" |> writeAllTextAsync path
    trace Debug (fun () -> "2") getLocals
    let! child = lockFile () |> Async.StartChild
    trace Debug (fun () -> "3") getLocals
    do! Async.Sleep 1
    trace Debug (fun () -> "4") getLocals
    let! retries1 = path |> moveFileAsync newPath
    trace Debug (fun () -> "5") getLocals
    let! retries2 = newPath |> waitForFileAccess None
    trace Debug (fun () -> "6") getLocals
    let! text = newPath |> readAllTextAsync
    trace Debug (fun () -> "7") getLocals
    do! child
    trace Debug (fun () -> "8") getLocals
    return retries1, retries2, text
}
|> Async.runWithTimeout 3000
|> function
    | Some (retries1, retries2, text) ->
        retries1
        |> _isBetween
            (if Runtime.isWindows () then 100 else 0)
            (if Runtime.isWindows () then 150 else 0)

        retries2
        |> _isBetween
            (if Runtime.isWindows () then 0 else 100)
            (if Runtime.isWindows () then 0 else 200)

        text |> _assertEqual "0"

        true
    | _ -> false
|> _assertEqual true

╭─[ 2.17s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:00:06 #34 [Debug] 1                                                       │
│ 00:00:06 #35 [Debug] 2                                                       │
│ 00:00:06 #36 [Debug] 3                                                       │
│ 00:00:06 #37 [Debug] _1                                                      │
│ 00:00:06 #38 [Debug] _2                                                      │
│ 00:00:06 #39 [Debug] 4                                                       │
│ 00:00:06 #40 [Debug] 5                                                       │
│ 00:00:06 #41 [Debug] waitForFileAccess / path: test2.txt / ex:               │
│ System.IO.IOException: The process cannot access the file                    │
│ '/tmp/dotnet-repl/20240329-2202-2467-6774-6d8af9f2b4af/test2.txt' because it │
│ is being used by another process.                                            │
│ 00:00:08 #42 [Debug] waitForFileAccess / path: test2.txt / ex:               │
│ System.IO.IOException: The process cannot access the file                    │
│ '/tmp/dotnet-repl/20240329-2202-2467-6774-6d8af9f2b4af/test2.txt' because it │
│ is being used by another process.                                            │
│ 00:00:08 #43 [Debug] _3                                                      │
│ 00:00:08 #44 [Debug] 6                                                       │
│ 00:00:08 #45 [Debug] 7                                                       │
│ 00:00:08 #46 [Debug] 8                                                       │
│ 0                                                                            │
│ 0                                                                            │
│ 0                                                                            │
│ 167                                                                          │
│ 167                                                                          │
│ 167                                                                          │
│ 0                                                                            │
│ True                                                                         │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## watchDirectory                                                            │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
[[<RequireQualifiedAccess>]]
type FileSystemChangeType =
    | Failure
    | Changed
    | Created
    | Deleted
    | Renamed

[[<RequireQualifiedAccess>]]
type FileSystemChange =
    | Failure of exn: exn
    | Changed of path: string * content: string option
    | Created of path: string * content: string option
    | Deleted of path: string
    | Renamed of oldPath: string * (string * string option)


let inline watchDirectoryWithFilter filter shouldReadContent path =
    let fullPath = path |> System.IO.Path.GetFullPath
    let getLocals () = $"filter: {filter} / {getLocals ()}"

    let watcher =
        new System.IO.FileSystemWatcher (
            Path = fullPath,
            NotifyFilter = filter,
            EnableRaisingEvents = true,
            IncludeSubdirectories = true
        )

    let inline getEventPath (path : string) =
        path |> String.trim |> String.replace fullPath "" |> String.trimStart 
[[| '/'; '\\' |]]

    let inline ticks () =
        System.DateTime.UtcNow.Ticks

    let changedStream =
        AsyncSeq.subscribeEvent
            watcher.Changed
            (fun event ->
                ticks (),
                [[ FileSystemChange.Changed (getEventPath event.FullPath, None) 
]]
            )

    let deletedStream =
        AsyncSeq.subscribeEvent
            watcher.Deleted
            (fun event ->
                ticks (),
                [[ FileSystemChange.Deleted (getEventPath event.FullPath) ]]
            )

    let createdStream =
        AsyncSeq.subscribeEvent
            watcher.Created
            (fun event ->
                let path = getEventPath event.FullPath
                ticks (), [[
                    FileSystemChange.Created (path, None)
                    if Runtime.isWindows () then
                        FileSystemChange.Changed (path, None)
                ]])

    let renamedStream =
        AsyncSeq.subscribeEvent
            watcher.Renamed
            (fun event ->
                ticks (), [[
                    FileSystemChange.Renamed (
                        getEventPath event.OldFullPath,
                        (getEventPath event.FullPath, None)
                    )
                ]]
            )

    let failureStream =
        AsyncSeq.subscribeEvent
            watcher.Error
            (fun event -> ticks (), [[ FileSystemChange.Failure 
(event.GetException ()) ]])

    let stream =
        [[
            changedStream
            deletedStream
            createdStream
            renamedStream
            failureStream
        ]]
        |> FSharp.Control.AsyncSeq.mergeAll
        |> FSharp.Control.AsyncSeq.map (fun (t, events) ->
            events
            |> List.fold
                (fun (i, events) event ->
                    i + 1L,
                    (t + i, event) :: events)
                (0L, [[]])
            |> snd
            |> List.rev
        )
        |> FSharp.Control.AsyncSeq.concatSeq
        |> FSharp.Control.AsyncSeq.mapAsyncParallel (fun (t, event) -> async {
            match shouldReadContent event, event with
            | true, FileSystemChange.Changed (path, _) ->
                do! Async.Sleep 5
                let! content = fullPath </> path |> readAllTextRetryAsync
                return t, FileSystemChange.Changed (path, content)
            | true, FileSystemChange.Created (path, _) ->
                do! Async.Sleep 5
                let! content = fullPath </> path |> readAllTextRetryAsync
                return t, FileSystemChange.Created (path, content)
            | true, FileSystemChange.Renamed (oldPath, (newPath, _)) ->
                let! content = fullPath </> newPath |> readAllTextRetryAsync
                return t, FileSystemChange.Renamed (oldPath, (newPath, content))
            | _ -> return t, event
        })

    let disposable =
        new_disposable (fun () ->
            trace Debug (fun () -> "watchWithFilter / Disposing watch stream") 
getLocals
            watcher.EnableRaisingEvents <- false
            watcher.Dispose ()
        )

    stream, disposable

let inline watchDirectory path =
    watchDirectoryWithFilter
        (System.IO.NotifyFilters.FileName
        // ||| System.IO.NotifyFilters.DirectoryName
        // ||| System.IO.NotifyFilters.Attributes
        //// ||| System.IO.NotifyFilters.Size
        ||| System.IO.NotifyFilters.LastWrite
        //// ||| System.IO.NotifyFilters.LastAccess
        // ||| System.IO.NotifyFilters.CreationTime
        // ||| System.IO.NotifyFilters.Security
        )
        path

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ### testEventsRaw (test)                                                     │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let inline testEventsRaw
    (watchFn : (_ -> bool) -> string -> FSharp.Control.AsyncSeq<int64 * 
FileSystemChange> * IDisposable)
    write
    =
    let tempDirectory = createTempDirectory ()
    let stream, disposable = watchFn (fun _ -> true) tempDirectory

    let events = System.Collections.Concurrent.ConcurrentBag ()

    let inline iter () =
        stream
        |> FSharp.Control.AsyncSeq.iterAsyncParallel (fun event -> async { 
events.Add event })

    let run = async {
        let! _ = iter () |> Async.StartChild
        do! Async.Sleep 250
        return! write tempDirectory
    }

    try
        run
        |> Async.runWithTimeout 60000
        |> _assertEqual (Some ())
    finally
        disposable.Dispose ()
        deleteDirectoryAsync tempDirectory |> Async.Ignore |> 
Async.RunSynchronously

    let eventsLog =
        events
        |> Seq.toList
        |> List.sortBy fst
        |> List.fold
            (fun (prev, acc) (ticks, event) ->
                ticks, (ticks, (if prev = 0L then 0L else ticks - prev), event) 
:: acc
            )
            (0L, [[]])
        |> snd
        |> List.rev
        |> List.map (fun (diff, n, event) ->
            let text = $"{n} / {diff} / {event}"
            if text |> String.length <= 100
            then text
            else text |> String.substring 0 100 |> String.replace "\n" ""
        )
        |> String.concat "\n"
    let getLocals () = $"eventsLog: \n{eventsLog} / {getLocals ()}"
    trace Debug (fun () -> "testEventsRaw") getLocals

    events
    |> Seq.toList
    |> List.sortBy fst
    |> List.map snd
    |> List.fold
        (fun acc event ->
            match acc, event with
            | FileSystemChange.Changed (lastPath, Some lastContent) as lastEvent
:: acc,
                FileSystemChange.Changed (path, Some content)
                when lastPath = path && content |> String.startsWith lastContent
                ->
                event :: acc
            | _ -> event :: acc
        )
        [[]]
    |> List.rev

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ #### fast (test)                                                             │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let inline write path = async {
    let n = 2

    for i = 1 to n do
        do! $"a{i}" |> writeAllTextAsync (path </> $"file{i}.txt")

    do! Async.Sleep 250

    for i = 1 to n do
        do! $"b{i}" |> writeAllTextAsync (path </> $"file{i}.txt")

    do! Async.Sleep 250

    for i = 1 to n do
        do! path </> $"file{i}.txt" |> moveFileAsync (path </> $"file_{i}.txt") 
|> Async.Ignore

    do! Async.Sleep 250

    for i = 1 to n do
        do! $"c{i}" |> writeAllTextAsync (path </> $"file_{i}.txt")

    do! Async.Sleep 250

    for i = 1 to n do
        do! deleteFileAsync (path </> $"file_{i}.txt") |> Async.Ignore

    do! Async.Sleep 250
}

let inline run () =
    let events = testEventsRaw watchDirectory write

    events
    |> _sequenceEqual [[
        FileSystemChange.Created ("file1.txt", Some "a1")
        FileSystemChange.Changed ("file1.txt", Some "a1")
        FileSystemChange.Created ("file2.txt", Some "a2")
        FileSystemChange.Changed ("file2.txt", Some "a2")

        FileSystemChange.Changed ("file1.txt", Some "b1")
        FileSystemChange.Changed ("file2.txt", Some "b2")

        FileSystemChange.Renamed ("file1.txt", ("file_1.txt", Some "b1"))
        FileSystemChange.Renamed ("file2.txt", ("file_2.txt", Some "b2"))

        FileSystemChange.Changed ("file_1.txt", Some "c1")
        FileSystemChange.Changed ("file_2.txt", Some "c2")

        FileSystemChange.Deleted "file_1.txt"
        FileSystemChange.Deleted "file_2.txt"
    ]]

run
|> retry_fn 3
|> _assertEqual (Some ())

╭─[ 3.35s - stdout ]───────────────────────────────────────────────────────────╮
│ FSharpOption<Unit>                                                           │
│       Value: <null>                                                          │
│ 00:00:13 #47 [Debug] watchWithFilter / Disposing watch stream / filter:      │
│ FileName, LastWrite                                                          │
│ 00:00:13 #48 [Debug] testEventsRaw / eventsLog:                              │
│ 0 / 638473465498834404 / Created ("file1.txt", Some "a1")                    │
│ 11566 / 638473465498845970 / Changed ("file1.txt", Some "a1")                │
│ 2014 / 638473465498847984 / Created ("file2.txt", Some "a2")                 │
│ 43 / 638473465498848027 / Changed ("file2.txt", Some "a2")                   │
│ 2475647 / 638473465501323674 / Changed ("file1.txt", Some "b1")              │
│ 352 / 638473465501324026 / Changed ("file1.txt", Some "b1")                  │
│ 4534 / 638473465501328560 / Changed ("file2.txt", Some "b2")                 │
│ 347 / 638473465501328907 / Changed ("file2.txt", Some "b2")                  │
│ 2559163 / 638473465503888070 / Renamed ("file1.txt", ("file_1.txt", Some     │
│ "b1"))                                                                       │
│ 1083 / 638473465503889153 / Renamed ("file2.txt", ("file_2.txt", Some "b2")) │
│ 2511347 / 638473465506400500 / Changed ("file_1.txt", Some "c1")             │
│ 589 / 638473465506401089 / Changed ("file_1.txt", Some "c1")                 │
│ 4207 / 638473465506405296 / Changed ("file_2.txt", Some "c2")                │
│ 368 / 638473465506405664 / Changed ("file_2.txt", Some "c2")                 │
│ 2537892 / 638473465508943556 / Deleted "file_1.txt"                          │
│ 887 / 638473465508944443 / Deleted "file_2.txt"                              │
│ FSharpList<FileSystemChange>                                                 │
│       - path: file1.txt                                                      │
│         content: FSharpOption<String>                                        │
│           Value: a1                                                          │
│         IsFailure: False                                                     │
│         IsChanged: False                                                     │
│         IsCreated: True                                                      │
│         IsDeleted: False                                                     │
│         IsRenamed: False                                                     │
│       - path: file1.txt                                                      │
│         content: FSharpOption<String>                                        │
│           Value: a1                                                          │
│         IsFailure: False                                                     │
│         IsChanged: True                                                      │
│         IsCreated: False                                                     │
│         IsDeleted: False                                                     │
│         IsRenamed: False                                                     │
│       - path: file2.txt                                                      │
│         content: FSharpOption<String>                                        │
│           Value: a2                                                          │
│         IsFailure: False                                                     │
│         IsChanged: False                                                     │
│         IsCreated: True                                                      │
│         IsDeleted: False                                                     │
│         IsRenamed: False                                                     │
│       - path: file2.txt                                                      │
│         content: FSharpOption<String>                                        │
│           Value: a2                                                          │
│         IsFailure: False                                                     │
│         IsChanged: True                                                      │
│         IsCreated: False                                                     │
│         IsDeleted: False                                                     │
│         IsRenamed: False                                                     │
│       - path: file1.txt                                                      │
│         content: FSharpOption<String>                                        │
│           Value: b1                                                          │
│         IsFailure: False                                                     │
│         IsChanged: True                                                      │
│         IsCreated: False                                                     │
│         IsDeleted: False                                                     │
│         IsRenamed: False                                                     │
│       - path: file2.txt                                                      │
│         content: FSharpOption<String>                                        │
│           Value: b2                                                          │
│         IsFailure: False                                                     │
│         IsChanged: True                                                      │
│         IsCreated: False                                                     │
│         IsDeleted: False                                                     │
│         IsRenamed: False                                                     │
│       - oldPath: file1.txt                                                   │
│         Item2:         - file_1.txt                                          │
│         - FSharpOption<String>                                               │
│             Value: b1                                                        │
│       - IsFailure: False                                                     │
│         IsChanged: False                                                     │
│         IsCreated: False                                                     │
│         IsDeleted: False                                                     │
│         IsRenamed: True                                                      │
│       - oldPath: file2.txt                                                   │
│         Item2:         - file_2.txt                                          │
│         - FSharpOption<String>                                               │
│             Value: b2                                                        │
│       - IsFailure: False                                                     │
│         IsChanged: False                                                     │
│         IsCreated: False                                                     │
│         IsDeleted: False                                                     │
│         IsRenamed: True                                                      │
│       - path: file_1.txt                                                     │
│         content: FSharpOption<String>                                        │
│           Value: c1                                                          │
│         IsFailure: False                                                     │
│         IsChanged: True                                                      │
│         IsCreated: False                                                     │
│         IsDeleted: False                                                     │
│         IsRenamed: False                                                     │
│       - path: file_2.txt                                                     │
│         content: FSharpOption<String>                                        │
│           Value: c2                                                          │
│         IsFailure: False                                                     │
│         IsChanged: True                                                      │
│         IsCreated: False                                                     │
│         IsDeleted: False                                                     │
│         IsRenamed: False                                                     │
│       - path: file_1.txt                                                     │
│         IsFailure: False                                                     │
│         IsChanged: False                                                     │
│         IsCreated: False                                                     │
│         IsDeleted: True                                                      │
│         IsRenamed: False                                                     │
│       - path: file_2.txt                                                     │
│         IsFailure: False                                                     │
│         IsChanged: False                                                     │
│         IsCreated: False                                                     │
│         IsDeleted: True                                                      │
│         IsRenamed: False                                                     │
│ FSharpOption<Unit>                                                           │
│       Value: <null>                                                          │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ #### slow (test)                                                             │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let inline write path = async {
    let n = 2

    let contents =
        [[ 1 .. n ]]
        |> List.map (string >> String.replicate 1_000_000)

    for i = 1 to n do
        do! $"{contents.[[i - 1]]}a" |> writeAllTextAsync (path </> 
$"file{i}.txt")

    do! Async.Sleep 1500

    for i = 1 to n do
        do! $"{contents.[[i - 1]]}b" |> writeAllTextAsync (path </> 
$"file{i}.txt")

    do! Async.Sleep 1500

    for i = 1 to n do
        do! path </> $"file{i}.txt" |> moveFileAsync (path </> $"file_{i}.txt") 
|> Async.Ignore

    do! Async.Sleep 1500

    for i = 1 to n do
        do! $"{contents.[[i - 1]]}c" |> writeAllTextAsync (path </> 
$"file_{i}.txt")

    do! Async.Sleep 1500

    for i = 1 to n do
        do! deleteFileAsync (path </> $"file_{i}.txt") |> Async.Ignore

    do! Async.Sleep 1500
}

let inline run () =
    let events =
        testEventsRaw watchDirectory write
        |> List.map (function
            | FileSystemChange.Changed (path, Some content) ->
                FileSystemChange.Changed (path, content |> Seq.distinct |> 
Seq.map string |> String.concat "" |> Some)
            | FileSystemChange.Created (path, Some content) ->
                FileSystemChange.Created (path, content |> Seq.distinct |> 
Seq.map string |> String.concat "" |> Some)
            | FileSystemChange.Renamed (oldPath, (newPath, Some content)) ->
                FileSystemChange.Renamed (
                    oldPath,
                    (newPath, content |> Seq.distinct |> Seq.map string |> 
String.concat "" |> Some)
                )
            | event -> event
        )

    events
    |> _sequenceEqual [[
        FileSystemChange.Created ("file1.txt", Some "1a")
        FileSystemChange.Changed ("file1.txt", Some "1a")
        FileSystemChange.Created ("file2.txt", Some "2a")
        FileSystemChange.Changed ("file2.txt", Some "2a")

        FileSystemChange.Changed ("file1.txt", Some "1b")
        FileSystemChange.Changed ("file2.txt", Some "2b")

        FileSystemChange.Renamed ("file1.txt", ("file_1.txt", Some "1b"))
        FileSystemChange.Renamed ("file2.txt", ("file_2.txt", Some "2b"))

        FileSystemChange.Changed ("file_1.txt", Some "1c")
        FileSystemChange.Changed ("file_2.txt", Some "2c")

        FileSystemChange.Deleted "file_1.txt"
        FileSystemChange.Deleted "file_2.txt"
    ]]

run
|> retry_fn 5
|> _assertEqual (Some ())

╭─[ 12.42s - stdout ]──────────────────────────────────────────────────────────╮
│ FSharpOption<Unit>                                                           │
│       Value: <null>                                                          │
│ 00:00:23 #49 [Debug] watchWithFilter / Disposing watch stream / filter:      │
│ FileName, LastWrite                                                          │
│ 00:00:25 #50 [Debug] testEventsRaw / eventsLog:                              │
│ 0 / 638473465538537844 / Created  ("file1.txt",   Some                       │
│ "1111111111111111111111111111111111111                                       │
│ 2755 / 638473465538540599 / Changed  ("file1.txt",   Some                    │
│ "1111111111111111111111111111111111                                          │
│ 524 / 638473465538541123 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 36 / 638473465538541159 / Changed  ("file1.txt",   Some                      │
│ "111111111111111111111111111111111111                                        │
│ 72 / 638473465538541231 / Changed  ("file1.txt",   Some                      │
│ "111111111111111111111111111111111111                                        │
│ 13301 / 638473465538554532 / Changed  ("file1.txt",   Some                   │
│ "111111111111111111111111111111111                                           │
│ 8794 / 638473465538563326 / Created  ("file2.txt",   Some                    │
│ "2222222222222222222222222222222222                                          │
│ 153 / 638473465538563479 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 78 / 638473465538563557 / Changed  ("file2.txt",   Some                      │
│ "222222222222222222222222222222222222                                        │
│ 480 / 638473465538564037 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 78 / 638473465538564115 / Changed  ("file2.txt",   Some                      │
│ "222222222222222222222222222222222222                                        │
│ 195 / 638473465538564310 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 193 / 638473465538564503 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 149 / 638473465538564652 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 215 / 638473465538564867 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 84 / 638473465538564951 / Changed  ("file2.txt",   Some                      │
│ "222222222222222222222222222222222222                                        │
│ 975 / 638473465538565926 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 154 / 638473465538566080 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 131 / 638473465538566211 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 403 / 638473465538566614 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 170 / 638473465538566784 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 154 / 638473465538566938 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 753 / 638473465538567691 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 66 / 638473465538567757 / Changed  ("file2.txt",   Some                      │
│ "222222222222222222222222222222222222                                        │
│ 205 / 638473465538567962 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 645 / 638473465538568607 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 174 / 638473465538568781 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 128 / 638473465538568909 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 641 / 638473465538569550 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 152 / 638473465538569702 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 849 / 638473465538570551 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 59 / 638473465538570610 / Changed  ("file2.txt",   Some                      │
│ "222222222222222222222222222222222222                                        │
│ 152 / 638473465538570762 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 902 / 638473465538571664 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 61 / 638473465538571725 / Changed  ("file2.txt",   Some                      │
│ "222222222222222222222222222222222222                                        │
│ 139 / 638473465538571864 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 626 / 638473465538572490 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 33 / 638473465538572523 / Changed  ("file2.txt",   Some                      │
│ "222222222222222222222222222222222222                                        │
│ 143 / 638473465538572666 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 613 / 638473465538573279 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 70 / 638473465538573349 / Changed  ("file2.txt",   Some                      │
│ "222222222222222222222222222222222222                                        │
│ 153 / 638473465538573502 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 1167 / 638473465538574669 / Changed  ("file2.txt",   Some                    │
│ "2222222222222222222222222222222222                                          │
│ 36 / 638473465538574705 / Changed  ("file2.txt",   Some                      │
│ "222222222222222222222222222222222222                                        │
│ 45 / 638473465538574750 / Changed  ("file2.txt",   Some                      │
│ "222222222222222222222222222222222222                                        │
│ 166 / 638473465538574916 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 633 / 638473465538575549 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 167 / 638473465538575716 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 616 / 638473465538576332 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 177 / 638473465538576509 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 608 / 638473465538577117 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 34 / 638473465538577151 / Changed  ("file2.txt",   Some                      │
│ "222222222222222222222222222222222222                                        │
│ 144 / 638473465538577295 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 1331 / 638473465538578626 / Changed  ("file2.txt",   Some                    │
│ "2222222222222222222222222222222222                                          │
│ 71 / 638473465538578697 / Changed  ("file2.txt",   Some                      │
│ "222222222222222222222222222222222222                                        │
│ 35 / 638473465538578732 / Changed  ("file2.txt",   Some                      │
│ "222222222222222222222222222222222222                                        │
│ 162 / 638473465538578894 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 132 / 638473465538579026 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 694 / 638473465538579720 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 60 / 638473465538579780 / Changed  ("file2.txt",   Some                      │
│ "222222222222222222222222222222222222                                        │
│ 6771 / 638473465538586551 / Changed  ("file2.txt",   Some                    │
│ "2222222222222222222222222222222222                                          │
│ 15015999 / 638473465553602550 / Changed  ("file1.txt",   Some                │
│ "111111111111111111111111111111                                              │
│ 251 / 638473465553602801 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 1057 / 638473465553603858 / Changed  ("file1.txt",   Some                    │
│ "1111111111111111111111111111111111                                          │
│ 99 / 638473465553603957 / Changed  ("file1.txt",   Some                      │
│ "111111111111111111111111111111111111                                        │
│ 338 / 638473465553604295 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 53 / 638473465553604348 / Changed  ("file1.txt",   Some                      │
│ "111111111111111111111111111111111111                                        │
│ 345 / 638473465553604693 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 126 / 638473465553604819 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 325 / 638473465553605144 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 139 / 638473465553605283 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 213 / 638473465553605496 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 360 / 638473465553605856 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 503 / 638473465553606359 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 521 / 638473465553606880 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 80 / 638473465553606960 / Changed  ("file1.txt",   Some                      │
│ "111111111111111111111111111111111111                                        │
│ 413 / 638473465553607373 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 36 / 638473465553607409 / Changed  ("file1.txt",   Some                      │
│ "111111111111111111111111111111111111                                        │
│ 131 / 638473465553607540 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 190 / 638473465553607730 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 160 / 638473465553607890 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 105 / 638473465553607995 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 270 / 638473465553608265 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 52 / 638473465553608317 / Changed  ("file1.txt",   Some                      │
│ "111111111111111111111111111111111111                                        │
│ 193 / 638473465553608510 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 45 / 638473465553608555 / Changed  ("file1.txt",   Some                      │
│ "111111111111111111111111111111111111                                        │
│ 281 / 638473465553608836 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 57 / 638473465553608893 / Changed  ("file1.txt",   Some                      │
│ "111111111111111111111111111111111111                                        │
│ 196 / 638473465553609089 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 56 / 638473465553609145 / Changed  ("file1.txt",   Some                      │
│ "111111111111111111111111111111111111                                        │
│ 623 / 638473465553609768 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 192 / 638473465553609960 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 336 / 638473465553610296 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 55 / 638473465553610351 / Changed  ("file1.txt",   Some                      │
│ "111111111111111111111111111111111111                                        │
│ 189 / 638473465553610540 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 49 / 638473465553610589 / Changed  ("file1.txt",   Some                      │
│ "111111111111111111111111111111111111                                        │
│ 317 / 638473465553610906 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 51 / 638473465553610957 / Changed  ("file1.txt",   Some                      │
│ "111111111111111111111111111111111111                                        │
│ 163 / 638473465553611120 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 182 / 638473465553611302 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 46 / 638473465553611348 / Changed  ("file1.txt",   Some                      │
│ "111111111111111111111111111111111111                                        │
│ 327 / 638473465553611675 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 45 / 638473465553611720 / Changed  ("file1.txt",   Some                      │
│ "111111111111111111111111111111111111                                        │
│ 189 / 638473465553611909 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 40 / 638473465553611949 / Changed  ("file1.txt",   Some                      │
│ "111111111111111111111111111111111111                                        │
│ 300 / 638473465553612249 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 50 / 638473465553612299 / Changed  ("file1.txt",   Some                      │
│ "111111111111111111111111111111111111                                        │
│ 193 / 638473465553612492 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 313 / 638473465553612805 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 43 / 638473465553612848 / Changed  ("file1.txt",   Some                      │
│ "111111111111111111111111111111111111                                        │
│ 233 / 638473465553613081 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 332 / 638473465553613413 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 268 / 638473465553613681 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 52 / 638473465553613733 / Changed  ("file1.txt",   Some                      │
│ "111111111111111111111111111111111111                                        │
│ 184 / 638473465553613917 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 135 / 638473465553614052 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 328 / 638473465553614380 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 125 / 638473465553614505 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 192 / 638473465553614697 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 49 / 638473465553614746 / Changed  ("file1.txt",   Some                      │
│ "111111111111111111111111111111111111                                        │
│ 273 / 638473465553615019 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 45 / 638473465553615064 / Changed  ("file1.txt",   Some                      │
│ "111111111111111111111111111111111111                                        │
│ 275 / 638473465553615339 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 37 / 638473465553615376 / Changed  ("file1.txt",   Some                      │
│ "111111111111111111111111111111111111                                        │
│ 287 / 638473465553615663 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 44 / 638473465553615707 / Changed  ("file1.txt",   Some                      │
│ "111111111111111111111111111111111111                                        │
│ 245 / 638473465553615952 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 134 / 638473465553616086 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 144 / 638473465553616230 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 229 / 638473465553616459 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 41 / 638473465553616500 / Changed  ("file1.txt",   Some                      │
│ "111111111111111111111111111111111111                                        │
│ 243 / 638473465553616743 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 135 / 638473465553616878 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 145 / 638473465553617023 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 94 / 638473465553617117 / Changed  ("file1.txt",   Some                      │
│ "111111111111111111111111111111111111                                        │
│ 231 / 638473465553617348 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 40 / 638473465553617388 / Changed  ("file1.txt",   Some                      │
│ "111111111111111111111111111111111111                                        │
│ 360 / 638473465553617748 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 179 / 638473465553617927 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 208 / 638473465553618135 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 44 / 638473465553618179 / Changed  ("file1.txt",   Some                      │
│ "111111111111111111111111111111111111                                        │
│ 245 / 638473465553618424 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 126 / 638473465553618550 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 195 / 638473465553618745 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 371 / 638473465553619116 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 166 / 638473465553619282 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 96 / 638473465553619378 / Changed  ("file1.txt",   Some                      │
│ "111111111111111111111111111111111111                                        │
│ 251 / 638473465553619629 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 153 / 638473465553619782 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 149 / 638473465553619931 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 204 / 638473465553620135 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 41 / 638473465553620176 / Changed  ("file1.txt",   Some                      │
│ "111111111111111111111111111111111111                                        │
│ 240 / 638473465553620416 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 135 / 638473465553620551 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 142 / 638473465553620693 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 149 / 638473465553620842 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 224 / 638473465553621066 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 50 / 638473465553621116 / Changed  ("file1.txt",   Some                      │
│ "111111111111111111111111111111111111                                        │
│ 265 / 638473465553621381 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 275 / 638473465553621656 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 258 / 638473465553621914 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 110 / 638473465553622024 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 251 / 638473465553622275 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 39 / 638473465553622314 / Changed  ("file1.txt",   Some                      │
│ "111111111111111111111111111111111111                                        │
│ 255 / 638473465553622569 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 208 / 638473465553622777 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 105 / 638473465553622882 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 156 / 638473465553623038 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 137 / 638473465553623175 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 148 / 638473465553623323 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 300 / 638473465553623623 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 210 / 638473465553623833 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 151 / 638473465553623984 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 148 / 638473465553624132 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 149 / 638473465553624281 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 279 / 638473465553624560 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 47 / 638473465553624607 / Changed  ("file1.txt",   Some                      │
│ "111111111111111111111111111111111111                                        │
│ 281 / 638473465553624888 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 39 / 638473465553624927 / Changed  ("file1.txt",   Some                      │
│ "111111111111111111111111111111111111                                        │
│ 289 / 638473465553625216 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 154 / 638473465553625370 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 97 / 638473465553625467 / Changed  ("file1.txt",   Some                      │
│ "111111111111111111111111111111111111                                        │
│ 103 / 638473465553625570 / Changed  ("file1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 54864 / 638473465553680434 / Changed  ("file2.txt",   Some                   │
│ "222222222222222222222222222222222                                           │
│ 128 / 638473465553680562 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 397 / 638473465553680959 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 172 / 638473465553681131 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 106 / 638473465553681237 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 196 / 638473465553681433 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 157 / 638473465553681590 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 103 / 638473465553681693 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 207 / 638473465553681900 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 166 / 638473465553682066 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 206 / 638473465553682272 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 42 / 638473465553682314 / Changed  ("file2.txt",   Some                      │
│ "222222222222222222222222222222222222                                        │
│ 209 / 638473465553682523 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 114 / 638473465553682637 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 176 / 638473465553682813 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 167 / 638473465553682980 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 189 / 638473465553683169 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 153 / 638473465553683322 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 102 / 638473465553683424 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 211 / 638473465553683635 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 102 / 638473465553683737 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 208 / 638473465553683945 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 101 / 638473465553684046 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 189 / 638473465553684235 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 198 / 638473465553684433 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 108 / 638473465553684541 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 210 / 638473465553684751 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 119 / 638473465553684870 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 203 / 638473465553685073 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 159 / 638473465553685232 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 161 / 638473465553685393 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 215 / 638473465553685608 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 196 / 638473465553685804 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 155 / 638473465553685959 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 205 / 638473465553686164 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 170 / 638473465553686334 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 379 / 638473465553686713 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 229 / 638473465553686942 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 205 / 638473465553687147 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 265 / 638473465553687412 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 47 / 638473465553687459 / Changed  ("file2.txt",   Some                      │
│ "222222222222222222222222222222222222                                        │
│ 193 / 638473465553687652 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 156 / 638473465553687808 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 200 / 638473465553688008 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 206 / 638473465553688214 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 163 / 638473465553688377 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 221 / 638473465553688598 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 162 / 638473465553688760 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 199 / 638473465553688959 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 109 / 638473465553689068 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 217 / 638473465553689285 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 161 / 638473465553689446 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 188 / 638473465553689634 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 185 / 638473465553689819 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 195 / 638473465553690014 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 198 / 638473465553690212 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 186 / 638473465553690398 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 95 / 638473465553690493 / Changed  ("file2.txt",   Some                      │
│ "222222222222222222222222222222222222                                        │
│ 215 / 638473465553690708 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 181 / 638473465553690889 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 175 / 638473465553691064 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 187 / 638473465553691251 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 194 / 638473465553691445 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 151 / 638473465553691596 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 190 / 638473465553691786 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 174 / 638473465553691960 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 193 / 638473465553692153 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 184 / 638473465553692337 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 196 / 638473465553692533 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 185 / 638473465553692718 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 193 / 638473465553692911 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 175 / 638473465553693086 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 195 / 638473465553693281 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 150 / 638473465553693431 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 188 / 638473465553693619 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 179 / 638473465553693798 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 196 / 638473465553693994 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 182 / 638473465553694176 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 183 / 638473465553694359 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 180 / 638473465553694539 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 178 / 638473465553694717 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 177 / 638473465553694894 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 195 / 638473465553695089 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 159 / 638473465553695248 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 205 / 638473465553695453 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 189 / 638473465553695642 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 186 / 638473465553695828 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 183 / 638473465553696011 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 178 / 638473465553696189 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 179 / 638473465553696368 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 145 / 638473465553696513 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 227 / 638473465553696740 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 188 / 638473465553696928 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 150 / 638473465553697078 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 191 / 638473465553697269 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 192 / 638473465553697461 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 195 / 638473465553697656 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 152 / 638473465553697808 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 197 / 638473465553698005 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 198 / 638473465553698203 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 183 / 638473465553698386 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 182 / 638473465553698568 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 184 / 638473465553698752 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 147 / 638473465553698899 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 194 / 638473465553699093 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 177 / 638473465553699270 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 206 / 638473465553699476 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 211 / 638473465553699687 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 181 / 638473465553699868 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 186 / 638473465553700054 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 209 / 638473465553700263 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 141 / 638473465553700404 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 193 / 638473465553700597 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 176 / 638473465553700773 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 199 / 638473465553700972 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 196 / 638473465553701168 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 327 / 638473465553701495 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 140 / 638473465553701635 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 220 / 638473465553701855 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 145 / 638473465553702000 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 213 / 638473465553702213 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 147 / 638473465553702360 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 197 / 638473465553702557 / Changed  ("file2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 21 / 638473465553702578 / Changed  ("file2.txt",   Some                      │
│ "222222222222222222222222222222222222                                        │
│ 15010415 / 638473465568712993 / Renamed  ("file1.txt",   ("file_1.txt",      │
│ Some      "1111111111                                                        │
│ 347 / 638473465568713340 / Renamed  ("file2.txt",   ("file_2.txt",    Some   │
│ "222222222222222                                                             │
│ 15075763 / 638473465583789103 / Changed  ("file_1.txt",   Some               │
│ "11111111111111111111111111111                                               │
│ 225 / 638473465583789328 / Changed  ("file_1.txt",   Some                    │
│ "1111111111111111111111111111111111                                          │
│ 691 / 638473465583790019 / Changed  ("file_1.txt",   Some                    │
│ "1111111111111111111111111111111111                                          │
│ 803 / 638473465583790822 / Changed  ("file_1.txt",   Some                    │
│ "1111111111111111111111111111111111                                          │
│ 71 / 638473465583790893 / Changed  ("file_1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 5426 / 638473465583796319 / Changed  ("file_1.txt",   Some                   │
│ "111111111111111111111111111111111                                           │
│ 51 / 638473465583796370 / Changed  ("file_1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 303 / 638473465583796673 / Changed  ("file_1.txt",   Some                    │
│ "1111111111111111111111111111111111                                          │
│ 233 / 638473465583796906 / Changed  ("file_1.txt",   Some                    │
│ "1111111111111111111111111111111111                                          │
│ 237 / 638473465583797143 / Changed  ("file_1.txt",   Some                    │
│ "1111111111111111111111111111111111                                          │
│ 145 / 638473465583797288 / Changed  ("file_1.txt",   Some                    │
│ "1111111111111111111111111111111111                                          │
│ 227 / 638473465583797515 / Changed  ("file_1.txt",   Some                    │
│ "1111111111111111111111111111111111                                          │
│ 551 / 638473465583798066 / Changed  ("file_1.txt",   Some                    │
│ "1111111111111111111111111111111111                                          │
│ 263 / 638473465583798329 / Changed  ("file_1.txt",   Some                    │
│ "1111111111111111111111111111111111                                          │
│ 148 / 638473465583798477 / Changed  ("file_1.txt",   Some                    │
│ "1111111111111111111111111111111111                                          │
│ 171 / 638473465583798648 / Changed  ("file_1.txt",   Some                    │
│ "1111111111111111111111111111111111                                          │
│ 168 / 638473465583798816 / Changed  ("file_1.txt",   Some                    │
│ "1111111111111111111111111111111111                                          │
│ 163 / 638473465583798979 / Changed  ("file_1.txt",   Some                    │
│ "1111111111111111111111111111111111                                          │
│ 145 / 638473465583799124 / Changed  ("file_1.txt",   Some                    │
│ "1111111111111111111111111111111111                                          │
│ 158 / 638473465583799282 / Changed  ("file_1.txt",   Some                    │
│ "1111111111111111111111111111111111                                          │
│ 172 / 638473465583799454 / Changed  ("file_1.txt",   Some                    │
│ "1111111111111111111111111111111111                                          │
│ 168 / 638473465583799622 / Changed  ("file_1.txt",   Some                    │
│ "1111111111111111111111111111111111                                          │
│ 185 / 638473465583799807 / Changed  ("file_1.txt",   Some                    │
│ "1111111111111111111111111111111111                                          │
│ 139 / 638473465583799946 / Changed  ("file_1.txt",   Some                    │
│ "1111111111111111111111111111111111                                          │
│ 4908 / 638473465583804854 / Changed  ("file_1.txt",   Some                   │
│ "111111111111111111111111111111111                                           │
│ 275 / 638473465583805129 / Changed  ("file_1.txt",   Some                    │
│ "1111111111111111111111111111111111                                          │
│ 379 / 638473465583805508 / Changed  ("file_1.txt",   Some                    │
│ "1111111111111111111111111111111111                                          │
│ 35 / 638473465583805543 / Changed  ("file_1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 169 / 638473465583805712 / Changed  ("file_1.txt",   Some                    │
│ "1111111111111111111111111111111111                                          │
│ 887 / 638473465583806599 / Changed  ("file_1.txt",   Some                    │
│ "1111111111111111111111111111111111                                          │
│ 58 / 638473465583806657 / Changed  ("file_1.txt",   Some                     │
│ "11111111111111111111111111111111111                                         │
│ 182 / 638473465583806839 / Changed  ("file_1.txt",   Some                    │
│ "1111111111111111111111111111111111                                          │
│ 124 / 638473465583806963 / Changed  ("file_1.txt",   Some                    │
│ "1111111111111111111111111111111111                                          │
│ 167 / 638473465583807130 / Changed  ("file_1.txt",   Some                    │
│ "1111111111111111111111111111111111                                          │
│ 179 / 638473465583807309 / Changed  ("file_1.txt",   Some                    │
│ "1111111111111111111111111111111111                                          │
│ 178 / 638473465583807487 / Changed  ("file_1.txt",   Some                    │
│ "1111111111111111111111111111111111                                          │
│ 148 / 638473465583807635 / Changed  ("file_1.txt",   Some                    │
│ "1111111111111111111111111111111111                                          │
│ 213 / 638473465583807848 / Changed  ("file_1.txt",   Some                    │
│ "1111111111111111111111111111111111                                          │
│ 693 / 638473465583808541 / Changed  ("file_1.txt",   Some                    │
│ "1111111111111111111111111111111111                                          │
│ 139 / 638473465583808680 / Changed  ("file_1.txt",   Some                    │
│ "1111111111111111111111111111111111                                          │
│ 143 / 638473465583808823 / Changed  ("file_1.txt",   Some                    │
│ "1111111111111111111111111111111111                                          │
│ 169 / 638473465583808992 / Changed  ("file_1.txt",   Some                    │
│ "1111111111111111111111111111111111                                          │
│ 113 / 638473465583809105 / Changed  ("file_1.txt",   Some                    │
│ "1111111111111111111111111111111111                                          │
│ 44965 / 638473465583854070 / Changed  ("file_2.txt",   Some                  │
│ "22222222222222222222222222222222                                            │
│ 145 / 638473465583854215 / Changed  ("file_2.txt",   Some                    │
│ "2222222222222222222222222222222222                                          │
│ 458 / 638473465583854673 / Changed  ("file_2.txt",   Some                    │
│ "2222222222222222222222222222222222                                          │
│ 322 / 638473465583854995 / Changed  ("file_2.txt",   Some                    │
│ "2222222222222222222222222222222222                                          │
│ 251 / 638473465583855246 / Changed  ("file_2.txt",   Some                    │
│ "2222222222222222222222222222222222                                          │
│ 180 / 638473465583855426 / Changed  ("file_2.txt",   Some                    │
│ "2222222222222222222222222222222222                                          │
│ 175 / 638473465583855601 / Changed  ("file_2.txt",   Some                    │
│ "2222222222222222222222222222222222                                          │
│ 863 / 638473465583856464 / Changed  ("file_2.txt",   Some                    │
│ "2222222222222222222222222222222222                                          │
│ 185 / 638473465583856649 / Changed  ("file_2.txt",   Some                    │
│ "2222222222222222222222222222222222                                          │
│ 1099 / 638473465583857748 / Changed  ("file_2.txt",   Some                   │
│ "222222222222222222222222222222222                                           │
│ 4718 / 638473465583862466 / Changed  ("file_2.txt",   Some                   │
│ "222222222222222222222222222222222                                           │
│ 36 / 638473465583862502 / Changed  ("file_2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 9156 / 638473465583871658 / Changed  ("file_2.txt",   Some                   │
│ "222222222222222222222222222222222                                           │
│ 56 / 638473465583871714 / Changed  ("file_2.txt",   Some                     │
│ "22222222222222222222222222222222222                                         │
│ 7290 / 638473465583879004 / Changed  ("file_2.txt",   Some                   │
│ "222222222222222222222222222222222                                           │
│ 12404 / 638473465583891408 / Changed  ("file_2.txt",   Some                  │
│ "22222222222222222222222222222222                                            │
│ 356 / 638473465583891764 / Changed  ("file_2.txt",   Some                    │
│ "2222222222222222222222222222222222                                          │
│ 297 / 638473465583892061 / Changed  ("file_2.txt",   Some                    │
│ "2222222222222222222222222222222222                                          │
│ 285 / 638473465583892346 / Changed  ("file_2.txt",   Some                    │
│ "2222222222222222222222222222222222                                          │
│ 206 / 638473465583892552 / Changed  ("file_2.txt",   Some                    │
│ "2222222222222222222222222222222222                                          │
│ 15031101 / 638473465598923653 / Deleted "file_1.txt"                         │
│ 3092 / 638473465598926745 / Deleted "file_2.txt"                             │
│ FSharpList<FileSystemChange>                                                 │
│       - path: file1.txt                                                      │
│         content: FSharpOption<String>                                        │
│           Value: 1a                                                          │
│         IsFailure: False                                                     │
│         IsChanged: False                                                     │
│         IsCreated: True                                                      │
│         IsDeleted: False                                                     │
│         IsRenamed: False                                                     │
│       - path: file1.txt                                                      │
│         content: FSharpOption<String>                                        │
│           Value: 1a                                                          │
│         IsFailure: False                                                     │
│         IsChanged: True                                                      │
│         IsCreated: False                                                     │
│         IsDeleted: False                                                     │
│         IsRenamed: False                                                     │
│       - path: file2.txt                                                      │
│         content: FSharpOption<String>                                        │
│           Value: 2a                                                          │
│         IsFailure: False                                                     │
│         IsChanged: False                                                     │
│         IsCreated: True                                                      │
│         IsDeleted: False                                                     │
│         IsRenamed: False                                                     │
│       - path: file2.txt                                                      │
│         content: FSharpOption<String>                                        │
│           Value: 2a                                                          │
│         IsFailure: False                                                     │
│         IsChanged: True                                                      │
│         IsCreated: False                                                     │
│         IsDeleted: False                                                     │
│         IsRenamed: False                                                     │
│       - path: file1.txt                                                      │
│         content: FSharpOption<String>                                        │
│           Value: 1b                                                          │
│         IsFailure: False                                                     │
│         IsChanged: True                                                      │
│         IsCreated: False                                                     │
│         IsDeleted: False                                                     │
│         IsRenamed: False                                                     │
│       - path: file2.txt                                                      │
│         content: FSharpOption<String>                                        │
│           Value: 2b                                                          │
│         IsFailure: False                                                     │
│         IsChanged: True                                                      │
│         IsCreated: False                                                     │
│         IsDeleted: False                                                     │
│         IsRenamed: False                                                     │
│       - oldPath: file1.txt                                                   │
│         Item2:         - file_1.txt                                          │
│         - FSharpOption<String>                                               │
│             Value: 1b                                                        │
│       - IsFailure: False                                                     │
│         IsChanged: False                                                     │
│         IsCreated: False                                                     │
│         IsDeleted: False                                                     │
│         IsRenamed: True                                                      │
│       - oldPath: file2.txt                                                   │
│         Item2:         - file_2.txt                                          │
│         - FSharpOption<String>                                               │
│             Value: 2b                                                        │
│       - IsFailure: False                                                     │
│         IsChanged: False                                                     │
│         IsCreated: False                                                     │
│         IsDeleted: False                                                     │
│         IsRenamed: True                                                      │
│       - path: file_1.txt                                                     │
│         content: FSharpOption<String>                                        │
│           Value: 1c                                                          │
│         IsFailure: False                                                     │
│         IsChanged: True                                                      │
│         IsCreated: False                                                     │
│         IsDeleted: False                                                     │
│         IsRenamed: False                                                     │
│       - path: file_2.txt                                                     │
│         content: FSharpOption<String>                                        │
│           Value: 2c                                                          │
│         IsFailure: False                                                     │
│         IsChanged: True                                                      │
│         IsCreated: False                                                     │
│         IsDeleted: False                                                     │
│         IsRenamed: False                                                     │
│       - path: file_1.txt                                                     │
│         IsFailure: False                                                     │
│         IsChanged: False                                                     │
│         IsCreated: False                                                     │
│         IsDeleted: True                                                      │
│         IsRenamed: False                                                     │
│       - path: file_2.txt                                                     │
│         IsFailure: False                                                     │
│         IsChanged: False                                                     │
│         IsCreated: False                                                     │
│         IsDeleted: True                                                      │
│         IsRenamed: False                                                     │
│ FSharpOption<Unit>                                                           │
│       Value: <null>                                                          │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ### testEventsSorted (test)                                                  │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let inline sortEvent event =
    match event with
    | FileSystemChange.Failure _ -> 0
    | FileSystemChange.Created _ -> 1
    | FileSystemChange.Changed _ -> 2
    | FileSystemChange.Renamed (_oldPath, _) -> 3
    | FileSystemChange.Deleted _ -> 4

let inline formatEvents events =
    events
    |> Seq.toList
    |> List.sortBy (snd >> sortEvent)
    |> List.choose (fun (ticks, event) ->
        match event with
        | FileSystemChange.Failure _ ->
            None
        | FileSystemChange.Changed (path, _) ->
            Some (ticks, System.IO.Path.GetFileName path, nameof 
FileSystemChangeType.Changed)
        | FileSystemChange.Created (path, _) ->
            Some (ticks, System.IO.Path.GetFileName path, nameof 
FileSystemChangeType.Created)
        | FileSystemChange.Deleted path ->
            Some (ticks, System.IO.Path.GetFileName path, nameof 
FileSystemChangeType.Deleted)
        | FileSystemChange.Renamed (_oldPath, (path, _)) ->
            Some (ticks, System.IO.Path.GetFileName path, nameof 
FileSystemChangeType.Renamed)
    )
    |> List.sortBy (fun (_, path, _) -> path)
    |> List.distinctBy (fun (_, path, event) -> path, event)

let inline testEventsSorted
    (watchFn : string -> FSharp.Control.AsyncSeq<int64 * FileSystemChange> * 
IDisposable)
    write
    =
    let path = createTempDirectory ()
    let stream, disposable = watchFn path

    let events = System.Collections.Concurrent.ConcurrentBag ()

    let inline iter () =
        stream
        |> FSharp.Control.AsyncSeq.iterAsyncParallel (fun event -> async { 
events.Add event })

    let run = async {
        let! _ = iter () |> Async.StartChild
        do! Async.Sleep 250
        return! write path
    }

    try
        run
        |> Async.runWithTimeout 5000
        |> _assertEqual (Some ())
    finally
        disposable.Dispose ()
        deleteDirectoryAsync path |> Async.Ignore |> Async.RunSynchronously

    let events = formatEvents events

    let eventMap =
        events
        |> List.map (fun (ticks, path, event) -> path, (event, ticks))
        |> List.groupBy fst
        |> List.map (fun (path, events) ->
            let event, _ticks =
                events
                |> List.map snd
                |> List.sortByDescending snd
                |> List.head

            path, event
        )
        |> Map.ofList

    let eventList =
        events
        |> List.map (fun (_ticks, path, event) -> path, event)

    eventMap, eventList

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ #### create and delete (test)                                                │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let inline write path = async {
    let n = 3

    for i = 1 to n do
        do! $"{i}" |> writeAllTextAsync (path </> $"file{i}.txt")

    for i = 1 to n do
        do! deleteFileAsync (path </> $"file{i}.txt") |> Async.Ignore

    do! Async.Sleep 150
}

let inline run () =
    let eventMap, eventList = testEventsSorted (watchDirectory (fun _ -> false))
write

    [[
        "file1.txt", nameof FileSystemChangeType.Created
        "file1.txt", nameof FileSystemChangeType.Changed
        "file1.txt", nameof FileSystemChangeType.Deleted

        "file2.txt", nameof FileSystemChangeType.Created
        "file2.txt", nameof FileSystemChangeType.Changed
        "file2.txt", nameof FileSystemChangeType.Deleted

        "file3.txt", nameof FileSystemChangeType.Created
        "file3.txt", nameof FileSystemChangeType.Changed
        "file3.txt", nameof FileSystemChangeType.Deleted
    ]]
    |> _sequenceEqual eventList

    [[
        "file1.txt", nameof FileSystemChangeType.Deleted
        "file2.txt", nameof FileSystemChangeType.Deleted
        "file3.txt", nameof FileSystemChangeType.Deleted
    ]]
    |> Map.ofList
    |> _sequenceEqual eventMap

run
|> retry_fn 3
|> _assertEqual (Some ())

╭─[ 2.09s - stdout ]───────────────────────────────────────────────────────────╮
│ FSharpOption<Unit>                                                           │
│       Value: <null>                                                          │
│ 00:00:28 #51 [Debug] watchWithFilter / Disposing watch stream / filter:      │
│ FileName, LastWrite                                                          │
│ FSharpList<Tuple<String,String>>                                             │
│ ( file1.txt, Created )                                                       │
│ ( file1.txt, Changed )                                                       │
│ ( file1.txt, Deleted )                                                       │
│ ( file2.txt, Created )                                                       │
│ ( file2.txt, Changed )                                                       │
│ ( file2.txt, Deleted )                                                       │
│ ( file3.txt, Created )                                                       │
│ ( file3.txt, Changed )                                                       │
│ ( file3.txt, Deleted )                                                       │
│ FSharpMap<String,String>                                                     │
│       - Key: file1.txt                                                       │
│         Value: Deleted                                                       │
│       - Key: file2.txt                                                       │
│         Value: Deleted                                                       │
│       - Key: file3.txt                                                       │
│         Value: Deleted                                                       │
│ FSharpOption<Unit>                                                           │
│       Value: <null>                                                          │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ #### change (test)                                                           │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let inline write path = async {
    let n = 2

    for i = 1 to n do
        do! $"{i}" |> writeAllTextAsync (path </> $"file{i}.txt")

    for i = 1 to n do
        do! "" |> writeAllTextAsync (path </> $"file{i}.txt")

    for i = 1 to n do
        do! deleteFileAsync (path </> $"file{i}.txt") |> Async.Ignore

    do! Async.Sleep 150
}

let inline run () =
    let eventMap, eventList = testEventsSorted (watchDirectory (fun _ -> false))
write

    [[
        "file1.txt", nameof FileSystemChangeType.Created
        "file1.txt", nameof FileSystemChangeType.Changed
        "file1.txt", nameof FileSystemChangeType.Deleted

        "file2.txt", nameof FileSystemChangeType.Created
        "file2.txt", nameof FileSystemChangeType.Changed
        "file2.txt", nameof FileSystemChangeType.Deleted
    ]]
    |> _sequenceEqual eventList

    [[
        "file1.txt", nameof FileSystemChangeType.Deleted
        "file2.txt", nameof FileSystemChangeType.Deleted
    ]]
    |> Map.ofList
    |> _sequenceEqual eventMap

run
|> retry_fn 3
|> _assertEqual (Some ())

╭─[ 2.42s - stdout ]───────────────────────────────────────────────────────────╮
│ FSharpOption<Unit>                                                           │
│       Value: <null>                                                          │
│ 00:00:30 #52 [Debug] watchWithFilter / Disposing watch stream / filter:      │
│ FileName, LastWrite                                                          │
│ FSharpList<Tuple<String,String>>                                             │
│ ( file1.txt, Created )                                                       │
│ ( file1.txt, Changed )                                                       │
│ ( file1.txt, Deleted )                                                       │
│ ( file2.txt, Created )                                                       │
│ ( file2.txt, Changed )                                                       │
│ ( file2.txt, Deleted )                                                       │
│ FSharpMap<String,String>                                                     │
│       - Key: file1.txt                                                       │
│         Value: Deleted                                                       │
│       - Key: file2.txt                                                       │
│         Value: Deleted                                                       │
│ FSharpOption<Unit>                                                           │
│       Value: <null>                                                          │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ #### rename (test)                                                           │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let inline write path = async {
    let n = 2

    for i = 1 to n do
        do! $"{i}" |> writeAllTextAsync (path </> $"file{i}.txt")

    for i = 1 to n do
        do! path </> $"file{i}.txt" |> moveFileAsync (path </> $"file_{i}.txt") 
|> Async.Ignore

    for i = 1 to n do
        do! deleteFileAsync (path </> $"file_{i}.txt") |> Async.Ignore

    do! Async.Sleep 150
}

let inline run () =
    let eventMap, eventList = testEventsSorted (watchDirectory (fun _ -> false))
write

    [[
        "file1.txt", nameof FileSystemChangeType.Created
        "file1.txt", nameof FileSystemChangeType.Changed
        "file2.txt", nameof FileSystemChangeType.Created
        "file2.txt", nameof FileSystemChangeType.Changed

        "file_1.txt", nameof FileSystemChangeType.Renamed
        "file_1.txt", nameof FileSystemChangeType.Deleted

        "file_2.txt", nameof FileSystemChangeType.Renamed
        "file_2.txt", nameof FileSystemChangeType.Deleted
    ]]
    |> _sequenceEqual eventList

    [[
        "file1.txt", nameof FileSystemChangeType.Changed
        "file2.txt", nameof FileSystemChangeType.Changed
        "file_1.txt", nameof FileSystemChangeType.Deleted
        "file_2.txt", nameof FileSystemChangeType.Deleted
    ]]
    |> Map.ofList
    |> _sequenceEqual eventMap

run
|> retry_fn 3
|> _assertEqual (Some ())

╭─[ 2.72s - stdout ]───────────────────────────────────────────────────────────╮
│ FSharpOption<Unit>                                                           │
│       Value: <null>                                                          │
│ 00:00:33 #53 [Debug] watchWithFilter / Disposing watch stream / filter:      │
│ FileName, LastWrite                                                          │
│ FSharpList<Tuple<String,String>>                                             │
│ ( file1.txt, Created )                                                       │
│ ( file1.txt, Changed )                                                       │
│ ( file2.txt, Created )                                                       │
│ ( file2.txt, Changed )                                                       │
│ ( file_1.txt, Renamed )                                                      │
│ ( file_1.txt, Deleted )                                                      │
│ ( file_2.txt, Renamed )                                                      │
│ ( file_2.txt, Deleted )                                                      │
│ FSharpMap<String,String>                                                     │
│       - Key: file1.txt                                                       │
│         Value: Changed                                                       │
│       - Key: file2.txt                                                       │
│         Value: Changed                                                       │
│       - Key: file_1.txt                                                      │
│         Value: Deleted                                                       │
│       - Key: file_2.txt                                                      │
│         Value: Deleted                                                       │
│ FSharpOption<Unit>                                                           │
│       Value: <null>                                                          │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ #### full (test)                                                             │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let inline write path = async {
    let n = 2

    for i = 1 to n do
        do! $"{i}" |> writeAllTextAsync (path </> $"file{i}.txt")

    for i = 1 to n do
        do! "" |> writeAllTextAsync (path </> $"file{i}.txt")

    for i = 1 to n do
        do! path </> $"file{i}.txt" |> moveFileAsync (path </> $"file_{i}.txt") 
|> Async.Ignore

    for i = 1 to n do
        do! $"{i}" |> writeAllTextAsync (path </> $"file_{i}.txt")

    for i = 1 to n do
        do! deleteFileAsync (path </> $"file_{i}.txt") |> Async.Ignore

    do! Async.Sleep 150
}

let inline run () =
    let eventMap, eventList = testEventsSorted (watchDirectory (fun _ -> false))
write

    [[
        "file1.txt", nameof FileSystemChangeType.Created
        "file1.txt", nameof FileSystemChangeType.Changed
        "file2.txt", nameof FileSystemChangeType.Created
        "file2.txt", nameof FileSystemChangeType.Changed

        "file_1.txt", nameof FileSystemChangeType.Changed
        "file_1.txt", nameof FileSystemChangeType.Renamed
        "file_1.txt", nameof FileSystemChangeType.Deleted

        "file_2.txt", nameof FileSystemChangeType.Changed
        "file_2.txt", nameof FileSystemChangeType.Renamed
        "file_2.txt", nameof FileSystemChangeType.Deleted
    ]]
    |> _sequenceEqual eventList

    [[
        "file1.txt", nameof FileSystemChangeType.Changed
        "file2.txt", nameof FileSystemChangeType.Changed
        "file_1.txt", nameof FileSystemChangeType.Deleted
        "file_2.txt", nameof FileSystemChangeType.Deleted
    ]]
    |> Map.ofList
    |> _sequenceEqual eventMap

run
|> retry_fn 3
|> _assertEqual (Some ())

╭─[ 3.22s - stdout ]───────────────────────────────────────────────────────────╮
│ FSharpOption<Unit>                                                           │
│       Value: <null>                                                          │
│ 00:00:36 #54 [Debug] watchWithFilter / Disposing watch stream / filter:      │
│ FileName, LastWrite                                                          │
│ FSharpList<Tuple<String,String>>                                             │
│ ( file1.txt, Created )                                                       │
│ ( file1.txt, Changed )                                                       │
│ ( file2.txt, Created )                                                       │
│ ( file2.txt, Changed )                                                       │
│ ( file_1.txt, Changed )                                                      │
│ ( file_1.txt, Renamed )                                                      │
│ ( file_1.txt, Deleted )                                                      │
│ ( file_2.txt, Changed )                                                      │
│ ( file_2.txt, Renamed )                                                      │
│ ( file_2.txt, Deleted )                                                      │
│ FSharpMap<String,String>                                                     │
│       - Key: file1.txt                                                       │
│         Value: Changed                                                       │
│       - Key: file2.txt                                                       │
│         Value: Changed                                                       │
│       - Key: file_1.txt                                                      │
│         Value: Deleted                                                       │
│       - Key: file_2.txt                                                      │
│         Value: Deleted                                                       │
│ FSharpOption<Unit>                                                           │
│       Value: <null>                                                          │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
[NbConvertApp] Converting notebook FileSystem.dib.ipynb to html
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
  validate(nb)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
  return _pygments_highlight(
[NbConvertApp] Writing 499481 bytes to FileSystem.dib.html

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ # Networking (Polyglot)                                                      │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/fsharp/Notebooks.dib
#!import ../../lib/fsharp/Testing.dib

── fsharp - import ─────────────────────────────────────────────────────────────
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Asp
NetCore.Html.Abstractions.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.FSharp.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.Formatting.dll"
open System
open System.IO
open System.Text
open Microsoft.DotNet.Interactive.Formatting

── fsharp - import ─────────────────────────────────────────────────────────────
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.FSharp.dll"
open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.dll"
open type Microsoft.DotNet.Interactive.Kernel

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

Formatter.ListExpansionLimit <- 100

── fsharp - import ─────────────────────────────────────────────────────────────
#r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

type AssertExceptionFormatter (ex) =
    member _.Text =
        ex.ToString()
            .Replace("32m", "<span style=\"color: green;\">")
            .Replace("36m", "</span>")
            .Replace("31m", "<span style=\"color: red;\">")
            .Replace("\n", "<br/>\n")


Formatter.Register<AssertExceptionFormatter> ((fun (x : 
AssertExceptionFormatter) -> x.Text), "text/html")

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

let inline __expect fn log expected actual =
    if log then printfn $"{actual.ToDisplayString ()}"
    try
        "Testing.__expect" |> fn actual expected
    with :? Expecto.AssertException as ex ->
        AssertExceptionFormatter(ex).Display () |> ignore
        failwith (ex.GetType().FullName)

let inline __contains log expected actual = __expect Expecto.Expect.contains log
expected actual
let inline _contains expected actual = __contains true expected actual

let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
expected actual
let inline _assertEqual expected actual = __assertEqual true expected actual

let inline __isGreaterThan log expected actual = __expect 
Expecto.Expect.isGreaterThan log ex...

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

let inline __isBetween log a b actual =
    let inline isBetween actual (a, b) _ =
        __isGreaterThanOrEqual log a actual
        __isLessThanOrEqual log b actual
    __expect isBetween log (a, b) actual
let inline _isBetween a b actual = __isBetween true a b actual

── fsharp ──────────────────────────────────────────────────────────────────────
#r 
@"../../../../../../../.nuget/packages/argu/6.2.2/lib/netstandard2.0/Argu.dll"
#r 
@"../../../../../../../.nuget/packages/system.commandline/2.0.0-beta4.22272.1/li
b/net6.0/System.CommandLine.dll"

── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/spiral/common.fsx
#!import ../../lib/spiral/date_time.fsx
#!import ../../lib/fsharp/Common.fs
#!import ../../lib/fsharp/CommonFSharp.fs
#!import ../../lib/fsharp/Async.fs
#!import ../../lib/fsharp/Runtime.fs

── fsharp - import ─────────────────────────────────────────────────────────────
type [[<Struct>]] US0 =
    | US0_0
    | US0_1
and [[<Struct>]] US1 =
    | US1_0
    | US1_1 of f1_0 : US0
let rec method0 (v0 : (unit -> unit)) : (unit -> unit) =
    v0
and closure0 () (v0 : (unit -> unit)) : System.IDisposable =
    let mutable result = None
    #if FABLE_COMPILER_RUST && !WASM
    let v1 : (unit -> unit) = method0(v0)
    let v2 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v1()" }
    v2
    #endif
    #if FABLE_COMPILER_RUST && WASM
    let v3 : (unit -> unit) = method0(v0)
    let v4 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v3()" }
    v4
    #endif
    #if !FABLE_COMPILER && !F...

── fsharp - import ─────────────────────────────────────────────────────────────
let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
    let v2 : string = v0.ToString ()
    let v3 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
    let v4 : System.Guid = System.Guid $"{v3}{v2.[[v3.Length..]]}"
    v4
and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
    closure1(v0)
and closure5 (v0 : string, v1 : string) (v2 : string) : string =
    let v3 : string = v2.Replace (v0, v1)
    v3
and closure4 (v0 : string) (v1 : string) : (string -> string) =
    closure5(v0, v1)
and closure3 () (v0 : string) : (string -> (string -> string)) =
    closure4(v0)
and method0 () : (string -> (string -> (string -> string))) =
    closure3()
and closure2 () (v0 : System.Guid) : System.DateTime =
  ...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Common =

#if !WASM && !FABLE_COMPILER
    let Date_time = {|
        new_guid_from_date_time =
#if !INTERACTIVE
            Date_time.new_guid_from_date_time
#else
            new_guid_from_date_time
#endif
    |}
#endif

    let nl = System.Environment.NewLine
    let q = @""""

    let inline cons head tail = head :: tail

    module String =
        let inline contains (value : string) (input : string) =
            input.Contains value

        let inline endsWith (value : string) (input : string) =
            input.EndsWith value

        let inline padLeft totalWidth paddingChar (input : string) =
            input.PadLeft (totalWidth, paddingChar)

        let inline replace (oldVa...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module CommonFSharp =

    open Common

    /// ## getUnionCaseName

    let inline getUnionCaseName<'T> (x: 'T) =
        match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with
        | case, _ -> case.Name


── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Async =

    open Common

    /// ## choice

    let inline choice asyncs = async {
        let e = Event<_> ()
        use cts = new System.Threading.CancellationTokenSource ()
        let fn =
            asyncs
            |> Seq.map (fun a -> async {
                let! x = a
                e.Trigger x
            })
            |> Async.Parallel
            |> Async.Ignore
        Async.Start (fn, cts.Token)
        let! result = Async.AwaitEvent e.Publish
        cts.Cancel ()
        return result
    }

    /// ## map

    let inline map fn a = async {
        let! x = a
        return fn x
    }

    /// ## catch

    let inline catch a =
        a
        |> Async.Catch
        ...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Runtime =

    open Common

    /// ## isWindows

    let isWindows =
        fun () ->
            System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform
                System.Runtime.InteropServices.OSPlatform.Windows
        |> memoize

    /// ## getExecutableSuffix

    let inline getExecutableSuffix () =
        if isWindows ()
        then ".exe"
        else ""

    /// ## splitCommand

    type private CommandParseStep =
        | Start
        | Path of quoted: bool
        | Arguments

    let splitCommand (command: string) =
        let rec loop (path, args) chars step =
            match chars, step with
            | ('"' | '\'') :: tail, _ when path = "" -> loop (pat...

── fsharp ──────────────────────────────────────────────────────────────────────
open Common

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## testPortOpen                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline testPortOpen port = async {
    let! ct = Async.CancellationToken
    use client = new System.Net.Sockets.TcpClient ()
    try
        do! client.ConnectAsync ("127.0.0.1", port, ct) |> 
Async.awaitValueTaskUnit
        return true
    with ex ->
        trace Verbose (fun () -> $"testPortOpen / ex: {ex |> formatException}") 
getLocals
        return false
}

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

testPortOpen 65536
|> Async.runWithTimeout 120
|> _assertEqual (Some false)

╭─[ 132.14ms - stdout ]────────────────────────────────────────────────────────╮
│ 00:00:00 #1 [Verbose] testPortOpen / ex: System.ArgumentOutOfRangeException: │
│ Specified argument was out of the range of valid values. (Parameter 'port')  │
│ FSharpOption<Boolean>                                                        │
│       Value: False                                                           │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline testPortOpenTimeout timeout port = async {
    let! result =
        testPortOpen port
        |> Async.runWithTimeoutAsync timeout
    return
        match result with
        | None -> false
        | Some result -> result
}

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

testPortOpenTimeout 120 65535
|> Async.RunSynchronously
|> _assertEqual false

╭─[ 101.39ms - stdout ]────────────────────────────────────────────────────────╮
│ 00:00:00 #2 [Verbose] testPortOpen / ex: System.AggregateException: One or   │
│ more errors occurred. (Connection refused)                                   │
│ False                                                                        │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## waitForPortAccess                                                         │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline waitForPortAccess timeout status port =
    let rec loop retry = async {
        let! isPortOpen =
            match timeout with
            | None -> testPortOpen port
            | Some timeout -> testPortOpenTimeout timeout port
        if isPortOpen = status
        then return retry
        else
            if retry % 100 = 0 then
                let getLocals () = $"port: {port} / retry: {retry} / {getLocals 
()}"
                trace Verbose (fun () -> "waitForPortAccess") getLocals
            do! Async.Sleep 10
            return! loop (retry + 1)
    }
    loop 0

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let port = 5555

let inline lockPort () = async {
    trace Debug (fun () -> "_1") getLocals
    do! Async.Sleep 5000
    use listener = new System.Net.Sockets.TcpListener 
(System.Net.IPAddress.Parse "127.0.0.1", port)
    trace Debug (fun () -> "_2") getLocals
    listener.Start ()
    trace Debug (fun () -> "_3") getLocals
    do! Async.Sleep 2000
    trace Debug (fun () -> "_4") getLocals
    listener.Stop ()
    trace Debug (fun () -> "_5") getLocals
}

async {
    trace Debug (fun () -> "1") getLocals
    let! child = lockPort () |> Async.StartChild
    trace Debug (fun () -> "2") getLocals
    do! Async.Sleep 1
    trace Debug (fun () -> "3") getLocals
    let! retries1 = waitForPortAccess None true port
    trace Debug (fun () -> "4") getLocals
    let! retries2 = waitForPortAccess None false port
    trace Debug (fun () -> "5") getLocals
    do! child
    trace Debug (fun () -> "6") getLocals
    return retries1, retries2
}
|> Async.runWithTimeout 20000
|> function
    | Some (retries1, retries2) ->
        retries1
        |> _isBetween
            (if Runtime.isWindows () then 2 else 2)
            (if Runtime.isWindows () then 5 else 1500)

        retries2
        |> _isBetween
            (if Runtime.isWindows () then 80 else 80)
            (if Runtime.isWindows () then 150 else 600)

        true
    | _ -> false
|> _assertEqual true

╭─[ 7.35s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:00:00 #3 [Debug] 1                                                        │
│ 00:00:00 #4 [Debug] _1                                                       │
│ 00:00:00 #5 [Debug] 2                                                        │
│ 00:00:00 #6 [Debug] 3                                                        │
│ 00:00:00 #7 [Verbose] testPortOpen / ex: System.AggregateException: One or   │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #8 [Verbose] waitForPortAccess / port: 5555 / retry: 0              │
│ 00:00:00 #9 [Verbose] testPortOpen / ex: System.AggregateException: One or   │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #10 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #11 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #12 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #13 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #14 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #15 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #16 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #17 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #18 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #19 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #20 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #21 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #22 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #23 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #24 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #25 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #26 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #27 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #28 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #29 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #30 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #31 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #32 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #33 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #34 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #35 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #36 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #37 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #38 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #39 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #40 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #41 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #42 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #43 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #44 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #45 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #46 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #47 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #48 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #49 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #50 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #51 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #52 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #53 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #54 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #55 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #56 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #57 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #58 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #59 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #60 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #61 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #62 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #63 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #64 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #65 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #66 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #67 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #68 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #69 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #70 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #71 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #72 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #73 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #74 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #75 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #76 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #77 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #78 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #79 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #80 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #81 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #82 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #83 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #84 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #85 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #86 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #87 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #88 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #89 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #90 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #91 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #92 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #93 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #94 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #95 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #96 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #97 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #98 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #99 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #100 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #101 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #102 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #103 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #104 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #105 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #106 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #107 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #108 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #109 [Verbose] waitForPortAccess / port: 5555 / retry: 100          │
│ 00:00:01 #110 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #111 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #112 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #113 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:01 #114 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #115 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #116 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #117 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #118 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #119 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #120 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #121 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #122 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #123 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #124 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #125 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #126 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #127 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #128 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #129 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #130 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #131 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #132 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #133 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #134 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #135 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #136 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #137 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #138 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #139 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #140 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #141 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #142 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #143 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #144 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #145 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #146 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #147 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #148 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #149 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #150 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #151 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #152 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #153 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #154 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #155 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #156 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #157 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #158 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #159 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #160 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #161 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #162 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #163 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #164 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #165 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #166 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #167 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #168 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #169 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #170 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #171 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #172 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #173 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #174 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #175 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #176 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #177 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #178 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #179 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #180 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #181 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #182 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #183 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #184 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #185 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #186 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #187 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #188 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #189 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #190 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #191 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #192 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #193 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #194 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #195 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #196 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #197 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #198 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #199 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #200 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #201 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #202 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #203 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #204 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #205 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #206 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #207 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #208 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #209 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #210 [Verbose] waitForPortAccess / port: 5555 / retry: 200          │
│ 00:00:03 #211 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #212 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #213 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #214 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #215 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #216 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #217 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #218 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #219 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #220 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #221 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #222 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #223 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #224 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #225 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #226 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #227 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #228 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #229 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #230 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #231 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #232 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #233 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #234 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #235 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #236 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #237 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #238 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #239 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #240 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #241 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #242 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #243 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #244 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #245 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #246 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #247 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #248 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #249 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #250 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #251 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #252 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #253 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #254 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #255 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #256 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #257 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #258 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #259 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #260 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #261 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #262 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #263 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #264 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #265 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #266 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #267 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #268 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #269 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #270 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #271 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #272 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #273 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #274 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #275 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #276 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #277 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #278 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #279 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #280 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #281 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #282 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #283 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #284 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #285 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #286 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #287 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #288 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #289 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #290 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #291 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #292 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #293 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #294 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #295 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #296 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #297 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #298 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #299 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #300 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #301 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #302 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #303 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #304 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #305 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #306 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #307 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #308 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #309 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #310 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #311 [Verbose] waitForPortAccess / port: 5555 / retry: 300          │
│ 00:00:04 #312 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #313 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #314 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #315 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #316 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #317 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #318 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #319 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #320 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #321 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #322 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #323 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #324 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #325 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #326 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #327 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #328 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #329 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #330 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #331 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #332 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #333 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #334 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #335 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #336 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #337 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #338 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #339 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #340 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #341 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #342 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #343 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #344 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #345 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #346 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #347 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #348 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #349 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #350 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #351 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #352 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #353 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #354 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #355 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #356 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #357 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #358 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #359 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #360 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #361 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #362 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #363 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #364 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #365 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:04 #366 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #367 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #368 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #369 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #370 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #371 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #372 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #373 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #374 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #375 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #376 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #377 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #378 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #379 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #380 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #381 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #382 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #383 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #384 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #385 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #386 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #387 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #388 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #389 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #390 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #391 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #392 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #393 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #394 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #395 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #396 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #397 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #398 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #399 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #400 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #401 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #402 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #403 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #404 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #405 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #406 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #407 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #408 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #409 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #410 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #411 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #412 [Verbose] waitForPortAccess / port: 5555 / retry: 400          │
│ 00:00:05 #413 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #414 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #415 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #416 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #417 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #418 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #419 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #420 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #421 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #422 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #423 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #424 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #425 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #426 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #427 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:05 #428 [Debug] _2                                                     │
│ 00:00:05 #429 [Debug] _3                                                     │
│ 00:00:05 #430 [Debug] 4                                                      │
│ 00:00:05 #431 [Verbose] waitForPortAccess / port: 5555 / retry: 0            │
│ 00:00:06 #432 [Verbose] waitForPortAccess / port: 5555 / retry: 100          │
│ 00:00:07 #433 [Debug] _4                                                     │
│ 00:00:07 #434 [Debug] _5                                                     │
│ 00:00:07 #435 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:07 #436 [Debug] 5                                                      │
│ 00:00:07 #437 [Debug] 6                                                      │
│ 416                                                                          │
│ 416                                                                          │
│ 416                                                                          │
│ 167                                                                          │
│ 167                                                                          │
│ 167                                                                          │
│ True                                                                         │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let port = 5555

let inline lockPort () = async {
    trace Debug (fun () -> "_1") getLocals
    do! Async.Sleep 500
    use listener = new System.Net.Sockets.TcpListener 
(System.Net.IPAddress.Parse "127.0.0.1", port)
    trace Debug (fun () -> "_2") getLocals
    listener.Start ()
    trace Debug (fun () -> "_3") getLocals
    do! Async.Sleep 200
    trace Debug (fun () -> "_4") getLocals
    listener.Stop ()
    trace Debug (fun () -> "_5") getLocals
}

async {
    trace Debug (fun () -> "1") getLocals
    let! child = lockPort () |> Async.StartChild
    trace Debug (fun () -> "2") getLocals
    do! Async.Sleep 1
    trace Debug (fun () -> "3") getLocals
    let! retries1 = waitForPortAccess (Some 60) true port
    trace Debug (fun () -> "4") getLocals
    let! retries2 = waitForPortAccess (Some 60) false port
    trace Debug (fun () -> "5") getLocals
    do! child
    trace Debug (fun () -> "6") getLocals
    return retries1, retries2
}
|> Async.runWithTimeout 2000
|> function
    | Some (retries1, retries2) ->
        retries1
        |> _isBetween
            (if Runtime.isWindows () then 4 else 2)
            (if Runtime.isWindows () then 15 else 150)

        retries2
        |> _isBetween
            (if Runtime.isWindows () then 5 else 0)
            (if Runtime.isWindows () then 20 else 60)

        true
    | _ -> false
|> _assertEqual true

╭─[ 1.21s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:00:08 #438 [Debug] 1                                                      │
│ 00:00:08 #440 [Debug] 2                                                      │
│ 00:00:08 #439 [Debug] _1                                                     │
│ 00:00:08 #441 [Debug] 3                                                      │
│ 00:00:08 #442 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:08 #443 [Verbose] waitForPortAccess / port: 5555 / retry: 0            │
│ 00:00:08 #444 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:08 #445 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:08 #446 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:08 #447 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:08 #448 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:08 #449 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:08 #450 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:08 #451 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:08 #452 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:08 #453 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:08 #454 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:08 #455 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:08 #456 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:08 #457 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:08 #458 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:08 #459 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:08 #460 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:08 #461 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:08 #462 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:08 #463 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:08 #464 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:08 #465 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:08 #466 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:08 #467 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:08 #468 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:08 #469 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:08 #470 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:08 #471 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:08 #472 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:08 #473 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:08 #474 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:08 #475 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:08 #476 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:08 #477 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:08 #478 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:08 #479 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:08 #480 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:08 #481 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:08 #482 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:08 #483 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:08 #484 [Debug] _2                                                     │
│ 00:00:08 #485 [Debug] _3                                                     │
│ 00:00:08 #486 [Debug] 4                                                      │
│ 00:00:08 #487 [Verbose] waitForPortAccess / port: 5555 / retry: 0            │
│ 00:00:09 #488 [Debug] _4                                                     │
│ 00:00:09 #489 [Debug] _5                                                     │
│ 00:00:09 #490 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:09 #491 [Debug] 5                                                      │
│ 00:00:09 #492 [Debug] 6                                                      │
│ 41                                                                           │
│ 41                                                                           │
│ 41                                                                           │
│ 16                                                                           │
│ 16                                                                           │
│ 16                                                                           │
│ True                                                                         │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## getAvailablePort                                                          │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline getAvailablePort timeout initialPort =
    let rec loop port = async {
        let! isPortOpen =
            match timeout with
            | None -> testPortOpen port
            | Some timeout -> testPortOpenTimeout timeout port
        if not isPortOpen
        then return port
        else return! loop (port + 1)
    }
    loop initialPort

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let port = 5555

let inline lockPorts () = async {
    trace Debug (fun () -> "_1") getLocals
    use listener1 = new System.Net.Sockets.TcpListener 
(System.Net.IPAddress.Parse "127.0.0.1", port)
    use listener2 = new System.Net.Sockets.TcpListener 
(System.Net.IPAddress.Parse "127.0.0.1", port + 1)
    trace Debug (fun () -> "_2") getLocals
    listener1.Start ()
    listener2.Start ()
    trace Debug (fun () -> "_3") getLocals
    do! Async.Sleep 4000
    trace Debug (fun () -> "_4") getLocals
    listener1.Stop ()
    listener2.Stop ()
    trace Debug (fun () -> "_5") getLocals
}

async {
    trace Debug (fun () -> "1") getLocals
    let! child = lockPorts () |> Async.StartChild
    trace Debug (fun () -> "2") getLocals
    do! Async.Sleep 240
    trace Debug (fun () -> "3") getLocals
    let! availablePort = getAvailablePort None port
    trace Debug (fun () -> "4") getLocals
    let! retries = waitForPortAccess None false port
    trace Debug (fun () -> "5") getLocals
    do! child
    trace Debug (fun () -> "6") getLocals
    return availablePort, retries
}
|> Async.runWithTimeout 15000
|> function
    | Some (availablePort, retries) ->
        availablePort |> _assertEqual (port + 2)

        retries
        |> _isBetween
            (if Runtime.isWindows () then 100 else 100)
            (if Runtime.isWindows () then 150 else 1200)

        true
    | _ -> false
|> _assertEqual true

╭─[ 4.28s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:00:09 #493 [Debug] 1                                                      │
│ 00:00:09 #494 [Debug] 2                                                      │
│ 00:00:09 #495 [Debug] _1                                                     │
│ 00:00:09 #496 [Debug] _2                                                     │
│ 00:00:09 #497 [Debug] _3                                                     │
│ 00:00:09 #498 [Debug] 3                                                      │
│ 00:00:09 #499 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:09 #500 [Debug] 4                                                      │
│ 00:00:09 #501 [Verbose] waitForPortAccess / port: 5555 / retry: 0            │
│ 00:00:10 #502 [Verbose] waitForPortAccess / port: 5555 / retry: 100          │
│ 00:00:12 #503 [Verbose] waitForPortAccess / port: 5555 / retry: 200          │
│ 00:00:13 #504 [Verbose] waitForPortAccess / port: 5555 / retry: 300          │
│ 00:00:13 #505 [Debug] _4                                                     │
│ 00:00:13 #506 [Debug] _5                                                     │
│ 00:00:13 #507 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:13 #508 [Debug] 5                                                      │
│ 00:00:13 #509 [Debug] 6                                                      │
│ 5557                                                                         │
│ 313                                                                          │
│ 313                                                                          │
│ 313                                                                          │
│ True                                                                         │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let port = 5555

let inline lockPorts () = async {
    trace Debug (fun () -> "_1") getLocals
    use listener1 = new System.Net.Sockets.TcpListener 
(System.Net.IPAddress.Parse "127.0.0.1", port)
    use listener2 = new System.Net.Sockets.TcpListener 
(System.Net.IPAddress.Parse "127.0.0.1", port + 1)
    trace Debug (fun () -> "_2") getLocals
    listener1.Start ()
    listener2.Start ()
    trace Debug (fun () -> "_3") getLocals
    do! Async.Sleep 400
    trace Debug (fun () -> "_4") getLocals
    listener1.Stop ()
    listener2.Stop ()
    trace Debug (fun () -> "_5") getLocals
}

async {
    trace Debug (fun () -> "1") getLocals
    let! child = lockPorts () |> Async.StartChild
    trace Debug (fun () -> "2") getLocals
    do! Async.Sleep 240
    trace Debug (fun () -> "3") getLocals
    let! availablePort = getAvailablePort (Some 60) port
    trace Debug (fun () -> "4") getLocals
    let! retries = waitForPortAccess (Some 60) false port
    trace Debug (fun () -> "5") getLocals
    do! child
    trace Debug (fun () -> "6") getLocals
    return availablePort, retries
}
|> Async.runWithTimeout 1500
|> function
    | Some (availablePort, retries) ->
        availablePort |> _assertEqual (port + 2)

        retries
        |> _isBetween
            (if Runtime.isWindows () then 2 else 1)
            (if Runtime.isWindows () then 10 else 120)

        true
    | _ -> false
|> _assertEqual true

╭─[ 738.23ms - stdout ]────────────────────────────────────────────────────────╮
│ 00:00:13 #510 [Debug] 1                                                      │
│ 00:00:13 #511 [Debug] 2                                                      │
│ 00:00:13 #512 [Debug] _1                                                     │
│ 00:00:13 #513 [Debug] _2                                                     │
│ 00:00:13 #514 [Debug] _3                                                     │
│ 00:00:14 #515 [Debug] 3                                                      │
│ 00:00:14 #516 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:14 #517 [Debug] 4                                                      │
│ 00:00:14 #518 [Verbose] waitForPortAccess / port: 5555 / retry: 0            │
│ 00:00:14 #519 [Debug] _4                                                     │
│ 00:00:14 #520 [Debug] _5                                                     │
│ 00:00:14 #521 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:14 #522 [Debug] 5                                                      │
│ 00:00:14 #523 [Debug] 6                                                      │
│ 5557                                                                         │
│ 13                                                                           │
│ 13                                                                           │
│ 13                                                                           │
│ True                                                                         │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
[NbConvertApp] Converting notebook Networking.dib.ipynb to html
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
  validate(nb)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
  return _pygments_highlight(
[NbConvertApp] Writing 379833 bytes to Networking.dib.html

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ # Runtime (Polyglot)                                                         │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/fsharp/Notebooks.dib
#!import ../../lib/fsharp/Testing.dib

── fsharp - import ─────────────────────────────────────────────────────────────
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Asp
NetCore.Html.Abstractions.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.FSharp.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.Formatting.dll"
open System
open System.IO
open System.Text
open Microsoft.DotNet.Interactive.Formatting

── fsharp - import ─────────────────────────────────────────────────────────────
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.FSharp.dll"
open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.dll"
open type Microsoft.DotNet.Interactive.Kernel

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

Formatter.ListExpansionLimit <- 100

── fsharp - import ─────────────────────────────────────────────────────────────
#r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

type AssertExceptionFormatter (ex) =
    member _.Text =
        ex.ToString()
            .Replace("32m", "<span style=\"color: green;\">")
            .Replace("36m", "</span>")
            .Replace("31m", "<span style=\"color: red;\">")
            .Replace("\n", "<br/>\n")


Formatter.Register<AssertExceptionFormatter> ((fun (x : 
AssertExceptionFormatter) -> x.Text), "text/html")

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

let inline __expect fn log expected actual =
    if log then printfn $"{actual.ToDisplayString ()}"
    try
        "Testing.__expect" |> fn actual expected
    with :? Expecto.AssertException as ex ->
        AssertExceptionFormatter(ex).Display () |> ignore
        failwith (ex.GetType().FullName)

let inline __contains log expected actual = __expect Expecto.Expect.contains log
expected actual
let inline _contains expected actual = __contains true expected actual

let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
expected actual
let inline _assertEqual expected actual = __assertEqual true expected actual

let inline __isGreaterThan log expected actual = __expect 
Expecto.Expect.isGreaterThan log ex...

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

let inline __isBetween log a b actual =
    let inline isBetween actual (a, b) _ =
        __isGreaterThanOrEqual log a actual
        __isLessThanOrEqual log b actual
    __expect isBetween log (a, b) actual
let inline _isBetween a b actual = __isBetween true a b actual

── fsharp ──────────────────────────────────────────────────────────────────────
#r 
@"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
dard2.1/FSharp.Control.AsyncSeq.dll"
#r 
@"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
0/System.Reactive.dll"
#r 
@"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/
netstandard2.0/System.Reactive.Linq.dll"
#r 
@"../../../../../../../.nuget/packages/argu/6.2.2/lib/netstandard2.0/Argu.dll"
#r 
@"../../../../../../../.nuget/packages/system.commandline/2.0.0-beta4.22272.1/li
b/net6.0/System.CommandLine.dll"

── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/spiral/common.fsx
#!import ../../lib/spiral/date_time.fsx
#!import ../../lib/spiral/file_system.fsx
#!import ../../lib/fsharp/Common.fs
#!import ../../lib/fsharp/CommonFSharp.fs
#!import ../../lib/fsharp/Async.fs
#!import ../../lib/fsharp/AsyncSeq.fs
#!import ../../lib/fsharp/Runtime.fs
#!import ../../lib/fsharp/FileSystem.fs

── fsharp - import ─────────────────────────────────────────────────────────────
type [[<Struct>]] US0 =
    | US0_0
    | US0_1
and [[<Struct>]] US1 =
    | US1_0
    | US1_1 of f1_0 : US0
let rec method0 (v0 : (unit -> unit)) : (unit -> unit) =
    v0
and closure0 () (v0 : (unit -> unit)) : System.IDisposable =
    let mutable result = None
    #if FABLE_COMPILER_RUST && !WASM
    let v1 : (unit -> unit) = method0(v0)
    let v2 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v1()" }
    v2
    #endif
    #if FABLE_COMPILER_RUST && WASM
    let v3 : (unit -> unit) = method0(v0)
    let v4 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v3()" }
    v4
    #endif
    #if !FABLE_COMPILER && !F...

── fsharp - import ─────────────────────────────────────────────────────────────
let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
    let v2 : string = v0.ToString ()
    let v3 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
    let v4 : System.Guid = System.Guid $"{v3}{v2.[[v3.Length..]]}"
    v4
and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
    closure1(v0)
and closure5 (v0 : string, v1 : string) (v2 : string) : string =
    let v3 : string = v2.Replace (v0, v1)
    v3
and closure4 (v0 : string) (v1 : string) : (string -> string) =
    closure5(v0, v1)
and closure3 () (v0 : string) : (string -> (string -> string)) =
    closure4(v0)
and method0 () : (string -> (string -> (string -> string))) =
    closure3()
and closure2 () (v0 : System.Guid) : System.DateTime =
  ...

── fsharp - import ─────────────────────────────────────────────────────────────
let rec closure0 () () : string =
    let v0 : string = 
System.Reflection.Assembly.GetEntryAssembly().GetName().Name
    let v1 : (unit -> string) = System.IO.Path.GetTempPath
    let v2 : string = v1 ()
    let v3 : string = $"{v0}"
    let v4 : string = System.IO.Path.Combine (v2, v3)
    let v5 : System.DateTime = System.DateTime.Now
    let v6 : System.Guid = System.Guid.NewGuid ()
    let v7 : string = v6.ToString ()
    let v8 : string = v5.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
    let v9 : System.Guid = System.Guid $"{v8}{v7.[[v8.Length..]]}"
    let v10 : string = v9.ToString ()
    let v11 : string = System.IO.Path.Combine (v4, v10)
    v11
let v0 : (unit -> string) = closure0()
let create_temp_directory_name x = v0 x
()


── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Common =

#if !WASM && !FABLE_COMPILER
    let Date_time = {|
        new_guid_from_date_time =
#if !INTERACTIVE
            Date_time.new_guid_from_date_time
#else
            new_guid_from_date_time
#endif
    |}
#endif

    let nl = System.Environment.NewLine
    let q = @""""

    let inline cons head tail = head :: tail

    module String =
        let inline contains (value : string) (input : string) =
            input.Contains value

        let inline endsWith (value : string) (input : string) =
            input.EndsWith value

        let inline padLeft totalWidth paddingChar (input : string) =
            input.PadLeft (totalWidth, paddingChar)

        let inline replace (oldVa...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module CommonFSharp =

    open Common

    /// ## getUnionCaseName

    let inline getUnionCaseName<'T> (x: 'T) =
        match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with
        | case, _ -> case.Name


── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Async =

    open Common

    /// ## choice

    let inline choice asyncs = async {
        let e = Event<_> ()
        use cts = new System.Threading.CancellationTokenSource ()
        let fn =
            asyncs
            |> Seq.map (fun a -> async {
                let! x = a
                e.Trigger x
            })
            |> Async.Parallel
            |> Async.Ignore
        Async.Start (fn, cts.Token)
        let! result = Async.AwaitEvent e.Publish
        cts.Cancel ()
        return result
    }

    /// ## map

    let inline map fn a = async {
        let! x = a
        return fn x
    }

    /// ## catch

    let inline catch a =
        a
        |> Async.Catch
        ...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module AsyncSeq =

    open Common

    /// ## subscribeEvent

    let inline subscribeEvent (event: IEvent<'H, 'A>) map =
        let observable = System.Reactive.Linq.Observable.FromEventPattern<'H, 
'A>(event.AddHandler, event.RemoveHandler)
        System.Reactive.Linq.Observable.Select (observable, fun event -> map 
event.EventArgs)
        |> FSharp.Control.AsyncSeq.ofObservableBuffered

    let subscribeToken (token : System.Threading.CancellationToken) =
        let tcs = new System.Threading.Tasks.TaskCompletionSource ()
        System.Action tcs.SetResult |> token.Register |> ignore
        let start = System.DateTime.Now.Ticks
        FSharp.Control.AsyncSeq.unfoldAsync
            (fun (...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Runtime =

    open Common

    /// ## isWindows

    let isWindows =
        fun () ->
            System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform
                System.Runtime.InteropServices.OSPlatform.Windows
        |> memoize

    /// ## getExecutableSuffix

    let inline getExecutableSuffix () =
        if isWindows ()
        then ".exe"
        else ""

    /// ## splitCommand

    type private CommandParseStep =
        | Start
        | Path of quoted: bool
        | Arguments

    let splitCommand (command: string) =
        let rec loop (path, args) chars step =
            match chars, step with
            | ('"' | '\'') :: tail, _ when path = "" -> loop (pat...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module FileSystem =

    let File_system = {|
        create_temp_directory_name =
#if !INTERACTIVE
            File_system.create_temp_directory_name
#else
            create_temp_directory_name
#endif
    |}

    open Common

    /// ## Operators

    module Operators =
        let inline (</>) a b =
            System.IO.Path.Combine (a, b)

    open Operators

    /// ## createTempDirectory

    let inline createTempDirectory () =
        let tempFolder = File_system.create_temp_directory_name ()
        let result = System.IO.Directory.CreateDirectory tempFolder

        if not result.Exists then
            let getLocals () =
                $"tempFolder: {tempFolder} / result: {({|
        ...

── fsharp ──────────────────────────────────────────────────────────────────────
open Common

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

open FileSystem.Operators

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## isWindows                                                                 │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let isWindows =
    fun () ->
        System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform
            System.Runtime.InteropServices.OSPlatform.Windows
    |> memoize

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

isWindows ()

╭─[ 56.44ms - return value ]───────────────────────────────────────────────────╮
│ <div class="dni-plaintext"><pre>False</pre></div><style>                     │
│ .dni-code-hint {                                                             │
│     font-style: italic;                                                      │
│     overflow: hidden;                                                        │
│     white-space: nowrap;                                                     │
│ }                                                                            │
│ .dni-treeview {                                                              │
│     white-space: nowrap;                                                     │
│ }                                                                            │
│ .dni-treeview td {                                                           │
│     vertical-align: top;                                                     │
│     text-align: start;                                                       │
│ }                                                                            │
│ details.dni-treeview {                                                       │
│     padding-left: 1em;                                                       │
│ }                                                                            │
│ table td {                                                                   │
│     text-align: start;                                                       │
│ }                                                                            │
│ table tr {                                                                   │
│     vertical-align: top;                                                     │
│     margin: 0em 0px;                                                         │
│ }                                                                            │
│ table tr td pre                                                              │
│ {                                                                            │
│     vertical-align: top !important;                                          │
│     margin: 0em 0px !important;                                              │
│ }                                                                            │
│ table th {                                                                   │
│     text-align: start;                                                       │
│ }                                                                            │
│ </style>                                                                     │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## getExecutableSuffix                                                       │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline getExecutableSuffix () =
    if isWindows ()
    then ".exe"
    else ""

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

getExecutableSuffix ()


── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## splitCommand                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
type private CommandParseStep =
    | Start
    | Path of quoted: bool
    | Arguments

let splitCommand (command: string) =
    let rec loop (path, args) chars step =
        match chars, step with
        | ('"' | '\'') :: tail, _ when path = "" -> loop (path, args) tail (Path
true)
        | ('"' | '\'') :: tail, Path true -> loop (path, args) tail (Path false)
        | ' ' :: tail, Path true -> loop ($"{path} ", args) tail (Path true)
        | ' ' :: tail, (Start | Path _) -> loop (path, args) tail Arguments
        | char :: tail, Arguments -> loop (path, $"{args}{char}") tail Arguments
        | char :: tail, _ -> loop ($"{path}{char}", args) tail step
        | _, _ -> path |> String.replace @"\" "/", args
    loop ("", "") (command |> Seq.toList) Start

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

splitCommand ""
|> _assertEqual ("", "")

splitCommand "/a/b/c"
|> _assertEqual ("/a/b/c", "")

splitCommand "cat file.txt"
|> _assertEqual ("cat", "file.txt")

splitCommand """..\..\file.exe file1.txt file2.txt"""
|> _assertEqual ("../../file.exe", "file1.txt file2.txt")

splitCommand @"c:\dir\file.exe ""file1.txt file2.txt"""
|> _assertEqual ("c:/dir/file.exe", @"""file1.txt file2.txt""")

splitCommand @"""..\..\dir name\file.exe"" ""file 1.txt"" file2.txt"
|> _assertEqual ("../../dir name/file.exe", @"""file 1.txt"" file2.txt")

splitCommand @"""..\..\file 1.exe"" -c \\""echo 1\\"""
|> _assertEqual ("../../file 1.exe", @"-c \\""echo 1\\""")

splitCommand @"..\..\file 1.exe -c \\""echo 1\\"""
|> _assertEqual ("../../file", @"1.exe -c \\""echo 1\\""")

╭─[ 53.37ms - stdout ]─────────────────────────────────────────────────────────╮
│ ( ,  )                                                                       │
│ ( /a/b/c,  )                                                                 │
│ ( cat, file.txt )                                                            │
│ ( ../../file.exe, file1.txt file2.txt )                                      │
│ ( c:/dir/file.exe, "file1.txt file2.txt" )                                   │
│ ( ../../dir name/file.exe, "file 1.txt" file2.txt )                          │
│ ( ../../file 1.exe, -c \\"echo 1\\" )                                        │
│ ( ../../file, 1.exe -c \\"echo 1\\" )                                        │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## executeAsync                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
type ExecutionLine =
    {
        ProcessId : int
        Line : string
        Error : bool
    }

type ExecutionOptions =
    {
        Command : string
        WorkingDirectory : string option
        CancellationToken : System.Threading.CancellationToken option
        OnLine : (ExecutionLine -> Async<unit>) option
    }

let inline executeWithOptionsAsync (options : ExecutionOptions) = async {
    let fileName, arguments = options.Command |> splitCommand
    let workingDirectory = options.WorkingDirectory |> Option.defaultValue ""

    trace Debug (fun () -> $"executeAsync / options: {options}") getLocals

    let startInfo = System.Diagnostics.ProcessStartInfo (
        Arguments = arguments,
        CreateNoWindow = true,
        FileName = fileName,
        RedirectStandardError = true,
        RedirectStandardOutput = true,
        StandardOutputEncoding = System.Text.Encoding.UTF8,
        UseShellExecute = false,
        WorkingDirectory = workingDirectory
    )

    use proc = new System.Diagnostics.Process (StartInfo = startInfo)
    let output = System.Collections.Concurrent.ConcurrentStack<string> ()

    let inline event error (e: System.Diagnostics.DataReceivedEventArgs) = async
{
        if e.Data <> null then
            match options.OnLine with
            | Some onLine ->
                do!
                    onLine
                        {
                            ProcessId = proc.Id
                            Line = e.Data
                            Error = error
                        }
            | None -> ()

            trace
                Verbose
                (fun () -> $"> {e.Data}")
                Common.getLocals

            output.Push
                $"{
                    if error then '[['.ToString() else System.String.Empty
                }{
                    e.Data
                }{
                    if error then ']]'.ToString() else System.String.Empty
                }"
    }

    proc.OutputDataReceived.Add (event false >> Async.StartImmediate)
    proc.ErrorDataReceived.Add (event true >> Async.StartImmediate)

    if proc.Start () |> not
    then failwith $"executeAsync / proc.Start () error"

    proc.BeginErrorReadLine ()
    proc.BeginOutputReadLine ()

    let! ct =
        options.CancellationToken
        |> Option.defaultValue System.Threading.CancellationToken.None
        |> Async.mergeCancellationTokenWithDefaultAsync

    use reg = ct.Register (fun _ ->
        if not proc.HasExited then proc.Kill ()
    )

    let! exitCode = async {
        try
            do! proc.WaitForExitAsync ct |> Async.AwaitTask
            return proc.ExitCode
        with :? System.Threading.Tasks.TaskCanceledException as ex ->
            trace Warning (fun () -> $"executeAsync / WaitForExitAsync / ex: {ex
|> formatException}") getLocals
            ex |> formatException |> output.Push
            return System.Int32.MinValue
    }

    let output = output |> Seq.rev |> String.concat "\n"

    trace Debug (fun () ->
        $"executeAsync / exitCode: {exitCode} / output.Length: {output.Length}"
    ) getLocals

    return exitCode, output
}

let inline executeAsync command =
    executeWithOptionsAsync
        {
            Command = command
            CancellationToken = None
            OnLine = None
            WorkingDirectory = None
        }

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let tempFolder = FileSystem.createTempDirectory ()
let fileName = "test.txt"
let path = tempFolder </> fileName

async {
    let! exitCode, result = executeAsync @$"pwsh -c ""Get-Content {path}"""
    exitCode |> _assertEqual 1
    result |> _stringContains "not exist"

    do! "0" |> FileSystem.writeAllTextAsync path

    return!
        executeWithOptionsAsync
            {
                Command = @$"pwsh -c ""Get-Content {fileName}"""
                CancellationToken = None
                OnLine = None
                WorkingDirectory = Some tempFolder
            }

}
|> Async.runWithTimeout 10000
|> function
    | Some (exitCode, output) ->
        exitCode |> _assertEqual 0
        output |> _assertEqual "0"
        true
    | _ -> false
|> _assertEqual true

╭─[ 1.42s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:00:00 #1 [Debug] executeAsync / options: { Command =                      │
│    "pwsh -c "Get-Content                                                     │
│ /tmp/dotnet-repl/20240329-2203-2866-6650-65b8adc3e8a7/test.txt""             │
│   WorkingDirectory = None                                                    │
│   CancellationToken = None                                                   │
│   OnLine = None }                                                            │
│ 00:00:00 #2 [Verbose] > Get-Content: Cannot find path              │
│ '/tmp/dotnet-repl/20240329-2203-2866-6650-65b8adc3e8a7/test.txt' because it  │
│ does not exist.                                                            │
│ 00:00:00 #3 [Debug] executeAsync / exitCode: 1 / output.Length: 141          │
│ 1                                                                            │
│ [Get-Content: Cannot find path                                     │
│ '/tmp/dotnet-repl/20240329-2203-2866-6650-65b8adc3e8a7/test.txt' because it  │
│ does not exist.]                                                           │
│ 00:00:00 #4 [Debug] executeAsync / options: { Command = "pwsh -c             │
│ "Get-Content test.txt""                                                      │
│   WorkingDirectory =                                                         │
│    Some "/tmp/dotnet-repl/20240329-2203-2866-6650-65b8adc3e8a7"              │
│   CancellationToken = None                                                   │
│   OnLine = None }                                                            │
│ 00:00:00 #5 [Verbose] > 0                                                    │
│ 00:00:01 #6 [Debug] executeAsync / exitCode: 0 / output.Length: 1            │
│ 0                                                                            │
│ 0                                                                            │
│ True                                                                         │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let tempFolder = FileSystem.createTempDirectory ()
let path = tempFolder </> "test.txt"

let command = @$"pwsh -c ""Get-Content {path}"""

async {
    do! "0" |> FileSystem.writeAllTextAsync path
    let cts = new System.Threading.CancellationTokenSource ()
    trace Debug (fun () -> "1") getLocals
    let! result =
        executeWithOptionsAsync
            {
                Command = command
                CancellationToken = Some cts.Token
                OnLine = None
                WorkingDirectory = None
            }
        |> Async.StartChild
    trace Debug (fun () -> "2") getLocals
    do! Async.Sleep 100
    trace Debug (fun () -> "3") getLocals
    cts.Cancel ()
    trace Debug (fun () -> "4") getLocals
    let! exitCode, output = result
    trace Debug (fun () -> "5") getLocals
    return exitCode, output
}
|> Async.runWithTimeout 10000
|> function
    | Some (exitCode, output) ->
        exitCode |> _assertEqual -2147483648
        output |> _assertEqual "System.Threading.Tasks.TaskCanceledException: A 
task was canceled."

        true
    | _ -> false
|> _assertEqual true

╭─[ 405.99ms - stdout ]────────────────────────────────────────────────────────╮
│ 00:00:01 #7 [Debug] 1                                                        │
│ 00:00:01 #9 [Debug] 2                                                        │
│ 00:00:01 #8 [Debug] executeAsync / options: { Command =                      │
│    "pwsh -c "Get-Content                                                     │
│ /tmp/dotnet-repl/20240329-2203-3003-0350-0ffd43c381de/test.txt""             │
│   WorkingDirectory = None                                                    │
│   CancellationToken = Some System.Threading.CancellationToken                │
│   OnLine = None }                                                            │
│ 00:00:01 #10 [Debug] 3                                                       │
│ 00:00:01 #11 [Debug] 4                                                       │
│ 00:00:01 #12 [Warning] executeAsync / WaitForExitAsync / ex:                 │
│ System.Threading.Tasks.TaskCanceledException: A task was canceled.           │
│ 00:00:01 #13 [Debug] executeAsync / exitCode: -2147483648 / output.Length:   │
│ 66                                                                           │
│ 00:00:01 #14 [Debug] 5                                                       │
│ -2147483648                                                                  │
│ System.Threading.Tasks.TaskCanceledException: A task was canceled.           │
│ True                                                                         │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## splitArgs                                                                 │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline splitArgs commandLine =
    commandLine
    |> System.CommandLine.Parsing.CommandLineStringSplitter.Instance.Split

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

"""a b "c d" e"""
|> splitArgs
|> Seq.toArray
|> _assertEqual [[| "a"; "b"; "c d"; "e" |]]

╭─[ 16.54ms - stdout ]─────────────────────────────────────────────────────────╮
│ [ a, b, c d, e ]                                                             │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## parseArgs                                                                 │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline parseArgs<'T when 'T :> Argu.IArgParserTemplate> args =
    let assemblyName = 
System.Reflection.Assembly.GetEntryAssembly().GetName().Name
    let errorHandler : Argu.IExiter =
        if [[ "Microsoft.DotNet.Interactive.App"; "dotnet-repl" ]] |> 
List.contains assemblyName
        then Argu.ExceptionExiter ()
        else Argu.ProcessExiter (function Argu.ErrorCode.HelpText -> None | _ ->
Some System.ConsoleColor.Red)

    let parser =
        Argu.ArgumentParser.Create<'T> (
            programName = $"{assemblyName}{getExecutableSuffix ()}",
            errorHandler = errorHandler
        )

    parser.ParseCommandLine args

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

[[<RequireQualifiedAccess>]]
type Arguments =
    | [[<Argu.ArguAttributes.MainCommand; Argu.ArguAttributes.ExactlyOnce; 
Argu.ArguAttributes.Last>]]
        Paths of paths : string list

    interface Argu.IArgParserTemplate with
        member s.Usage =
            match s with
            | Paths _ -> nameof Paths

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

Argu.ArgumentParser.Create<Arguments>().PrintUsage ()

╭─[ 60.95ms - return value ]───────────────────────────────────────────────────╮
│ USAGE: dotnet-repl [--help] <paths>...                                       │
│                                                                              │
│ PATHS:                                                                       │
│                                                                              │
│     <paths>...            Paths                                              │
│                                                                              │
│ OPTIONS:                                                                     │
│                                                                              │
│     --help                display this list of options.                      │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

fun () -> parseArgs<Arguments> [[||]] |> ignore
|> _throwsC (fun ex _ ->
    formatException ex
    |> _stringContains "Argu.ArguParseException: ERROR: missing parameter 
'<paths>...'."
)

╭─[ 35.72ms - stdout ]─────────────────────────────────────────────────────────╮
│ FSI_0033+it@3-246                                                            │
│ Argu.ArguParseException: ERROR: missing parameter '<paths>...'.              │
│ USAGE: dotnet-repl [--help] <paths>...                                       │
│                                                                              │
│ PATHS:                                                                       │
│                                                                              │
│     <paths>...            Paths                                              │
│                                                                              │
│ OPTIONS:                                                                     │
│                                                                              │
│     --help                display this list of options.                      │
│                                                                              │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline parseAllArgs<'T when 'T :> Argu.IArgParserTemplate> args =
    args
    |> parseArgs<'T>
    |> fun results -> results.GetAllResults ()

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

[[<RequireQualifiedAccess>]]
type Arguments =
    | [[<Argu.ArguAttributes.MainCommand; Argu.ArguAttributes.ExactlyOnce; 
Argu.ArguAttributes.Last>]]
        Paths of paths : string list

    interface Argu.IArgParserTemplate with
        member s.Usage =
            match s with
            | Paths _ -> nameof Paths

parseAllArgs<Arguments> [[| "a b"; "c" |]]
|> _assertEqual [[ Arguments.Paths [[ "a b"; "c" ]] ]]

╭─[ 61.75ms - stdout ]─────────────────────────────────────────────────────────╮
│ FSharpList<Arguments>                                                        │
│       - paths: [ a b, c ]                                                    │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline parseArgsMap<'T when 'T :> Argu.IArgParserTemplate> args =
    args
    |> parseAllArgs<'T>
    |> List.groupBy CommonFSharp.getUnionCaseName<'T>
    |> Map.ofList

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

parseArgsMap<Arguments> [[| "a b"; "c" |]]
|> _assertEqual (
    [[ nameof Arguments.Paths, [[ Arguments.Paths [[ "a b"; "c" ]] ]] ]]
    |> Map.ofList
)

╭─[ 34.96ms - stdout ]─────────────────────────────────────────────────────────╮
│ FSharpMap<String,FSharpList<Arguments>>                                      │
│       - Key: Paths                                                           │
│         Value: FSharpList<Arguments>                                         │
│           - paths: [ a b, c ]                                                │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
[NbConvertApp] Converting notebook Runtime.dib.ipynb to html
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
  validate(nb)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
  return _pygments_highlight(
[NbConvertApp] Writing 339870 bytes to Runtime.dib.html

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ # Toml (Polyglot)                                                            │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/fsharp/Notebooks.dib
#!import ../../lib/fsharp/Testing.dib

── fsharp - import ─────────────────────────────────────────────────────────────
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Asp
NetCore.Html.Abstractions.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.FSharp.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.Formatting.dll"
open System
open System.IO
open System.Text
open Microsoft.DotNet.Interactive.Formatting

── fsharp - import ─────────────────────────────────────────────────────────────
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.FSharp.dll"
open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.dll"
open type Microsoft.DotNet.Interactive.Kernel

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

Formatter.ListExpansionLimit <- 100

── fsharp - import ─────────────────────────────────────────────────────────────
#r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

type AssertExceptionFormatter (ex) =
    member _.Text =
        ex.ToString()
            .Replace("32m", "<span style=\"color: green;\">")
            .Replace("36m", "</span>")
            .Replace("31m", "<span style=\"color: red;\">")
            .Replace("\n", "<br/>\n")


Formatter.Register<AssertExceptionFormatter> ((fun (x : 
AssertExceptionFormatter) -> x.Text), "text/html")

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

let inline __expect fn log expected actual =
    if log then printfn $"{actual.ToDisplayString ()}"
    try
        "Testing.__expect" |> fn actual expected
    with :? Expecto.AssertException as ex ->
        AssertExceptionFormatter(ex).Display () |> ignore
        failwith (ex.GetType().FullName)

let inline __contains log expected actual = __expect Expecto.Expect.contains log
expected actual
let inline _contains expected actual = __contains true expected actual

let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
expected actual
let inline _assertEqual expected actual = __assertEqual true expected actual

let inline __isGreaterThan log expected actual = __expect 
Expecto.Expect.isGreaterThan log ex...

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

let inline __isBetween log a b actual =
    let inline isBetween actual (a, b) _ =
        __isGreaterThanOrEqual log a actual
        __isLessThanOrEqual log b actual
    __expect isBetween log (a, b) actual
let inline _isBetween a b actual = __isBetween true a b actual

── fsharp ──────────────────────────────────────────────────────────────────────
#r @"../../../../../../../.nuget/packages/tomlyn/0.17.0/lib/net7.0/Tomlyn.dll"

── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/spiral/common.fsx
#!import ../../lib/spiral/date_time.fsx
#!import ../../lib/fsharp/Common.fs

── fsharp - import ─────────────────────────────────────────────────────────────
type [[<Struct>]] US0 =
    | US0_0
    | US0_1
and [[<Struct>]] US1 =
    | US1_0
    | US1_1 of f1_0 : US0
let rec method0 (v0 : (unit -> unit)) : (unit -> unit) =
    v0
and closure0 () (v0 : (unit -> unit)) : System.IDisposable =
    let mutable result = None
    #if FABLE_COMPILER_RUST && !WASM
    let v1 : (unit -> unit) = method0(v0)
    let v2 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v1()" }
    v2
    #endif
    #if FABLE_COMPILER_RUST && WASM
    let v3 : (unit -> unit) = method0(v0)
    let v4 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v3()" }
    v4
    #endif
    #if !FABLE_COMPILER && !F...

── fsharp - import ─────────────────────────────────────────────────────────────
let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
    let v2 : string = v0.ToString ()
    let v3 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
    let v4 : System.Guid = System.Guid $"{v3}{v2.[[v3.Length..]]}"
    v4
and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
    closure1(v0)
and closure5 (v0 : string, v1 : string) (v2 : string) : string =
    let v3 : string = v2.Replace (v0, v1)
    v3
and closure4 (v0 : string) (v1 : string) : (string -> string) =
    closure5(v0, v1)
and closure3 () (v0 : string) : (string -> (string -> string)) =
    closure4(v0)
and method0 () : (string -> (string -> (string -> string))) =
    closure3()
and closure2 () (v0 : System.Guid) : System.DateTime =
  ...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Common =

#if !WASM && !FABLE_COMPILER
    let Date_time = {|
        new_guid_from_date_time =
#if !INTERACTIVE
            Date_time.new_guid_from_date_time
#else
            new_guid_from_date_time
#endif
    |}
#endif

    let nl = System.Environment.NewLine
    let q = @""""

    let inline cons head tail = head :: tail

    module String =
        let inline contains (value : string) (input : string) =
            input.Contains value

        let inline endsWith (value : string) (input : string) =
            input.EndsWith value

        let inline padLeft totalWidth paddingChar (input : string) =
            input.PadLeft (totalWidth, paddingChar)

        let inline replace (oldVa...

── fsharp ──────────────────────────────────────────────────────────────────────
open Common

── fsharp ──────────────────────────────────────────────────────────────────────
let inline (/./) (table: Tomlyn.Model.TomlTable) (key: string) : 
Tomlyn.Model.TomlTable =
    table.[[key]] :?> Tomlyn.Model.TomlTable

let inline (/../) (table: Tomlyn.Model.TomlTable) (key: string) : 'T seq =
    table.[[key]] :?> Tomlyn.Model.TomlArray |> Seq.cast<'T>

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let tomlContent =
    """
[[extension]]
paths = [["/a", "/b"]]
"""

let toml = Tomlyn.Toml.Parse tomlContent
let tomlModel = Tomlyn.Toml.ToModel toml

let paths : string seq = tomlModel /./ "extension" /../ "paths"

paths
|> Seq.toList
|> _assertEqual [[ "/a"; "/b" ]]

╭─[ 77.90ms - stdout ]─────────────────────────────────────────────────────────╮
│ [ /a, /b ]                                                                   │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
[NbConvertApp] Converting notebook Toml.dib.ipynb to html
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
  validate(nb)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
  return _pygments_highlight(
[NbConvertApp] Writing 278114 bytes to Toml.dib.html
00:00:00 #1 [Debug] writeDibCode / output: Fs / path: Common.dib
00:00:00 #1 [Debug] writeDibCode / output: Fs / path: Async.dib
00:00:00 #1 [Debug] writeDibCode / output: Fs / path: AsyncSeq.dib
00:00:00 #1 [Debug] writeDibCode / output: Fs / path: CommonFSharp.dib
00:00:00 #5 [Debug] parseDibCode / output: Fs / file: CommonFSharp.dib
00:00:00 #4 [Debug] parseDibCode / output: Fs / file: Async.dib
00:00:00 #5 [Debug] parseDibCode / output: Fs / file: AsyncSeq.dib
00:00:00 #4 [Debug] parseDibCode / output: Fs / file: Common.dib
00:00:00 #9 [Debug] writeDibCode / output: Fs / path: Networking.dib
00:00:00 #8 [Debug] writeDibCode / output: Fs / path: FileSystem.dib
00:00:00 #10 [Debug] parseDibCode / output: Fs / file: Networking.dib
00:00:00 #11 [Debug] parseDibCode / output: Fs / file: FileSystem.dib
00:00:00 #8 [Debug] writeDibCode / output: Fs / path: Crypto.dib
00:00:00 #8 [Debug] writeDibCode / output: Fs / path: Threading.dib
00:00:00 #12 [Debug] parseDibCode / output: Fs / file: Crypto.dib
00:00:00 #13 [Debug] parseDibCode / output: Fs / file: Threading.dib
00:00:00 #14 [Debug] writeDibCode / output: Fs / path: Runtime.dib
00:00:00 #15 [Debug] parseDibCode / output: Fs / file: Runtime.dib
00:00:00 #16 [Debug] writeDibCode / output: Fs / path: Toml.dib
00:00:00 #17 [Debug] parseDibCode / output: Fs / file: Toml.dib
In [ ]:
{ . "$ScriptDir/../lib/rust/fable/build.ps1" } | Invoke-Block
── pwsh ────────────────────────────────────────────────────────────────────────
. ../../../scripts/nbs_header.ps1
. ../../../scripts/core.ps1

── pwsh ────────────────────────────────────────────────────────────────────────
dotnet fable --optimize --lang rs --extension .rs

╭─[ 5.93s - stdout ]───────────────────────────────────────────────────────────╮
│ Fable 4.14.0: F# to Rust compiler (status: alpha)                         │
│                                                                           │
│ Thanks to the contributor! @psfblair                                         │
│ Stand with Ukraine! https://standwithukraine.com.ua/                      │
│                                                                              │
│ Parsing fable-library-rust.fsproj...                                      │
│ .> dotnet restore fable-library-rust.fable-temp.csproj                    │
│ -p:FABLE_COMPILER=true -p:FABLE_COMPILER_4=true -p:FABLE_COMPILER_RUST=true  │
│   Determining projects to restore...                                         │
│   Restored                                                                   │
│ /home/runner/work/polyglot/polyglot/lib/rust/fable/fable-library-rust.fable- │
│ temp.csproj (in 70 ms).                                                      │
│ .> dotnet restore                                                         │
│ /home/runner/work/polyglot/polyglot/lib/rust/fable/fable-library-rust.fsproj │
│   Determining projects to restore...                                         │
│   Restored                                                                   │
│ /home/runner/work/polyglot/polyglot/lib/rust/fable/fable-library-rust.fsproj │
│ (in 257 ms).                                                                 │
│ Project and references (1 source files) parsed in 4487ms                  │
│                                                                              │
│ Started Fable compilation...                                              │
│                                                                           │
│ Fable compilation finished in 385ms                                          │
│                                                                              │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
[NbConvertApp] Converting notebook build.dib.ipynb to html
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
  validate(nb)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
  return _pygments_highlight(
[NbConvertApp] Writing 273198 bytes to build.dib.html
In [ ]:
{ . "$ScriptDir/../apps/spiral/build.ps1" } | Invoke-Block
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ # Supervisor (Polyglot)                                                      │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/fsharp/Notebooks.dib
#!import ../../lib/fsharp/Testing.dib

── fsharp - import ─────────────────────────────────────────────────────────────
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Asp
NetCore.Html.Abstractions.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.FSharp.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.Formatting.dll"
open System
open System.IO
open System.Text
open Microsoft.DotNet.Interactive.Formatting

── fsharp - import ─────────────────────────────────────────────────────────────
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.FSharp.dll"
open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.dll"
open type Microsoft.DotNet.Interactive.Kernel

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

Formatter.ListExpansionLimit <- 100

── fsharp - import ─────────────────────────────────────────────────────────────
#r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

type AssertExceptionFormatter (ex) =
    member _.Text =
        ex.ToString()
            .Replace("32m", "<span style=\"color: green;\">")
            .Replace("36m", "</span>")
            .Replace("31m", "<span style=\"color: red;\">")
            .Replace("\n", "<br/>\n")


Formatter.Register<AssertExceptionFormatter> ((fun (x : 
AssertExceptionFormatter) -> x.Text), "text/html")

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

let inline __expect fn log expected actual =
    if log then printfn $"{actual.ToDisplayString ()}"
    try
        "Testing.__expect" |> fn actual expected
    with :? Expecto.AssertException as ex ->
        AssertExceptionFormatter(ex).Display () |> ignore
        failwith (ex.GetType().FullName)

let inline __contains log expected actual = __expect Expecto.Expect.contains log
expected actual
let inline _contains expected actual = __contains true expected actual

let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
expected actual
let inline _assertEqual expected actual = __assertEqual true expected actual

let inline __isGreaterThan log expected actual = __expect 
Expecto.Expect.isGreaterThan log ex...

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

let inline __isBetween log a b actual =
    let inline isBetween actual (a, b) _ =
        __isGreaterThanOrEqual log a actual
        __isLessThanOrEqual log b actual
    __expect isBetween log (a, b) actual
let inline _isBetween a b actual = __isBetween true a b actual

── fsharp ──────────────────────────────────────────────────────────────────────
#r 
@"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
dard2.1/FSharp.Control.AsyncSeq.dll"
#r 
@"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
0/System.Reactive.dll"
#r 
@"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/
netstandard2.0/System.Reactive.Linq.dll"
#r 
@"../../../../../../../.nuget/packages/argu/6.2.2/lib/netstandard2.0/Argu.dll"
#r 
@"../../../../../../../.nuget/packages/system.commandline/2.0.0-beta4.22272.1/li
b/net6.0/System.CommandLine.dll"
#r 
@"../../../../../../../.nuget/packages/microsoft.aspnetcore.http.connections.com
mon/7.0.0/lib/net7.0/Microsoft.AspNetCore.Http.Connections.Common.dll"
#r 
@"../../../../../../../.nuget/packages/microsoft.aspnetcore.http.connections.cli
ent/7.0.0/lib/net7.0/Microsoft.AspNetCore.Http.Connections.Client.dll"
#r 
@"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.common/7.0.0
/lib/net7.0/Microsoft.AspNetCore.SignalR.Common.dll"
#r 
@"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.client/7.0.0
/lib/net7.0/Microsoft.AspNetCore.SignalR.Client.dll"
#r 
@"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.client.core/
7.0.0/lib/net7.0/Microsoft.AspNetCore.SignalR.Client.Core.dll"
#r 
@"../../../../../../../.nuget/packages/fsharp.json/0.4.1/lib/netstandard2.0/FSha
rp.Json.dll"

── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/spiral/common.fsx
#!import ../../lib/spiral/date_time.fsx
#!import ../../lib/spiral/file_system.fsx
#!import ../../lib/fsharp/Common.fs
#!import ../../lib/fsharp/CommonFSharp.fs
#!import ../../lib/fsharp/Threading.fs
#!import ../../lib/fsharp/Async.fs
#!import ../../lib/fsharp/AsyncSeq.fs
#!import ../../lib/fsharp/Networking.fs
#!import ../../lib/fsharp/Runtime.fs
#!import ../../lib/fsharp/FileSystem.fs

── fsharp - import ─────────────────────────────────────────────────────────────
type [[<Struct>]] US0 =
    | US0_0
    | US0_1
and [[<Struct>]] US1 =
    | US1_0
    | US1_1 of f1_0 : US0
let rec method0 (v0 : (unit -> unit)) : (unit -> unit) =
    v0
and closure0 () (v0 : (unit -> unit)) : System.IDisposable =
    let mutable result = None
    #if FABLE_COMPILER_RUST && !WASM
    let v1 : (unit -> unit) = method0(v0)
    let v2 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v1()" }
    v2
    #endif
    #if FABLE_COMPILER_RUST && WASM
    let v3 : (unit -> unit) = method0(v0)
    let v4 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v3()" }
    v4
    #endif
    #if !FABLE_COMPILER && !F...

── fsharp - import ─────────────────────────────────────────────────────────────
let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
    let v2 : string = v0.ToString ()
    let v3 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
    let v4 : System.Guid = System.Guid $"{v3}{v2.[[v3.Length..]]}"
    v4
and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
    closure1(v0)
and closure5 (v0 : string, v1 : string) (v2 : string) : string =
    let v3 : string = v2.Replace (v0, v1)
    v3
and closure4 (v0 : string) (v1 : string) : (string -> string) =
    closure5(v0, v1)
and closure3 () (v0 : string) : (string -> (string -> string)) =
    closure4(v0)
and method0 () : (string -> (string -> (string -> string))) =
    closure3()
and closure2 () (v0 : System.Guid) : System.DateTime =
  ...

── fsharp - import ─────────────────────────────────────────────────────────────
let rec closure0 () () : string =
    let v0 : string = 
System.Reflection.Assembly.GetEntryAssembly().GetName().Name
    let v1 : (unit -> string) = System.IO.Path.GetTempPath
    let v2 : string = v1 ()
    let v3 : string = $"{v0}"
    let v4 : string = System.IO.Path.Combine (v2, v3)
    let v5 : System.DateTime = System.DateTime.Now
    let v6 : System.Guid = System.Guid.NewGuid ()
    let v7 : string = v6.ToString ()
    let v8 : string = v5.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
    let v9 : System.Guid = System.Guid $"{v8}{v7.[[v8.Length..]]}"
    let v10 : string = v9.ToString ()
    let v11 : string = System.IO.Path.Combine (v4, v10)
    v11
let v0 : (unit -> string) = closure0()
let create_temp_directory_name x = v0 x
()


── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Common =

#if !WASM && !FABLE_COMPILER
    let Date_time = {|
        new_guid_from_date_time =
#if !INTERACTIVE
            Date_time.new_guid_from_date_time
#else
            new_guid_from_date_time
#endif
    |}
#endif

    let nl = System.Environment.NewLine
    let q = @""""

    let inline cons head tail = head :: tail

    module String =
        let inline contains (value : string) (input : string) =
            input.Contains value

        let inline endsWith (value : string) (input : string) =
            input.EndsWith value

        let inline padLeft totalWidth paddingChar (input : string) =
            input.PadLeft (totalWidth, paddingChar)

        let inline replace (oldVa...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module CommonFSharp =

    open Common

    /// ## getUnionCaseName

    let inline getUnionCaseName<'T> (x: 'T) =
        match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with
        | case, _ -> case.Name


── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Threading =

    open Common

    /// ## newDisposableToken

    let inline newDisposableToken (mergeToken: 
System.Threading.CancellationToken option) =
        let cts = new System.Threading.CancellationTokenSource ()
        let cts =
            match mergeToken with
            | None -> cts
            | Some mergeToken ->
                System.Threading.CancellationTokenSource.CreateLinkedTokenSource
[[| cts.Token; mergeToken |]]
        let disposable = new_disposable cts.Cancel
        cts.Token, disposable


── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Async =

    open Common

    /// ## choice

    let inline choice asyncs = async {
        let e = Event<_> ()
        use cts = new System.Threading.CancellationTokenSource ()
        let fn =
            asyncs
            |> Seq.map (fun a -> async {
                let! x = a
                e.Trigger x
            })
            |> Async.Parallel
            |> Async.Ignore
        Async.Start (fn, cts.Token)
        let! result = Async.AwaitEvent e.Publish
        cts.Cancel ()
        return result
    }

    /// ## map

    let inline map fn a = async {
        let! x = a
        return fn x
    }

    /// ## catch

    let inline catch a =
        a
        |> Async.Catch
        ...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module AsyncSeq =

    open Common

    /// ## subscribeEvent

    let inline subscribeEvent (event: IEvent<'H, 'A>) map =
        let observable = System.Reactive.Linq.Observable.FromEventPattern<'H, 
'A>(event.AddHandler, event.RemoveHandler)
        System.Reactive.Linq.Observable.Select (observable, fun event -> map 
event.EventArgs)
        |> FSharp.Control.AsyncSeq.ofObservableBuffered

    let subscribeToken (token : System.Threading.CancellationToken) =
        let tcs = new System.Threading.Tasks.TaskCompletionSource ()
        System.Action tcs.SetResult |> token.Register |> ignore
        let start = System.DateTime.Now.Ticks
        FSharp.Control.AsyncSeq.unfoldAsync
            (fun (...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Networking =

    open Common

    /// ## testPortOpen

    let inline testPortOpen port = async {
        let! ct = Async.CancellationToken
        use client = new System.Net.Sockets.TcpClient ()
        try
            do! client.ConnectAsync ("127.0.0.1", port, ct) |> 
Async.awaitValueTaskUnit
            return true
        with ex ->
            trace Verbose (fun () -> $"testPortOpen / ex: {ex |> 
formatException}") getLocals
            return false
    }

    let inline testPortOpenTimeout timeout port = async {
        let! result =
            testPortOpen port
            |> Async.runWithTimeoutAsync timeout
        return
            match result with
            | None -> false
...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Runtime =

    open Common

    /// ## isWindows

    let isWindows =
        fun () ->
            System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform
                System.Runtime.InteropServices.OSPlatform.Windows
        |> memoize

    /// ## getExecutableSuffix

    let inline getExecutableSuffix () =
        if isWindows ()
        then ".exe"
        else ""

    /// ## splitCommand

    type private CommandParseStep =
        | Start
        | Path of quoted: bool
        | Arguments

    let splitCommand (command: string) =
        let rec loop (path, args) chars step =
            match chars, step with
            | ('"' | '\'') :: tail, _ when path = "" -> loop (pat...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module FileSystem =

    let File_system = {|
        create_temp_directory_name =
#if !INTERACTIVE
            File_system.create_temp_directory_name
#else
            create_temp_directory_name
#endif
    |}

    open Common

    /// ## Operators

    module Operators =
        let inline (</>) a b =
            System.IO.Path.Combine (a, b)

    open Operators

    /// ## createTempDirectory

    let inline createTempDirectory () =
        let tempFolder = File_system.create_temp_directory_name ()
        let result = System.IO.Directory.CreateDirectory tempFolder

        if not result.Exists then
            let getLocals () =
                $"tempFolder: {tempFolder} / result: {({|
        ...

── fsharp ──────────────────────────────────────────────────────────────────────
open Common
open FileSystem.Operators
open Microsoft.AspNetCore.SignalR.Client

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## sendJson                                                                  │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline sendJson (port : int) (json : string) = async {
    let! portOpen = Networking.testPortOpen port
    if portOpen then
        try
            let connection = 
HubConnectionBuilder().WithUrl($"http://127.0.0.1:{port}").Build()
            do! connection.StartAsync () |> Async.AwaitTask
            let! result = connection.InvokeAsync<string>("ClientToServerMsg", 
json) |> Async.AwaitTask
            do! connection.StopAsync () |> Async.AwaitTask
            trace Debug (fun () -> $"sendJson / port: {port} / json: {json} / 
result.Length: {result |> Option.ofObj |> Option.map String.length}") getLocals
            return Some result
        with ex ->
            trace Critical (fun () -> $"sendJson / port: {port} / json: {json} /
ex: {ex |> formatException}") getLocals
            return None
    else
        trace Debug (fun () -> "sendJson / error: port not open") getLocals
        return None
}

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## sendObj                                                                   │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline sendObj port obj =
    obj
    |> System.Text.Json.JsonSerializer.Serialize
    |> sendJson port

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## awaitCompiler                                                             │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
type VSCPos = {| line : int; character : int |}
type VSCRange = VSCPos * VSCPos
type RString = VSCRange * string
type TracedError = {| trace : string list; message : string |}
type ClientErrorsRes =
    | FatalError of string
    | TracedError of TracedError
    | PackageErrors of {| uri : string; errors : RString list |}
    | TokenizerErrors of {| uri : string; errors : RString list |}
    | ParserErrors of {| uri : string; errors : RString list |}
    | TypeErrors of {| uri : string; errors : RString list |}

── fsharp ──────────────────────────────────────────────────────────────────────
let inline awaitCompiler port cancellationToken = async {
    let ct, disposable = cancellationToken |> Threading.newDisposableToken
    let! ct = ct |> Async.mergeCancellationTokenWithDefaultAsync

    let compiler = MailboxProcessor.Start (fun inbox -> async {
        let! availablePort = Networking.getAvailablePort (Some 60) port
        if availablePort <> port then
            inbox.Post (port, false)
        else
            let repositoryRoot = FileSystem.getSourceDirectory () |> 
FileSystem.findParent ".paket" false

            let compilerPath =
                repositoryRoot </> "deps/The-Spiral-Language/The Spiral Language
2/artifacts/bin/The Spiral Language 2/release"
                |> System.IO.Path.GetFullPath

            let dllPath = compilerPath </> "Spiral.dll"

            let! exitCode, result =
                Runtime.executeWithOptionsAsync
                    {
                        Command = $@"dotnet ""{dllPath}"" --port {availablePort}
--default-int i32 --default-float f64"
                        CancellationToken = Some ct
                        WorkingDirectory = None
                        OnLine = Some <| fun { Line = line } -> async {
                            if line |> String.contains $"Server bound to: 
http://localhost:{availablePort}" then
                                do! Networking.waitForPortAccess (Some 500) true
availablePort |> Async.Ignore

                                let rec loop retry = async {
                                    let getLocals () = $"port: {availablePort} /
retry: {retry} / {getLocals ()}"
                                    try
                                        let pingObj = {| Ping = true |}
                                        let! pingResult = pingObj |> sendObj 
availablePort
                                        trace Verbose (fun () -> $"awaitCompiler
/ Ping / result: {pingResult}") getLocals
                                    with ex ->
                                        trace Verbose (fun () -> $"awaitCompiler
/ Ping / ex: {ex |> formatException}") getLocals
                                        do! Async.Sleep 10
                                        do! loop (retry + 1)
                                }
                                do! loop 0
                                inbox.Post (availablePort, true)
                        }
                    }
            trace Debug (fun () -> $"awaitCompiler / exitCode: {exitCode} / 
result: {result}") getLocals
            disposable.Dispose ()
    }, ct)

    let! serverPort, managed = compiler.Receive ()

    let connection = 
HubConnectionBuilder().WithUrl($"http://127.0.0.1:{serverPort}").Build ()
    do! connection.StartAsync () |> Async.AwaitTask

    let event = Event<_> ()
    let disposable' = connection.On<string> ("ServerToClientMsg", event.Trigger)
    let stream =
        FSharp.Control.AsyncSeq.unfoldAsync
            (fun () -> async {
                let! msg = event.Publish |> Async.AwaitEvent
                return Some (msg |> 
FSharp.Json.Json.deserialize<ClientErrorsRes>, ())
            })
            ()

    let disposable' =
        new_disposable (fun () ->
            async {
                disposable'.Dispose ()
                do! connection.StopAsync () |> Async.AwaitTask
                disposable.Dispose ()
                if managed
                then do! Networking.waitForPortAccess (Some 2000) false 
serverPort |> Async.Ignore
            }
            |> Async.RunSynchronously
        )

    return
        serverPort,
        stream,
        ct,
        disposable'
}

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## getFileUri                                                                │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline getFileUri (path : string) =
    let path =
        if Runtime.isWindows () |> not
        then path
        else $"{path.[[0]] |> System.Char.ToLower}{path.[[1..]]}" |> 
String.replace "\\" "/"
    $"file:///{path |> String.trimStart [[| '/' |]]}"

── fsharp ──────────────────────────────────────────────────────────────────────
let inline getFilePathFromUri uri =
    match System.Uri.TryCreate (uri, System.UriKind.Absolute) with
    | true, uri -> uri.AbsolutePath |> System.IO.Path.GetFullPath
    | _ -> failwith "invalid uri"

── fsharp ──────────────────────────────────────────────────────────────────────
let inline getCompilerPort () =
    13805

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## serialize_obj                                                             │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
    let serializeObj obj =
        obj
        |> FSharp.Json.Json.serialize
        |> String.replace "\\\\" "\\"
        |> String.replace "\\r\\n" "\n"
        |> String.replace "\\n" "\n"

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## buildFile                                                                 │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline buildFile timeout port cancellationToken path = async {
    let fullPath = path |> System.IO.Path.GetFullPath
    let fileDir = fullPath |> System.IO.Path.GetDirectoryName
    let fileName = fullPath |> System.IO.Path.GetFileNameWithoutExtension
    let! code = fullPath |> FileSystem.readAllTextAsync

    let eventFilter = function
        | FileSystem.FileSystemChange.Changed (path, _) when path = 
$"{fileName}.fsx" -> true
        | _ -> false

    let stream, disposable = fileDir |> FileSystem.watchDirectory eventFilter
    use _ = disposable

    let token, disposable = Threading.newDisposableToken cancellationToken
    use _ = disposable

    let! serverPort, errors, ct, disposable = awaitCompiler port (Some token)
    use _ = disposable

    let fsxContentSeq =
        stream
        |> FSharp.Control.AsyncSeq.choose (function
            | _, (FileSystem.FileSystemChange.Changed (path, Some content) as 
event)
                when event |> eventFilter
                ->
                Some content
            | _ -> None
        )
        |> FSharp.Control.AsyncSeq.map (fun content ->
            Some (content |> String.replace "\r\n" "\n"), None
        )

    let inline printErrorData (data : {| uri : string; errors : RString list |})
=
        let fileName = data.uri |> System.IO.Path.GetFileName
        let errors =
            data.errors
            |> List.map snd
            |> String.concat "\n"
        $"{fileName}:\n{errors}"

    let errorsSeq =
        errors
        |> FSharp.Control.AsyncSeq.choose (fun error ->
            match error with
            | FatalError message ->
                Some (message, error)
            | TracedError data ->
                Some (data.message, error)
            | PackageErrors data when data.errors |> List.isEmpty |> not ->
                Some (data |> printErrorData, error)
            | TokenizerErrors data when data.errors |> List.isEmpty |> not ->
                Some (data |> printErrorData, error)
            | ParserErrors data when data.errors |> List.isEmpty |> not ->
                Some (data |> printErrorData, error)
            | TypeErrors data when data.errors |> List.isEmpty |> not ->
                Some (data |> printErrorData, error)
            | _ -> None
        )
        |> FSharp.Control.AsyncSeq.map (fun (message, error) ->
            None, Some (message, error)
        )

    let timerSeq =
        1000
        |> FSharp.Control.AsyncSeq.intervalMs
        |> FSharp.Control.AsyncSeq.map (fun _ -> None, None)

    let outputSeq =
        [[ fsxContentSeq; errorsSeq; timerSeq ]]
        |> FSharp.Control.AsyncSeq.mergeAll

    let! outputChild =
        ((None, [[]], 0), outputSeq)
        ||> FSharp.Control.AsyncSeq.scan (
            fun (fsxContentResult, errors, typeErrorCount) (fsxContent, error) 
->
                match fsxContent, error with
                | Some fsxContent, None -> Some fsxContent, errors, 
typeErrorCount
                | None, Some (_, FatalError "File main has a type error 
somewhere in its path.") ->
                    fsxContentResult, errors, typeErrorCount + 1
                | None, Some error -> fsxContentResult, error :: errors, 
typeErrorCount
                | None, None when typeErrorCount >= 1 ->
                    fsxContentResult, errors, typeErrorCount + 1
                | _ -> fsxContentResult, errors, typeErrorCount
        )
        |> FSharp.Control.AsyncSeq.takeWhileInclusive (fun (fsxContent, errors, 
typeErrorCount) ->
            trace Debug (fun () -> $"buildFile / takeWhileInclusive / 
fsxContent: {fsxContent |> Option.defaultValue System.String.Empty |> 
String.ellipsis 750} / errors: {errors |> serializeObj} / typeErrorCount: 
{typeErrorCount}") getLocals
            match fsxContent, errors with
            | None, [[]] when typeErrorCount > 2 -> false
            | None, [[]] -> true
            | _ -> false
        )
        |> FSharp.Control.AsyncSeq.tryLast
        |> Async.withCancellationToken ct
        |> Async.catch
        |> Async.runWithTimeoutAsync timeout
        |> Async.StartChild

    let fileOpenObj = {| FileOpen = {| uri = fullPath |> getFileUri; spiText = 
code |} |}
    let! _fileOpenResult = fileOpenObj |> sendObj serverPort

    do! Async.Sleep 60

    let buildFileObj = {| BuildFile = {| uri = fullPath |> getFileUri; backend =
"Fsharp" |} |}
    let! _buildFileResult = buildFileObj |> sendObj serverPort

    return!
        outputChild
        |> Async.map (function
            | Some (Ok (Some (message, errors, _))) ->
                message, errors |> List.distinct |> List.rev
            | Some (Error ex) ->
                trace Critical (fun () -> $"buildFile / error: {ex |> 
serializeObj}") getLocals
                None, [[]]
            | _ -> None, [[]]
        )
}

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## persistCode                                                               │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline persistCode code = async {
    let tempDir = FileSystem.createTempDirectory ()

    let mainPath = tempDir </> "main.spi"
    do! code |> FileSystem.writeAllTextAsync mainPath

    let repositoryRoot = FileSystem.getSourceDirectory () |> 
FileSystem.findParent ".paket" false

    let spiprojPath = tempDir </> "package.spiproj"
    let spiprojCode =
        $"""packageDir: {repositoryRoot </> "lib"}
packages:
    |core-
    spiral-
modules:
    main
"""
    do! spiprojCode |> FileSystem.writeAllTextAsync spiprojPath

    let disposable = new_disposable (fun () ->
        ()
        // tempDir |> FileSystem.deleteDirectoryAsync |> Async.Ignore |> 
Async.RunSynchronously
    )

    return mainPath, disposable
}

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## buildCode                                                                 │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline buildCode timeout cancellationToken code = async {
    let! mainPath, disposable = persistCode code
    use _ = disposable
    let port = getCompilerPort ()
    return! mainPath |> buildFile timeout port cancellationToken
}

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let buildCode timeout cancellationToken code = buildCode timeout 
cancellationToken code

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

"""inl app () =
    console.write_line "text"
    1i32

inl main () =
    app
    |> dyn
    |> ignore
"""
|> buildCode 15000 None
|> Async.runWithTimeout 15000
|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)
|> _assertEqual (
    Some (
        Some """let rec closure0 () () : int32 =
    let v0 : string = "text"
    System.Console.WriteLine v0
    1
let v0 : (unit -> int32) = closure0()
()
""",
        [[]]
    )
)

╭─[ 2.64s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:00:00 #1 [Verbose] testPortOpen / ex: System.AggregateException: One or   │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #2 [Debug] executeAsync / options: { Command =                      │
│    "dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The │
│ Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll"    │
│ --port 13805 --default-int i32 --default-float f64"                          │
│   WorkingDirectory = None                                                    │
│   CancellationToken = Some System.Threading.CancellationToken                │
│   OnLine = Some <fun:buildCode@3-1070> }                                     │
│ 00:00:00 #3 [Verbose] > pwd: /home/runner/work/polyglot/polyglot/apps/spiral │
│ 00:00:00 #4 [Verbose] > dll_path:                                            │
│ /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral      │
│ Language 2/artifacts/bin/The Spiral Language 2/release                       │
│ 00:00:00 #5 [Verbose] testPortOpen / ex: System.AggregateException: One or   │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #6 [Verbose] waitForPortAccess / port: 13805 / retry: 0             │
│ 00:00:00 #7 [Verbose] testPortOpen / ex: System.AggregateException: One or   │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #8 [Verbose] testPortOpen / ex: System.AggregateException: One or   │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #9 [Verbose] testPortOpen / ex: System.AggregateException: One or   │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #10 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #11 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #12 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #13 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #14 [Verbose] > Starting the Spiral Server. It is bound to:         │
│ http://localhost:13805                                                       │
│ 00:00:00 #15 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #16 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #17 [Debug] sendJson / port: 13805 / json: {"Ping":true} /          │
│ result.Length:                                                               │
│ 00:00:00 #18 [Verbose] awaitCompiler / Ping / result: Some(null) / port:     │
│ 13805 / retry: 0                                                             │
│ 00:00:00 #19 [Verbose] > Server bound to: http://localhost:13805             │
│ 00:00:00 #20 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │
│ [] / typeErrorCount: 0                                                       │
│ 00:00:00 #21 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │
│ [] / typeErrorCount: 0                                                       │
│ 00:00:00 #22 [Debug] sendJson / port: 13805 / json:                          │
│ {"FileOpen":{"spiText":"inl app () =\n    console.write_line                 │
│ \u0022text\u0022\n    1i32\n\ninl main () =\n    app\n    |\u003E dyn\n      │
│ |\u003E                                                                      │
│ ignore\n","uri":"file:///tmp/dotnet-repl/20240329-2204-0678-7846-782c7e941cb │
│ 4/main.spi"}} / result.Length:                                               │
│ 00:00:00 #23 [Debug] sendJson / port: 13805 / json:                          │
│ {"BuildFile":{"backend":"Fsharp","uri":"file:///tmp/dotnet-repl/20240329-220 │
│ 4-0678-7846-782c7e941cb4/main.spi"}} / result.Length:                        │
│ 00:00:01 #24 [Verbose] > Building                                            │
│ /tmp/dotnet-repl/20240329-2204-0678-7846-782c7e941cb4/main.spi               │
│ 00:00:01 #25 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │
│ [] / typeErrorCount: 0                                                       │
│ 00:00:02 #26 [Debug] buildFile / takeWhileInclusive / fsxContent: let rec    │
│ closure0 () () : int32 =                                                     │
│     let v0 : string = "text"                                                 │
│     System.Console.WriteLine v0                                              │
│     1                                                                        │
│ let v0 : (unit -> int32) = closure0()                                        │
│ ()                                                                           │
│  / errors: [] / typeErrorCount: 0                                            │
│ 00:00:02 #27 [Verbose] waitForPortAccess / port: 13805 / retry: 0            │
│ 00:00:02 #28 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #29 [Debug] watchWithFilter / Disposing watch stream / filter:      │
│ FileName, LastWrite                                                          │
│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>>                 │
│       Value:       - FSharpOption<String>                                    │
│           Value: let rec closure0 () () : int32 =                            │
│     let v0 : string = "text"                                                 │
│     System.Console.WriteLine v0                                              │
│     1                                                                        │
│ let v0 : (unit -> int32) = closure0()                                        │
│ ()                                                                           │
│                                                                              │
│       - [  ]                                                                 │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

""
|> buildCode 10000 None
|> Async.runWithTimeout 10000
|> _assertEqual None

╭─[ 10.15s - stdout ]──────────────────────────────────────────────────────────╮
│ 00:00:02 #30 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #31 [Debug] executeAsync / options: { Command =                     │
│    "dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The │
│ Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll"    │
│ --port 13805 --default-int i32 --default-float f64"                          │
│   WorkingDirectory = None                                                    │
│   CancellationToken = Some System.Threading.CancellationToken                │
│   OnLine = Some <fun:buildCode@3-1070> }                                     │
│ 00:00:02 #32 [Verbose] > pwd:                                                │
│ /home/runner/work/polyglot/polyglot/apps/spiral                              │
│ 00:00:02 #33 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #34 [Verbose] > dll_path:                                           │
│ /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral      │
│ Language 2/artifacts/bin/The Spiral Language 2/release                       │
│ 00:00:02 #35 [Verbose] waitForPortAccess / port: 13805 / retry: 0            │
│ 00:00:02 #36 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #37 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #38 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #39 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #40 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #41 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #42 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #43 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #44 [Verbose] > Starting the Spiral Server. It is bound to:         │
│ http://localhost:13805                                                       │
│ 00:00:02 #45 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:02 #46 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:03 #47 [Debug] sendJson / port: 13805 / json: {"Ping":true} /          │
│ result.Length:                                                               │
│ 00:00:03 #48 [Verbose] awaitCompiler / Ping / result: Some(null) / port:     │
│ 13805 / retry: 0                                                             │
│ 00:00:03 #49 [Verbose] > Server bound to: http://localhost:13805             │
│ 00:00:03 #50 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │
│ [] / typeErrorCount: 0                                                       │
│ 00:00:03 #51 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │
│ [] / typeErrorCount: 0                                                       │
│ 00:00:03 #52 [Debug] sendJson / port: 13805 / json:                          │
│ {"FileOpen":{"spiText":"","uri":"file:///tmp/dotnet-repl/20240329-2204-0941- │
│ 4140-41b50598dc01/main.spi"}} / result.Length:                               │
│ 00:00:03 #53 [Debug] sendJson / port: 13805 / json:                          │
│ {"BuildFile":{"backend":"Fsharp","uri":"file:///tmp/dotnet-repl/20240329-220 │
│ 4-0941-4140-41b50598dc01/main.spi"}} / result.Length:                        │
│ 00:00:03 #54 [Verbose] > Building                                            │
│ /tmp/dotnet-repl/20240329-2204-0941-4140-41b50598dc01/main.spi               │
│ 00:00:04 #55 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │
│ [] / typeErrorCount: 0                                                       │
│ 00:00:04 #56 [Verbose] > Cannot find `main` in file main.                    │
│ 00:00:04 #57 [Verbose] > Build skipped for                                   │
│ /tmp/dotnet-repl/20240329-2204-0941-4140-41b50598dc01/main.spi               │
│ 00:00:05 #58 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │
│ [] / typeErrorCount: 0                                                       │
│ 00:00:06 #59 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │
│ [] / typeErrorCount: 0                                                       │
│ 00:00:07 #60 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │
│ [] / typeErrorCount: 0                                                       │
│ 00:00:08 #61 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │
│ [] / typeErrorCount: 0                                                       │
│ 00:00:09 #62 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │
│ [] / typeErrorCount: 0                                                       │
│ 00:00:10 #63 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │
│ [] / typeErrorCount: 0                                                       │
│ 00:00:11 #64 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │
│ [] / typeErrorCount: 0                                                       │
│ 00:00:12 #65 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │
│ [] / typeErrorCount: 0                                                       │
│ 00:00:12 #66 [Debug] runWithTimeoutAsync / timeout: 10000                    │
│ 00:00:12 #67 [Verbose] waitForPortAccess / port: 13805 / retry: 0            │
│ 00:00:12 #68 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:12 #69 [Debug] watchWithFilter / Disposing watch stream / filter:      │
│ FileName, LastWrite                                                          │
│ <null>                                                                       │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

"inl app () =
    0i32

inl a = 1

inl main () =
    app
    |> dyn
    |> ignore
"
|> buildCode 10000 None
|> Async.runWithTimeout 10000
|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)
|> _assertEqual (
    Some (
        None,
        [[ "main.spi:
Global inl/let statements should all return functions known at parse time." ]]
    )
)

╭─[ 1.05s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:00:12 #70 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:12 #71 [Debug] executeAsync / options: { Command =                     │
│    "dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The │
│ Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll"    │
│ --port 13805 --default-int i32 --default-float f64"                          │
│   WorkingDirectory = None                                                    │
│   CancellationToken = Some System.Threading.CancellationToken                │
│   OnLine = Some <fun:buildCode@3-1070> }                                     │
│ 00:00:12 #72 [Verbose] > pwd:                                                │
│ /home/runner/work/polyglot/polyglot/apps/spiral                              │
│ 00:00:12 #73 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:12 #74 [Verbose] waitForPortAccess / port: 13805 / retry: 0            │
│ 00:00:12 #75 [Verbose] > dll_path:                                           │
│ /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral      │
│ Language 2/artifacts/bin/The Spiral Language 2/release                       │
│ 00:00:12 #76 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:13 #77 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:13 #78 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:13 #79 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:13 #80 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:13 #81 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:13 #82 [Verbose] > Starting the Spiral Server. It is bound to:         │
│ http://localhost:13805                                                       │
│ 00:00:13 #83 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:13 #84 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:13 #85 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:13 #87 [Debug] sendJson / port: 13805 / json: {"Ping":true} /          │
│ result.Length:                                                               │
│ 00:00:13 #88 [Verbose] awaitCompiler / Ping / result: Some(null) / port:     │
│ 13805 / retry: 0                                                             │
│ 00:00:13 #89 [Verbose] > Server bound to: http://localhost:13805             │
│ 00:00:13 #90 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │
│ [] / typeErrorCount: 0                                                       │
│ 00:00:13 #91 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │
│ [] / typeErrorCount: 0                                                       │
│ 00:00:13 #92 [Debug] sendJson / port: 13805 / json:                          │
│ {"FileOpen":{"spiText":"inl app () =\n    0i32\n\ninl a = 1\n\ninl main ()   │
│ =\n    app\n    |\u003E dyn\n    |\u003E                                     │
│ ignore\n","uri":"file:///tmp/dotnet-repl/20240329-2204-1957-5723-5e6fca4efbf │
│ 3/main.spi"}} / result.Length:                                               │
│ 00:00:13 #93 [Debug] sendJson / port: 13805 / json:                          │
│ {"BuildFile":{"backend":"Fsharp","uri":"file:///tmp/dotnet-repl/20240329-220 │
│ 4-1957-5723-5e6fca4efbf3/main.spi"}} / result.Length:                        │
│ 00:00:13 #94 [Verbose] > Building                                            │
│ /tmp/dotnet-repl/20240329-2204-1957-5723-5e6fca4efbf3/main.spi               │
│ 00:00:13 #95 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │
│ [                                                                            │
│   [                                                                          │
│     "main.spi:                                                               │
│ Global inl/let statements should all return functions known at parse time.", │
│     {                                                                        │
│       "ParserErrors": {                                                      │
│         "errors": [                                                          │
│           [                                                                  │
│             [                                                                │
│               {                                                              │
│                 "character": 0,                                              │
│                 "line": 3                                                    │
│               },                                                             │
│               {                                                              │
│                 "character": 9,                                              │
│                 "line": 3                                                    │
│               }                                                              │
│             ],                                                               │
│             "Global inl/let statements should all return functions known at  │
│ parse time."                                                                 │
│           ]                                                                  │
│         ],                                                                   │
│         "uri":                                                               │
│ "file:///tmp/dotnet-repl/20240329-2204-1957-5723-5e6fca4efbf3/main.spi"      │
│       }                                                                      │
│     }                                                                        │
│   ]                                                                          │
│ ] / typeErrorCount: 0                                                        │
│ 00:00:13 #96 [Verbose] waitForPortAccess / port: 13805 / retry: 0            │
│ 00:00:13 #97 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:13 #98 [Debug] watchWithFilter / Disposing watch stream / filter:      │
│ FileName, LastWrite                                                          │
│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>>                 │
│       Value:       - <null>                                                  │
│       - [ main.spi:                                                          │
│ Global inl/let statements should all return functions known at parse time. ] │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

"""inl main () =
    1i32 / 0i32
"""
|> buildCode 10000 None
|> Async.runWithTimeout 10000
|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)
|> _assertEqual (
    Some (
        None,
        [[ "An attempt to divide by zero has been detected at compile time." ]]
    )
)

╭─[ 2.11s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:00:13 #99 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:13 #100 [Debug] executeAsync / options: { Command =                    │
│    "dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The │
│ Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll"    │
│ --port 13805 --default-int i32 --default-float f64"                          │
│   WorkingDirectory = None                                                    │
│   CancellationToken = Some System.Threading.CancellationToken                │
│   OnLine = Some <fun:buildCode@3-1070> }                                     │
│ 00:00:14 #101 [Verbose] > pwd:                                               │
│ /home/runner/work/polyglot/polyglot/apps/spiral                              │
│ 00:00:14 #102 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:14 #103 [Verbose] > dll_path:                                          │
│ /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral      │
│ Language 2/artifacts/bin/The Spiral Language 2/release                       │
│ 00:00:14 #104 [Verbose] waitForPortAccess / port: 13805 / retry: 0           │
│ 00:00:14 #105 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:14 #106 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:14 #107 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:14 #108 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:14 #109 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:14 #110 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:14 #111 [Verbose] > Starting the Spiral Server. It is bound to:        │
│ http://localhost:13805                                                       │
│ 00:00:14 #112 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:14 #113 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:14 #114 [Debug] sendJson / port: 13805 / json: {"Ping":true} /         │
│ result.Length:                                                               │
│ 00:00:14 #115 [Verbose] awaitCompiler / Ping / result: Some(null) / port:    │
│ 13805 / retry: 0                                                             │
│ 00:00:14 #116 [Verbose] > Server bound to: http://localhost:13805            │
│ 00:00:14 #117 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │
│ errors: [] / typeErrorCount: 0                                               │
│ 00:00:14 #118 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │
│ errors: [] / typeErrorCount: 0                                               │
│ 00:00:14 #119 [Debug] sendJson / port: 13805 / json:                         │
│ {"FileOpen":{"spiText":"inl main () =\n    1i32 /                            │
│ 0i32\n","uri":"file:///tmp/dotnet-repl/20240329-2204-2067-6760-62941ffa08ef/ │
│ main.spi"}} / result.Length:                                                 │
│ 00:00:14 #120 [Debug] sendJson / port: 13805 / json:                         │
│ {"BuildFile":{"backend":"Fsharp","uri":"file:///tmp/dotnet-repl/20240329-220 │
│ 4-2067-6760-62941ffa08ef/main.spi"}} / result.Length:                        │
│ 00:00:14 #121 [Verbose] > Building                                           │
│ /tmp/dotnet-repl/20240329-2204-2067-6760-62941ffa08ef/main.spi               │
│ 00:00:15 #122 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │
│ errors: [] / typeErrorCount: 0                                               │
│ 00:00:15 #123 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │
│ errors: [                                                                    │
│   [                                                                          │
│     "An attempt to divide by zero has been detected at compile time.",       │
│     {                                                                        │
│       "TracedError": {                                                       │
│         "message": "An attempt to divide by zero has been detected at        │
│ compile time.",                                                              │
│         "trace": [                                                           │
│           "Error trace on line: 1, column: 10 in module:                     │
│ /tmp/dotnet-repl/20240329-2204-2067-6760-62941ffa08ef/main.spi.              │
│ inl main () =                                                                │
│          ^                                                                   │
│ ",                                                                           │
│           "Error trace on line: 2, column: 5 in module:                      │
│ /tmp/dotnet-repl/20240329-2204-2067-6760-62941ffa08ef/main.spi.              │
│     1i32 / 0i32                                                              │
│     ^                                                                        │
│ "                                                                            │
│         ]                                                                    │
│       }                                                                      │
│     }                                                                        │
│   ]                                                                          │
│ ] / typeErrorCount: 0                                                        │
│ 00:00:15 #124 [Verbose] waitForPortAccess / port: 13805 / retry: 0           │
│ 00:00:15 #125 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:15 #126 [Debug] watchWithFilter / Disposing watch stream / filter:     │
│ FileName, LastWrite                                                          │
│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>>                 │
│       Value:       - <null>                                                  │
│       - [ An attempt to divide by zero has been detected at compile time. ]  │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

"""inl main () =
    1 + ""
"""
|> buildCode 10000 None
|> Async.runWithTimeout 10000
|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)
|> _assertEqual (
    Some (
        None,
        [[
            "main.spi:
Constraint satisfaction error.
Got: string
Fails to satisfy: number"
        ]]
    )
)

╭─[ 1.83s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:00:15 #127 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:15 #128 [Debug] executeAsync / options: { Command =                    │
│    "dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The │
│ Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll"    │
│ --port 13805 --default-int i32 --default-float f64"                          │
│   WorkingDirectory = None                                                    │
│   CancellationToken = Some System.Threading.CancellationToken                │
│   OnLine = Some <fun:buildCode@3-1070> }                                     │
│ 00:00:16 #129 [Verbose] > pwd:                                               │
│ /home/runner/work/polyglot/polyglot/apps/spiral                              │
│ 00:00:16 #130 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:16 #131 [Verbose] waitForPortAccess / port: 13805 / retry: 0           │
│ 00:00:16 #132 [Verbose] > dll_path:                                          │
│ /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral      │
│ Language 2/artifacts/bin/The Spiral Language 2/release                       │
│ 00:00:16 #133 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:16 #134 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:16 #135 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:16 #136 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:16 #137 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:16 #138 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:16 #139 [Verbose] > Starting the Spiral Server. It is bound to:        │
│ http://localhost:13805                                                       │
│ 00:00:16 #140 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:16 #141 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:16 #142 [Debug] sendJson / port: 13805 / json: {"Ping":true} /         │
│ result.Length:                                                               │
│ 00:00:16 #143 [Verbose] awaitCompiler / Ping / result: Some(null) / port:    │
│ 13805 / retry: 0                                                             │
│ 00:00:16 #144 [Verbose] > Server bound to: http://localhost:13805            │
│ 00:00:16 #145 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │
│ errors: [] / typeErrorCount: 0                                               │
│ 00:00:16 #146 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │
│ errors: [] / typeErrorCount: 0                                               │
│ 00:00:16 #147 [Debug] sendJson / port: 13805 / json:                         │
│ {"FileOpen":{"spiText":"inl main () =\n    1 \u002B                          │
│ \u0022\u0022\n","uri":"file:///tmp/dotnet-repl/20240329-2204-2273-7359-70e3f │
│ e74da1e/main.spi"}} / result.Length:                                         │
│ 00:00:16 #148 [Debug] sendJson / port: 13805 / json:                         │
│ {"BuildFile":{"backend":"Fsharp","uri":"file:///tmp/dotnet-repl/20240329-220 │
│ 4-2273-7359-70e3fe74da1e/main.spi"}} / result.Length:                        │
│ 00:00:16 #149 [Verbose] > Building                                           │
│ /tmp/dotnet-repl/20240329-2204-2273-7359-70e3fe74da1e/main.spi               │
│ 00:00:17 #150 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │
│ errors: [] / typeErrorCount: 0                                               │
│ 00:00:17 #151 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │
│ errors: [] / typeErrorCount: 1                                               │
│ 00:00:17 #152 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │
│ errors: [                                                                    │
│   [                                                                          │
│     "main.spi:                                                               │
│ Constraint satisfaction error.                                               │
│ Got: string                                                                  │
│ Fails to satisfy: number",                                                   │
│     {                                                                        │
│       "TypeErrors": {                                                        │
│         "errors": [                                                          │
│           [                                                                  │
│             [                                                                │
│               {                                                              │
│                 "character": 8,                                              │
│                 "line": 1                                                    │
│               },                                                             │
│               {                                                              │
│                 "character": 10,                                             │
│                 "line": 1                                                    │
│               }                                                              │
│             ],                                                               │
│             "Constraint satisfaction error.                                  │
│ Got: string                                                                  │
│ Fails to satisfy: number"                                                    │
│           ]                                                                  │
│         ],                                                                   │
│         "uri":                                                               │
│ "file:///tmp/dotnet-repl/20240329-2204-2273-7359-70e3fe74da1e/main.spi"      │
│       }                                                                      │
│     }                                                                        │
│   ]                                                                          │
│ ] / typeErrorCount: 1                                                        │
│ 00:00:17 #153 [Verbose] waitForPortAccess / port: 13805 / retry: 0           │
│ 00:00:17 #154 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:17 #155 [Debug] watchWithFilter / Disposing watch stream / filter:     │
│ FileName, LastWrite                                                          │
│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>>                 │
│       Value:       - <null>                                                  │
│       - [ main.spi:                                                          │
│ Constraint satisfaction error.                                               │
│ Got: string                                                                  │
│ Fails to satisfy: number ]                                                   │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

"""inl main () =
    x + y
"""
|> buildCode 10000 None
|> Async.runWithTimeout 10000
|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)
|> _assertEqual (
    Some (
        None,
        [[
            "main.spi:
Unbound variable: x.
Unbound variable: y."
        ]]
    )
)

╭─[ 1.78s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:00:17 #156 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:17 #157 [Debug] executeAsync / options: { Command =                    │
│    "dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The │
│ Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll"    │
│ --port 13805 --default-int i32 --default-float f64"                          │
│   WorkingDirectory = None                                                    │
│   CancellationToken = Some System.Threading.CancellationToken                │
│   OnLine = Some <fun:buildCode@3-1070> }                                     │
│ 00:00:18 #158 [Verbose] > pwd:                                               │
│ /home/runner/work/polyglot/polyglot/apps/spiral                              │
│ 00:00:18 #159 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:18 #160 [Verbose] waitForPortAccess / port: 13805 / retry: 0           │
│ 00:00:18 #161 [Verbose] > dll_path:                                          │
│ /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral      │
│ Language 2/artifacts/bin/The Spiral Language 2/release                       │
│ 00:00:18 #162 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:18 #163 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:18 #164 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:18 #165 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:18 #166 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:18 #167 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:18 #168 [Verbose] > Starting the Spiral Server. It is bound to:        │
│ http://localhost:13805                                                       │
│ 00:00:18 #169 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:18 #170 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:18 #171 [Debug] sendJson / port: 13805 / json: {"Ping":true} /         │
│ result.Length:                                                               │
│ 00:00:18 #172 [Verbose] awaitCompiler / Ping / result: Some(null) / port:    │
│ 13805 / retry: 0                                                             │
│ 00:00:18 #173 [Verbose] > Server bound to: http://localhost:13805            │
│ 00:00:18 #174 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │
│ errors: [] / typeErrorCount: 0                                               │
│ 00:00:18 #175 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │
│ errors: [] / typeErrorCount: 0                                               │
│ 00:00:18 #176 [Debug] sendJson / port: 13805 / json:                         │
│ {"FileOpen":{"spiText":"inl main () =\n    x \u002B                          │
│ y\n","uri":"file:///tmp/dotnet-repl/20240329-2204-2457-5758-5f40ea899b67/mai │
│ n.spi"}} / result.Length:                                                    │
│ 00:00:18 #177 [Debug] sendJson / port: 13805 / json:                         │
│ {"BuildFile":{"backend":"Fsharp","uri":"file:///tmp/dotnet-repl/20240329-220 │
│ 4-2457-5758-5f40ea899b67/main.spi"}} / result.Length:                        │
│ 00:00:18 #178 [Verbose] > Building                                           │
│ /tmp/dotnet-repl/20240329-2204-2457-5758-5f40ea899b67/main.spi               │
│ 00:00:19 #179 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │
│ errors: [] / typeErrorCount: 0                                               │
│ 00:00:19 #180 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │
│ errors: [] / typeErrorCount: 1                                               │
│ 00:00:19 #181 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │
│ errors: [                                                                    │
│   [                                                                          │
│     "main.spi:                                                               │
│ Unbound variable: x.                                                         │
│ Unbound variable: y.",                                                       │
│     {                                                                        │
│       "TypeErrors": {                                                        │
│         "errors": [                                                          │
│           [                                                                  │
│             [                                                                │
│               {                                                              │
│                 "character": 4,                                              │
│                 "line": 1                                                    │
│               },                                                             │
│               {                                                              │
│                 "character": 5,                                              │
│                 "line": 1                                                    │
│               }                                                              │
│             ],                                                               │
│             "Unbound variable: x."                                           │
│           ],                                                                 │
│           [                                                                  │
│             [                                                                │
│               {                                                              │
│                 "character": 8,                                              │
│                 "line": 1                                                    │
│               },                                                             │
│               {                                                              │
│                 "character": 9,                                              │
│                 "line": 1                                                    │
│               }                                                              │
│             ],                                                               │
│             "Unbound variable: y."                                           │
│           ]                                                                  │
│         ],                                                                   │
│         "uri":                                                               │
│ "file:///tmp/dotnet-repl/20240329-2204-2457-5758-5f40ea899b67/main.spi"      │
│       }                                                                      │
│     }                                                                        │
│   ]                                                                          │
│ ] / typeErrorCount: 1                                                        │
│ 00:00:19 #182 [Verbose] waitForPortAccess / port: 13805 / retry: 0           │
│ 00:00:19 #183 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:19 #184 [Debug] watchWithFilter / Disposing watch stream / filter:     │
│ FileName, LastWrite                                                          │
│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>>                 │
│       Value:       - <null>                                                  │
│       - [ main.spi:                                                          │
│ Unbound variable: x.                                                         │
│ Unbound variable: y. ]                                                       │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

"""union a =
    | B
    | c

inl main () =
    ()
"""
|> buildCode 10000 None
|> Async.runWithTimeout 10000
|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)
|> _assertEqual (
    Some (
        None,
        [[ "main.spi:
Expected: uppercase variable" ]]
    )
)

╭─[ 1.02s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:00:19 #185 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:19 #186 [Debug] executeAsync / options: { Command =                    │
│    "dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The │
│ Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll"    │
│ --port 13805 --default-int i32 --default-float f64"                          │
│   WorkingDirectory = None                                                    │
│   CancellationToken = Some System.Threading.CancellationToken                │
│   OnLine = Some <fun:buildCode@3-1070> }                                     │
│ 00:00:19 #187 [Verbose] > pwd:                                               │
│ /home/runner/work/polyglot/polyglot/apps/spiral                              │
│ 00:00:19 #188 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:19 #189 [Verbose] waitForPortAccess / port: 13805 / retry: 0           │
│ 00:00:19 #190 [Verbose] > dll_path:                                          │
│ /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral      │
│ Language 2/artifacts/bin/The Spiral Language 2/release                       │
│ 00:00:19 #191 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:19 #192 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:19 #193 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:19 #194 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:19 #195 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:19 #196 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:19 #197 [Verbose] > Starting the Spiral Server. It is bound to:        │
│ http://localhost:13805                                                       │
│ 00:00:19 #198 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:19 #199 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:20 #200 [Debug] sendJson / port: 13805 / json: {"Ping":true} /         │
│ result.Length:                                                               │
│ 00:00:20 #201 [Verbose] awaitCompiler / Ping / result: Some(null) / port:    │
│ 13805 / retry: 0                                                             │
│ 00:00:20 #202 [Verbose] > Server bound to: http://localhost:13805            │
│ 00:00:20 #203 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │
│ errors: [] / typeErrorCount: 0                                               │
│ 00:00:20 #204 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │
│ errors: [] / typeErrorCount: 0                                               │
│ 00:00:20 #205 [Debug] sendJson / port: 13805 / json:                         │
│ {"FileOpen":{"spiText":"union a =\n    | B\n    | c\n\ninl main () =\n       │
│ ()\n","uri":"file:///tmp/dotnet-repl/20240329-2204-2636-3603-36a771282d57/ma │
│ in.spi"}} / result.Length:                                                   │
│ 00:00:20 #206 [Debug] sendJson / port: 13805 / json:                         │
│ {"BuildFile":{"backend":"Fsharp","uri":"file:///tmp/dotnet-repl/20240329-220 │
│ 4-2636-3603-36a771282d57/main.spi"}} / result.Length:                        │
│ 00:00:20 #207 [Verbose] > Building                                           │
│ /tmp/dotnet-repl/20240329-2204-2636-3603-36a771282d57/main.spi               │
│ 00:00:20 #208 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │
│ errors: [                                                                    │
│   [                                                                          │
│     "main.spi:                                                               │
│ Expected: uppercase variable",                                               │
│     {                                                                        │
│       "ParserErrors": {                                                      │
│         "errors": [                                                          │
│           [                                                                  │
│             [                                                                │
│               {                                                              │
│                 "character": 6,                                              │
│                 "line": 2                                                    │
│               },                                                             │
│               {                                                              │
│                 "character": 7,                                              │
│                 "line": 2                                                    │
│               }                                                              │
│             ],                                                               │
│             "Expected: uppercase variable"                                   │
│           ]                                                                  │
│         ],                                                                   │
│         "uri":                                                               │
│ "file:///tmp/dotnet-repl/20240329-2204-2636-3603-36a771282d57/main.spi"      │
│       }                                                                      │
│     }                                                                        │
│   ]                                                                          │
│ ] / typeErrorCount: 0                                                        │
│ 00:00:20 #209 [Verbose] waitForPortAccess / port: 13805 / retry: 0           │
│ 00:00:20 #210 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:20 #211 [Debug] watchWithFilter / Disposing watch stream / filter:     │
│ FileName, LastWrite                                                          │
│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>>                 │
│       Value:       - <null>                                                  │
│       - [ main.spi:                                                          │
│ Expected: uppercase variable ]                                               │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

"""
/// abc
inl main () =
    ()
"""
|> buildCode 10000 None
|> Async.runWithTimeout 10000
|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)
|> _assertEqual (
    Some (
        None,
        [[ "main.spi:
Expected: whitespace" ]]
    )
)

╭─[ 889.86ms - stdout ]────────────────────────────────────────────────────────╮
│ 00:00:20 #212 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:20 #213 [Debug] executeAsync / options: { Command =                    │
│    "dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The │
│ Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll"    │
│ --port 13805 --default-int i32 --default-float f64"                          │
│   WorkingDirectory = None                                                    │
│   CancellationToken = Some System.Threading.CancellationToken                │
│   OnLine = Some <fun:buildCode@3-1070> }                                     │
│ 00:00:20 #214 [Verbose] > pwd:                                               │
│ /home/runner/work/polyglot/polyglot/apps/spiral                              │
│ 00:00:20 #215 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:20 #216 [Verbose] waitForPortAccess / port: 13805 / retry: 0           │
│ 00:00:20 #217 [Verbose] > dll_path:                                          │
│ /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral      │
│ Language 2/artifacts/bin/The Spiral Language 2/release                       │
│ 00:00:20 #218 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:20 #219 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:20 #220 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:20 #221 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:20 #222 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:20 #223 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:20 #224 [Verbose] > Starting the Spiral Server. It is bound to:        │
│ http://localhost:13805                                                       │
│ 00:00:20 #225 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:20 #226 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:21 #227 [Debug] sendJson / port: 13805 / json: {"Ping":true} /         │
│ result.Length:                                                               │
│ 00:00:21 #228 [Verbose] awaitCompiler / Ping / result: Some(null) / port:    │
│ 13805 / retry: 0                                                             │
│ 00:00:21 #229 [Verbose] > Server bound to: http://localhost:13805            │
│ 00:00:21 #230 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │
│ errors: [] / typeErrorCount: 0                                               │
│ 00:00:21 #231 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │
│ errors: [] / typeErrorCount: 0                                               │
│ 00:00:21 #232 [Debug] sendJson / port: 13805 / json:                         │
│ {"FileOpen":{"spiText":"\n/// abc\ninl main () =\n                           │
│ ()\n","uri":"file:///tmp/dotnet-repl/20240329-2204-2738-3818-3b7494e13100/ma │
│ in.spi"}} / result.Length:                                                   │
│ 00:00:21 #233 [Debug] sendJson / port: 13805 / json:                         │
│ {"BuildFile":{"backend":"Fsharp","uri":"file:///tmp/dotnet-repl/20240329-220 │
│ 4-2738-3818-3b7494e13100/main.spi"}} / result.Length:                        │
│ 00:00:21 #234 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │
│ errors: [                                                                    │
│   [                                                                          │
│     "main.spi:                                                               │
│ Expected: whitespace",                                                       │
│     {                                                                        │
│       "TokenizerErrors": {                                                   │
│         "errors": [                                                          │
│           [                                                                  │
│             [                                                                │
│               {                                                              │
│                 "character": 2,                                              │
│                 "line": 1                                                    │
│               },                                                             │
│               {                                                              │
│                 "character": 3,                                              │
│                 "line": 1                                                    │
│               }                                                              │
│             ],                                                               │
│             "Expected: whitespace"                                           │
│           ]                                                                  │
│         ],                                                                   │
│         "uri":                                                               │
│ "file:///tmp/dotnet-repl/20240329-2204-2738-3818-3b7494e13100/main.spi"      │
│       }                                                                      │
│     }                                                                        │
│   ]                                                                          │
│ ] / typeErrorCount: 0                                                        │
│ 00:00:21 #235 [Verbose] waitForPortAccess / port: 13805 / retry: 0           │
│ 00:00:21 #236 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:21 #237 [Debug] watchWithFilter / Disposing watch stream / filter:     │
│ FileName, LastWrite                                                          │
│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>>                 │
│       Value:       - <null>                                                  │
│       - [ main.spi:                                                          │
│ Expected: whitespace ]                                                       │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

"""
inl main () =
    real
        inl real_unbox forall a. (obj : a) : a =
            typecase obj with
            | _ => obj
        real_unbox ()
    ()
"""
|> buildCode 10000 None
|> Async.runWithTimeout 10000
|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)
|> _assertEqual (
    Some (
        None,
        [[ "Cannot apply a forall with a term." ]]
    )
)

╭─[ 2.14s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:00:21 #238 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:21 #239 [Debug] executeAsync / options: { Command =                    │
│    "dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The │
│ Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll"    │
│ --port 13805 --default-int i32 --default-float f64"                          │
│   WorkingDirectory = None                                                    │
│   CancellationToken = Some System.Threading.CancellationToken                │
│   OnLine = Some <fun:buildCode@3-1070> }                                     │
│ 00:00:21 #240 [Verbose] > pwd:                                               │
│ /home/runner/work/polyglot/polyglot/apps/spiral                              │
│ 00:00:21 #241 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:21 #243 [Verbose] waitForPortAccess / port: 13805 / retry: 0           │
│ 00:00:21 #242 [Verbose] > dll_path:                                          │
│ /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral      │
│ Language 2/artifacts/bin/The Spiral Language 2/release                       │
│ 00:00:21 #244 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:21 #245 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:21 #246 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:21 #247 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:21 #248 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:21 #249 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:21 #250 [Verbose] > Starting the Spiral Server. It is bound to:        │
│ http://localhost:13805                                                       │
│ 00:00:21 #251 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:21 #252 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:21 #253 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:21 #254 [Debug] sendJson / port: 13805 / json: {"Ping":true} /         │
│ result.Length:                                                               │
│ 00:00:21 #255 [Verbose] awaitCompiler / Ping / result: Some(null) / port:    │
│ 13805 / retry: 0                                                             │
│ 00:00:21 #256 [Verbose] > Server bound to: http://localhost:13805            │
│ 00:00:21 #257 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │
│ errors: [] / typeErrorCount: 0                                               │
│ 00:00:21 #258 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │
│ errors: [] / typeErrorCount: 0                                               │
│ 00:00:21 #259 [Debug] sendJson / port: 13805 / json:                         │
│ {"FileOpen":{"spiText":"\ninl main () =\n    real\n        inl real_unbox    │
│ forall a. (obj : a) : a =\n            typecase obj with\n            | _    │
│ =\u003E obj\n        real_unbox ()\n                                         │
│ ()\n","uri":"file:///tmp/dotnet-repl/20240329-2204-2830-3083-3b7b685a0ad4/ma │
│ in.spi"}} / result.Length:                                                   │
│ 00:00:22 #260 [Debug] sendJson / port: 13805 / json:                         │
│ {"BuildFile":{"backend":"Fsharp","uri":"file:///tmp/dotnet-repl/20240329-220 │
│ 4-2830-3083-3b7b685a0ad4/main.spi"}} / result.Length:                        │
│ 00:00:22 #261 [Verbose] > Building                                           │
│ /tmp/dotnet-repl/20240329-2204-2830-3083-3b7b685a0ad4/main.spi               │
│ 00:00:22 #262 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │
│ errors: [] / typeErrorCount: 0                                               │
│ 00:00:23 #263 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │
│ errors: [                                                                    │
│   [                                                                          │
│     "Cannot apply a forall with a term.",                                    │
│     {                                                                        │
│       "TracedError": {                                                       │
│         "message": "Cannot apply a forall with a term.",                     │
│         "trace": [                                                           │
│           "Error trace on line: 2, column: 10 in module:                     │
│ /tmp/dotnet-repl/20240329-2204-2830-3083-3b7b685a0ad4/main.spi.              │
│ inl main () =                                                                │
│          ^                                                                   │
│ ",                                                                           │
│           "Error trace on line: 4, column: 9 in module:                      │
│ /tmp/dotnet-repl/20240329-2204-2830-3083-3b7b685a0ad4/main.spi.              │
│         inl real_unbox forall a. (obj : a) : a =                             │
│         ^                                                                    │
│ ",                                                                           │
│           "Error trace on line: 7, column: 9 in module:                      │
│ /tmp/dotnet-repl/20240329-2204-2830-3083-3b7b685a0ad4/main.spi.              │
│         real_unbox ()                                                        │
│         ^                                                                    │
│ "                                                                            │
│         ]                                                                    │
│       }                                                                      │
│     }                                                                        │
│   ]                                                                          │
│ ] / typeErrorCount: 0                                                        │
│ 00:00:23 #264 [Verbose] waitForPortAccess / port: 13805 / retry: 0           │
│ 00:00:23 #265 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:23 #266 [Debug] watchWithFilter / Disposing watch stream / filter:     │
│ FileName, LastWrite                                                          │
│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>>                 │
│       Value:       - <null>                                                  │
│       - [ Cannot apply a forall with a term. ]                               │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

"""
inl main () =
    real
        inl real_unbox forall a. (obj : a) : a =
            typecase obj with
            | _ => obj
        real_unbox `i32 1
"""
|> buildCode 10000 None
|> Async.runWithTimeout 10000
|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)
|> _assertEqual (
    Some (
        None,
        [[ "The main function should not have a forall." ]]
    )
)

╭─[ 1.91s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:00:23 #267 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:23 #268 [Debug] executeAsync / options: { Command =                    │
│    "dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The │
│ Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll"    │
│ --port 13805 --default-int i32 --default-float f64"                          │
│   WorkingDirectory = None                                                    │
│   CancellationToken = Some System.Threading.CancellationToken                │
│   OnLine = Some <fun:buildCode@3-1070> }                                     │
│ 00:00:23 #269 [Verbose] > pwd:                                               │
│ /home/runner/work/polyglot/polyglot/apps/spiral                              │
│ 00:00:23 #270 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:23 #271 [Verbose] waitForPortAccess / port: 13805 / retry: 0           │
│ 00:00:23 #272 [Verbose] > dll_path:                                          │
│ /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral      │
│ Language 2/artifacts/bin/The Spiral Language 2/release                       │
│ 00:00:23 #273 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:23 #274 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:23 #275 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:23 #276 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:23 #277 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:23 #278 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:23 #279 [Verbose] > Starting the Spiral Server. It is bound to:        │
│ http://localhost:13805                                                       │
│ 00:00:23 #280 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:23 #281 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:24 #282 [Debug] sendJson / port: 13805 / json: {"Ping":true} /         │
│ result.Length:                                                               │
│ 00:00:24 #283 [Verbose] awaitCompiler / Ping / result: Some(null) / port:    │
│ 13805 / retry: 0                                                             │
│ 00:00:24 #284 [Verbose] > Server bound to: http://localhost:13805            │
│ 00:00:24 #285 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │
│ errors: [] / typeErrorCount: 0                                               │
│ 00:00:24 #286 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │
│ errors: [] / typeErrorCount: 0                                               │
│ 00:00:24 #287 [Debug] sendJson / port: 13805 / json:                         │
│ {"FileOpen":{"spiText":"\ninl main () =\n    real\n        inl real_unbox    │
│ forall a. (obj : a) : a =\n            typecase obj with\n            | _    │
│ =\u003E obj\n        real_unbox \u0060i32                                    │
│ 1\n","uri":"file:///tmp/dotnet-repl/20240329-2204-3042-4209-45d85a0bd3d2/mai │
│ n.spi"}} / result.Length:                                                    │
│ 00:00:24 #288 [Debug] sendJson / port: 13805 / json:                         │
│ {"BuildFile":{"backend":"Fsharp","uri":"file:///tmp/dotnet-repl/20240329-220 │
│ 4-3042-4209-45d85a0bd3d2/main.spi"}} / result.Length:                        │
│ 00:00:24 #289 [Verbose] > Building                                           │
│ /tmp/dotnet-repl/20240329-2204-3042-4209-45d85a0bd3d2/main.spi               │
│ 00:00:25 #290 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │
│ errors: [] / typeErrorCount: 0                                               │
│ 00:00:25 #291 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │
│ errors: [                                                                    │
│   [                                                                          │
│     "The main function should not have a forall.",                           │
│     {                                                                        │
│       "TracedError": {                                                       │
│         "message": "The main function should not have a forall.",            │
│         "trace": []                                                          │
│       }                                                                      │
│     }                                                                        │
│   ]                                                                          │
│ ] / typeErrorCount: 0                                                        │
│ 00:00:25 #292 [Verbose] waitForPortAccess / port: 13805 / retry: 0           │
│ 00:00:25 #293 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:25 #294 [Debug] watchWithFilter / Disposing watch stream / filter:     │
│ FileName, LastWrite                                                          │
│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>>                 │
│       Value:       - <null>                                                  │
│       - [ The main function should not have a forall. ]                      │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

"""
inl init_series start end inc =
    inl total : f64 = conv ((end - start) / inc) + 1
    listm.init total (conv >> (*) inc >> (+) start) : list f64

type integration = (f64 -> f64) -> f64 -> f64 -> f64

inl integral dt : integration =
    fun f a b =>
        init_series (a + dt / 2) (b - dt / 2) dt
        |> listm.map (f >> (*) dt)
        |> listm.fold (+) 0

inl main () =
    integral 0.1 (fun x => x ** 2) 0 1
"""
|> buildCode 10000 None
|> Async.runWithTimeout 10000
|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)
|> _assertEqual (
    Some (
        Some "0.3325000000000001\n",
        [[]]
    )
)

╭─[ 2.10s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:00:25 #295 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:25 #296 [Debug] executeAsync / options: { Command =                    │
│    "dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The │
│ Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll"    │
│ --port 13805 --default-int i32 --default-float f64"                          │
│   WorkingDirectory = None                                                    │
│   CancellationToken = Some System.Threading.CancellationToken                │
│   OnLine = Some <fun:buildCode@3-1070> }                                     │
│ 00:00:25 #297 [Verbose] > pwd:                                               │
│ /home/runner/work/polyglot/polyglot/apps/spiral                              │
│ 00:00:25 #298 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:25 #299 [Verbose] waitForPortAccess / port: 13805 / retry: 0           │
│ 00:00:25 #300 [Verbose] > dll_path:                                          │
│ /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral      │
│ Language 2/artifacts/bin/The Spiral Language 2/release                       │
│ 00:00:25 #301 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:25 #302 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:25 #303 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:25 #304 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:25 #305 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:25 #306 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:25 #307 [Verbose] > Starting the Spiral Server. It is bound to:        │
│ http://localhost:13805                                                       │
│ 00:00:25 #308 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:25 #309 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:25 #310 [Debug] sendJson / port: 13805 / json: {"Ping":true} /         │
│ result.Length:                                                               │
│ 00:00:25 #311 [Verbose] awaitCompiler / Ping / result: Some(null) / port:    │
│ 13805 / retry: 0                                                             │
│ 00:00:25 #312 [Verbose] > Server bound to: http://localhost:13805            │
│ 00:00:25 #313 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │
│ errors: [] / typeErrorCount: 0                                               │
│ 00:00:26 #314 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │
│ errors: [] / typeErrorCount: 0                                               │
│ 00:00:26 #315 [Debug] sendJson / port: 13805 / json:                         │
│ {"FileOpen":{"spiText":"\ninl init_series start end inc =\n    inl total :   │
│ f64 = conv ((end - start) / inc) \u002B 1\n    listm.init total (conv        │
│ \u003E\u003E (*) inc \u003E\u003E (\u002B) start) : list f64\n\ntype         │
│ integration = (f64 -\u003E f64) -\u003E f64 -\u003E f64 -\u003E f64\n\ninl   │
│ integral dt : integration =\n    fun f a b =\u003E\n        init_series (a   │
│ \u002B dt / 2) (b - dt / 2) dt\n        |\u003E listm.map (f \u003E\u003E    │
│ (*) dt)\n        |\u003E listm.fold (\u002B) 0\n\ninl main () =\n            │
│ integral 0.1 (fun x =\u003E x ** 2) 0                                        │
│ 1\n","uri":"file:///tmp/dotnet-repl/20240329-2204-3233-3318-383fb52392e7/mai │
│ n.spi"}} / result.Length:                                                    │
│ 00:00:26 #316 [Debug] sendJson / port: 13805 / json:                         │
│ {"BuildFile":{"backend":"Fsharp","uri":"file:///tmp/dotnet-repl/20240329-220 │
│ 4-3233-3318-383fb52392e7/main.spi"}} / result.Length:                        │
│ 00:00:26 #317 [Verbose] > Building                                           │
│ /tmp/dotnet-repl/20240329-2204-3233-3318-383fb52392e7/main.spi               │
│ 00:00:27 #318 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │
│ errors: [] / typeErrorCount: 0                                               │
│ 00:00:27 #319 [Debug] buildFile / takeWhileInclusive / fsxContent:           │
│ 0.3325000000000001                                                           │
│  / errors: [] / typeErrorCount: 0                                            │
│ 00:00:27 #320 [Verbose] waitForPortAccess / port: 13805 / retry: 0           │
│ 00:00:27 #321 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:27 #322 [Debug] watchWithFilter / Disposing watch stream / filter:     │
│ FileName, LastWrite                                                          │
│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>>                 │
│       Value:       - FSharpOption<String>                                    │
│           Value: 0.3325000000000001                                          │
│                                                                              │
│       - [  ]                                                                 │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

"""
inl init_series start end inc =
    inl total : f64 = conv ((end - start) / inc) + 1
    listm.init total (conv >> (*) inc >> (+) start) : list f64

type integration = (f64 -> f64) -> f64 -> f64 -> f64

inl integral dt : integration =
    fun f a b =>
        init_series (a + dt / 2) (b - dt / 2) dt
        |> listm.map (f >> (*) dt)
        |> listm.fold (+) 0

inl main () =
    integral 0.01 (fun x => x ** 2) 0 1
"""
|> buildCode 10000 None
|> Async.runWithTimeout 10000
|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)
|> _assertEqual (
    Some (
        Some "0.33332500000000004\n",
        [[]]
    )
)
// |> _assertEqual None
// |> fun x -> printfn $"{x.ToDisplayString ()}"

╭─[ 2.03s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:00:27 #323 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:27 #324 [Debug] executeAsync / options: { Command =                    │
│    "dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The │
│ Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll"    │
│ --port 13805 --default-int i32 --default-float f64"                          │
│   WorkingDirectory = None                                                    │
│   CancellationToken = Some System.Threading.CancellationToken                │
│   OnLine = Some <fun:buildCode@3-1070> }                                     │
│ 00:00:27 #325 [Verbose] > pwd:                                               │
│ /home/runner/work/polyglot/polyglot/apps/spiral                              │
│ 00:00:27 #326 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:27 #327 [Verbose] > dll_path:                                          │
│ /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral      │
│ Language 2/artifacts/bin/The Spiral Language 2/release                       │
│ 00:00:27 #328 [Verbose] waitForPortAccess / port: 13805 / retry: 0           │
│ 00:00:27 #329 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:27 #330 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:27 #331 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:27 #332 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:27 #333 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:27 #334 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:27 #335 [Verbose] > Starting the Spiral Server. It is bound to:        │
│ http://localhost:13805                                                       │
│ 00:00:27 #336 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:27 #337 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:28 #338 [Debug] sendJson / port: 13805 / json: {"Ping":true} /         │
│ result.Length:                                                               │
│ 00:00:28 #339 [Verbose] awaitCompiler / Ping / result: Some(null) / port:    │
│ 13805 / retry: 0                                                             │
│ 00:00:28 #340 [Verbose] > Server bound to: http://localhost:13805            │
│ 00:00:28 #341 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │
│ errors: [] / typeErrorCount: 0                                               │
│ 00:00:28 #342 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │
│ errors: [] / typeErrorCount: 0                                               │
│ 00:00:28 #343 [Debug] sendJson / port: 13805 / json:                         │
│ {"FileOpen":{"spiText":"\ninl init_series start end inc =\n    inl total :   │
│ f64 = conv ((end - start) / inc) \u002B 1\n    listm.init total (conv        │
│ \u003E\u003E (*) inc \u003E\u003E (\u002B) start) : list f64\n\ntype         │
│ integration = (f64 -\u003E f64) -\u003E f64 -\u003E f64 -\u003E f64\n\ninl   │
│ integral dt : integration =\n    fun f a b =\u003E\n        init_series (a   │
│ \u002B dt / 2) (b - dt / 2) dt\n        |\u003E listm.map (f \u003E\u003E    │
│ (*) dt)\n        |\u003E listm.fold (\u002B) 0\n\ninl main () =\n            │
│ integral 0.01 (fun x =\u003E x ** 2) 0                                       │
│ 1\n","uri":"file:///tmp/dotnet-repl/20240329-2204-3443-4372-47d18bc8112f/mai │
│ n.spi"}} / result.Length:                                                    │
│ 00:00:28 #344 [Debug] sendJson / port: 13805 / json:                         │
│ {"BuildFile":{"backend":"Fsharp","uri":"file:///tmp/dotnet-repl/20240329-220 │
│ 4-3443-4372-47d18bc8112f/main.spi"}} / result.Length:                        │
│ 00:00:28 #345 [Verbose] > Building                                           │
│ /tmp/dotnet-repl/20240329-2204-3443-4372-47d18bc8112f/main.spi               │
│ 00:00:29 #346 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │
│ errors: [] / typeErrorCount: 0                                               │
│ 00:00:29 #347 [Debug] buildFile / takeWhileInclusive / fsxContent:           │
│ 0.33332500000000004                                                          │
│  / errors: [] / typeErrorCount: 0                                            │
│ 00:00:29 #348 [Verbose] waitForPortAccess / port: 13805 / retry: 0           │
│ 00:00:29 #349 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:29 #350 [Debug] watchWithFilter / Disposing watch stream / filter:     │
│ FileName, LastWrite                                                          │
│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>>                 │
│       Value:       - FSharpOption<String>                                    │
│           Value: 0.33332500000000004                                         │
│                                                                              │
│       - [  ]                                                                 │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## getFileTokenRange                                                         │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline getFileTokenRange port cancellationToken path = async {
    let fullPath = path |> System.IO.Path.GetFullPath
    let! code = fullPath |> FileSystem.readAllTextAsync
    let lines = code |> String.split [[| '\n' |]]

    let token, disposable = Threading.newDisposableToken cancellationToken
    use _ = disposable

    let! serverPort, _errors, ct, disposable = awaitCompiler port (Some token)
    use _ = disposable

    let fileOpenObj = {| FileOpen = {| uri = fullPath |> getFileUri; spiText = 
code |} |}
    let! _fileOpenResult = fileOpenObj |> sendObj serverPort

    let fileTokenRangeObj =
        {|
            FileTokenRange =
                {|
                    uri = fullPath |> getFileUri
                    range =
                        [[|
                            {| line = 0; character = 0 |}
                            {| line = lines.Length - 1; character = 
lines.[[lines.Length - 1]].Length |}
                        |]]
                |}
        |}
    let! fileTokenRangeResult =
        fileTokenRangeObj
        |> sendObj serverPort
        |> Async.withCancellationToken ct

    return fileTokenRangeResult |> Option.map FSharp.Json.Json.deserialize<int 
array>
}

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## getCodeTokenRange                                                         │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let inline getCodeTokenRange cancellationToken code = async {
    let! mainPath, disposable = persistCode code
    use _ = disposable
    let port = getCompilerPort ()
    return! mainPath |> getFileTokenRange port cancellationToken
}

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

"""inl main () = ()"""
|> getCodeTokenRange None
|> Async.runWithTimeout 10000
|> Option.flatten
|> _assertEqual (Some [[| 0; 0; 3; 7; 0; 0; 4; 4; 0; 0; 0; 5; 1; 8; 0; 0; 1; 1; 
8; 0; 0; 2; 1; 4; 0; 0;
2; 1; 8; 0; 0; 1; 1; 8; 0 |]])

╭─[ 2.85s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:00:35 #351 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:35 #352 [Debug] executeAsync / options: { Command =                    │
│    "dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The │
│ Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll"    │
│ --port 13805 --default-int i32 --default-float f64"                          │
│   WorkingDirectory = None                                                    │
│   CancellationToken = Some System.Threading.CancellationToken                │
│   OnLine = Some <fun:it@4-435> }                                             │
│ 00:00:35 #353 [Verbose] > pwd:                                               │
│ /home/runner/work/polyglot/polyglot/apps/spiral                              │
│ 00:00:35 #354 [Verbose] > dll_path:                                          │
│ /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral      │
│ Language 2/artifacts/bin/The Spiral Language 2/release                       │
│ 00:00:35 #355 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:35 #356 [Verbose] waitForPortAccess / port: 13805 / retry: 0           │
│ 00:00:35 #357 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:35 #358 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:35 #359 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:35 #360 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:35 #361 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:35 #362 [Verbose] > Starting the Spiral Server. It is bound to:        │
│ http://localhost:13805                                                       │
│ 00:00:35 #363 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:35 #364 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:35 #365 [Debug] sendJson / port: 13805 / json: {"Ping":true} /         │
│ result.Length:                                                               │
│ 00:00:35 #366 [Verbose] awaitCompiler / Ping / result: Some(null) / port:    │
│ 13805 / retry: 0                                                             │
│ 00:00:35 #367 [Verbose] > Server bound to: http://localhost:13805            │
│ 00:00:35 #368 [Debug] sendJson / port: 13805 / json:                         │
│ {"FileOpen":{"spiText":"inl main () =                                        │
│ ()","uri":"file:///tmp/dotnet-repl/20240329-2204-4195-9509-916d2ca07c5c/main │
│ .spi"}} / result.Length:                                                     │
│ 00:00:35 #369 [Debug] sendJson / port: 13805 / json:                         │
│ {"FileTokenRange":{"range":[                                                 │
│ {"character":0,"line":0},{"character":16,"line":0}],"uri":"file:///tmp/dotne │
│ t-repl/20240329-2204-4195-9509-916d2ca07c5c/main.spi"}} / result.Length:     │
│ Some(177)                                                                    │
│ 00:00:35 #370 [Verbose] waitForPortAccess / port: 13805 / retry: 0           │
│ 00:00:35 #371 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ FSharpOption<Int32[]>                                                        │
│       Value: [ 0, 0, 3, 7, 0, 0, 4, 4, 0, 0, 0, 5, 1, 8, 0, 0, 1, 1, 8, 0,   │
│ 0, 2, 1, 4, 0, 0, 2, 1, 8, 0, 0, 1, 1, 8, 0 ]                                │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

"""inl main () = 1i32"""
|> getCodeTokenRange None
|> Async.runWithTimeout 10000
|> Option.flatten
|> _assertEqual (Some [[| 0; 0; 3; 7; 0; 0; 4; 4; 0; 0; 0; 5; 1; 8; 0; 0; 1; 1; 
8; 0; 0; 2; 1; 4; 0; 0;
2; 1; 3; 0; 0; 1; 3; 12; 0 |]])

╭─[ 3.06s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:00:38 #372 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:38 #373 [Debug] executeAsync / options: { Command =                    │
│    "dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The │
│ Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll"    │
│ --port 13805 --default-int i32 --default-float f64"                          │
│   WorkingDirectory = None                                                    │
│   CancellationToken = Some System.Threading.CancellationToken                │
│   OnLine = Some <fun:it@4-865> }                                             │
│ 00:00:38 #374 [Verbose] > pwd:                                               │
│ /home/runner/work/polyglot/polyglot/apps/spiral                              │
│ 00:00:38 #375 [Verbose] > dll_path:                                          │
│ /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral      │
│ Language 2/artifacts/bin/The Spiral Language 2/release                       │
│ 00:00:38 #376 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:38 #377 [Verbose] waitForPortAccess / port: 13805 / retry: 0           │
│ 00:00:38 #378 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:38 #379 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:38 #380 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:38 #381 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:38 #382 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:38 #383 [Verbose] > Starting the Spiral Server. It is bound to:        │
│ http://localhost:13805                                                       │
│ 00:00:38 #384 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:38 #385 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:38 #386 [Debug] sendJson / port: 13805 / json: {"Ping":true} /         │
│ result.Length:                                                               │
│ 00:00:38 #387 [Verbose] awaitCompiler / Ping / result: Some(null) / port:    │
│ 13805 / retry: 0                                                             │
│ 00:00:38 #388 [Verbose] > Server bound to: http://localhost:13805            │
│ 00:00:38 #389 [Debug] sendJson / port: 13805 / json:                         │
│ {"FileOpen":{"spiText":"inl main () =                                        │
│ 1i32","uri":"file:///tmp/dotnet-repl/20240329-2204-4500-0039-0006b9c49449/ma │
│ in.spi"}} / result.Length:                                                   │
│ 00:00:39 #390 [Debug] sendJson / port: 13805 / json:                         │
│ {"FileTokenRange":{"range":[                                                 │
│ {"character":0,"line":0},{"character":18,"line":0}],"uri":"file:///tmp/dotne │
│ t-repl/20240329-2204-4500-0039-0006b9c49449/main.spi"}} / result.Length:     │
│ Some(178)                                                                    │
│ 00:00:39 #391 [Verbose] waitForPortAccess / port: 13805 / retry: 0           │
│ 00:00:39 #392 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│ FSharpOption<Int32[]>                                                        │
│       Value: [ 0, 0, 3, 7, 0, 0, 4, 4, 0, 0, 0, 5, 1, 8, 0, 0, 1, 1, 8, 0,   │
│ 0, 2, 1, 4, 0, 0, 2, 1, 3, 0, 0, 1, 3, 12, 0 ]                               │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## Arguments                                                                 │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
[[<RequireQualifiedAccess>]]
type Arguments =
    | Build_File of string * string
    | File_Token_Range of string * string
    | Execute_Command of string
    | Timeout of int
    | Port of int

    interface Argu.IArgParserTemplate with
        member s.Usage =
            match s with
            | Build_File _ -> nameof Build_File
            | File_Token_Range _ -> nameof File_Token_Range
            | Execute_Command _ -> nameof Execute_Command
            | Timeout _ -> nameof Timeout
            | Port _ -> nameof Port

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

Argu.ArgumentParser.Create<Arguments>().PrintUsage ()

╭─[ 92.67ms - return value ]───────────────────────────────────────────────────╮
│ USAGE: dotnet-repl [--help] [--build-file <string> <string>]                 │
│                    [--file-token-range <string> <string>]                    │
│                    [--execute-command <string>] [--timeout <int>] [--port    │
│ <int>]                                                                       │
│                                                                              │
│ OPTIONS:                                                                     │
│                                                                              │
│     --build-file <string> <string>                                           │
│                           Build_File                                         │
│     --file-token-range <string> <string>                                     │
│                           File_Token_Range                                   │
│     --execute-command <string>                                               │
│                           Execute_Command                                    │
│     --timeout <int>       Timeout                                            │
│     --port <int>          Port                                               │
│     --help                display this list of options.                      │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## main                                                                      │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let main args =
    let argsMap = args |> Runtime.parseArgsMap<Arguments>

    let buildFileActions =
        argsMap
        |> Map.tryFind (nameof Arguments.Build_File)
        |> Option.defaultValue [[]]
        |> List.choose (function
            | Arguments.Build_File (inputPath, outputPath) -> Some (inputPath, 
outputPath)
            | _ -> None
        )

    let fileTokenRangeActions =
        argsMap
        |> Map.tryFind (nameof Arguments.File_Token_Range)
        |> Option.defaultValue [[]]
        |> List.choose (function
            | Arguments.File_Token_Range (inputPath, outputPath) -> Some 
(inputPath, outputPath)
            | _ -> None
        )

    let executeCommandActions =
        argsMap
        |> Map.tryFind (nameof Arguments.Execute_Command)
        |> Option.defaultValue [[]]
        |> List.choose (function
            | Arguments.Execute_Command command -> Some command
            | _ -> None
        )

    let timeout =
        match argsMap |> Map.tryFind (nameof Arguments.Timeout) with
        | Some [[ Arguments.Timeout timeout ]] -> timeout
        | _ -> 60000 * 60

    let port =
        match argsMap |> Map.tryFind (nameof Arguments.Port) with
        | Some [[ Arguments.Port port ]] -> Some port
        | _ -> None

    async {
        let port = port |> Option.defaultWith getCompilerPort
        let localToken, disposable = Threading.newDisposableToken None
        let! serverPort, _errors, compilerToken, disposable = awaitCompiler port
(Some localToken)
        use _ = disposable

        let buildFileAsync =
            buildFileActions
            |> List.map (fun (inputPath, outputPath) -> async {
                let! outputCode, errors = inputPath |> buildFile timeout 
serverPort None

                errors
                |> List.map snd
                |> List.iter (fun error ->
                    trace Critical (fun () -> $"main / error: {error |> 
serializeObj}") getLocals
                )

                match outputCode with
                | Some outputCode ->
                    do! outputCode |> FileSystem.writeAllTextAsync outputPath
                    return 0
                | None ->
                    return 1
            })

        let fileTokenRangeAsync =
            fileTokenRangeActions
            |> List.map (fun (inputPath, outputPath) -> async {
                let! tokenRange = inputPath |> getFileTokenRange serverPort None
                match tokenRange with
                | Some tokenRange ->
                    do! tokenRange |> FSharp.Json.Json.serialize |> 
FileSystem.writeAllTextAsync outputPath
                    return 0
                | None ->
                    return 1
            })

        let executeCommandAsync =
            executeCommandActions
            |> List.map (fun command -> async {
                let! exitCode, result =
                    Runtime.executeWithOptionsAsync
                        {
                            Command = command
                            CancellationToken = Some compilerToken
                            WorkingDirectory = None
                            OnLine = None
                        }

                trace Debug (fun () -> $"main / executeCommand / exitCode: 
{exitCode}") getLocals

                return exitCode
            })

        return!
            [[| buildFileAsync; fileTokenRangeAsync; executeCommandAsync |]]
            |> Seq.collect id
            |> fun x -> Async.Parallel (x, float 
System.Environment.ProcessorCount * 0.75 |> ceil |> int)
            |> Async.map Array.sum
    }
    |> Async.runWithTimeout timeout
    |> Option.defaultValue 1

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let args =
    System.Environment.GetEnvironmentVariable "ARGS"
    |> Runtime.splitArgs
    |> Seq.toArray

match args with
| [[||]] -> 0
| args -> if main args = 0 then 0 else failwith "main failed"

╭─[ 48.76ms - return value ]───────────────────────────────────────────────────╮
│ <div class="dni-plaintext"><pre>0</pre></div><style>                         │
│ .dni-code-hint {                                                             │
│     font-style: italic;                                                      │
│     overflow: hidden;                                                        │
│     white-space: nowrap;                                                     │
│ }                                                                            │
│ .dni-treeview {                                                              │
│     white-space: nowrap;                                                     │
│ }                                                                            │
│ .dni-treeview td {                                                           │
│     vertical-align: top;                                                     │
│     text-align: start;                                                       │
│ }                                                                            │
│ details.dni-treeview {                                                       │
│     padding-left: 1em;                                                       │
│ }                                                                            │
│ table td {                                                                   │
│     text-align: start;                                                       │
│ }                                                                            │
│ table tr {                                                                   │
│     vertical-align: top;                                                     │
│     margin: 0em 0px;                                                         │
│ }                                                                            │
│ table tr td pre                                                              │
│ {                                                                            │
│     vertical-align: top !important;                                          │
│     margin: 0em 0px !important;                                              │
│ }                                                                            │
│ table th {                                                                   │
│     text-align: start;                                                       │
│ }                                                                            │
│ </style>                                                                     │
╰──────────────────────────────────────────────────────────────────────────────╯
[NbConvertApp] Converting notebook Supervisor.dib.ipynb to html
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
  validate(nb)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
  return _pygments_highlight(
[NbConvertApp] Writing 465614 bytes to Supervisor.dib.html
00:00:00 #1 [Debug] writeDibCode / output: Fs / path: Supervisor.dib
00:00:00 #2 [Debug] parseDibCode / output: Fs / file: Supervisor.dib
00:00:00 #1 [Debug] persistCodeProject / packages: [Argu; FSharp.Control.AsyncSeq; FSharp.Json; ... ] / modules: [lib/spiral/common.fsx; lib/spiral/date_time.fsx; lib/spiral/file_system.fsx; ... ] / name: Supervisor / code.Length: 19260
00:00:00 #2 [Debug] buildProject / fullPath: /home/runner/work/polyglot/polyglot/target/polyglot/builder/Supervisor/Supervisor.fsproj
00:00:00 #3 [Debug] executeAsync / options: { Command =
   "dotnet publish "/home/runner/work/polyglot/polyglot/target/polyglot/builder/Supervisor/Supervisor.fsproj" --configuration Release --output "/home/runner/work/polyglot/polyglot/apps/spiral/dist" --runtime linux-x64"
  WorkingDirectory =
   Some "/home/runner/work/polyglot/polyglot/target/polyglot/builder/Supervisor"
  CancellationToken = None
  OnLine = None }
00:00:00 #4 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f for .NET
00:00:00 #5 [Verbose] >   Determining projects to restore...
00:00:00 #6 [Verbose] >   Paket version 8.1.0-alpha001+8e77fe66ac27ddecf519e0df5a4d3327ca9250e2
00:00:00 #7 [Verbose] >   The last full restore is still up to date. Nothing left to do.
00:00:00 #8 [Verbose] >   Total time taken: 0 milliseconds
00:00:01 #9 [Verbose] >   Paket version 8.1.0-alpha001+8e77fe66ac27ddecf519e0df5a4d3327ca9250e2
00:00:01 #10 [Verbose] >   Restoring /home/runner/work/polyglot/polyglot/target/polyglot/builder/Supervisor/Supervisor.fsproj
00:00:01 #11 [Verbose] >   Starting restore process.
00:00:01 #12 [Verbose] >   Total time taken: 0 milliseconds
00:00:02 #13 [Verbose] >   Restored /home/runner/work/polyglot/polyglot/target/polyglot/builder/Supervisor/Supervisor.fsproj (in 339 ms).
00:00:02 #14 [Verbose] > /usr/share/dotnet/sdk/9.0.100-preview.1.24101.2/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.RuntimeIdentifierInference.targets(313,5): message NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy [/home/runner/work/polyglot/polyglot/target/polyglot/builder/Supervisor/Supervisor.fsproj]
00:00:12 #15 [Verbose] >   Supervisor -> /home/runner/work/polyglot/polyglot/target/polyglot/builder/Supervisor/bin/Release/net9.0/linux-x64/Supervisor.dll
00:00:12 #16 [Verbose] >   Supervisor -> /home/runner/work/polyglot/polyglot/apps/spiral/dist
00:00:12 #17 [Debug] executeAsync / exitCode: 0 / output.Length: 1148

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ # Eval (Polyglot)                                                            │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/fsharp/Notebooks.dib
#!import ../../lib/fsharp/Testing.dib

── fsharp - import ─────────────────────────────────────────────────────────────
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Asp
NetCore.Html.Abstractions.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.FSharp.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.Formatting.dll"
open System
open System.IO
open System.Text
open Microsoft.DotNet.Interactive.Formatting

── fsharp - import ─────────────────────────────────────────────────────────────
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.FSharp.dll"
open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.dll"
open type Microsoft.DotNet.Interactive.Kernel

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

Formatter.ListExpansionLimit <- 100

── fsharp - import ─────────────────────────────────────────────────────────────
#r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

type AssertExceptionFormatter (ex) =
    member _.Text =
        ex.ToString()
            .Replace("32m", "<span style=\"color: green;\">")
            .Replace("36m", "</span>")
            .Replace("31m", "<span style=\"color: red;\">")
            .Replace("\n", "<br/>\n")


Formatter.Register<AssertExceptionFormatter> ((fun (x : 
AssertExceptionFormatter) -> x.Text), "text/html")

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

let inline __expect fn log expected actual =
    if log then printfn $"{actual.ToDisplayString ()}"
    try
        "Testing.__expect" |> fn actual expected
    with :? Expecto.AssertException as ex ->
        AssertExceptionFormatter(ex).Display () |> ignore
        failwith (ex.GetType().FullName)

let inline __contains log expected actual = __expect Expecto.Expect.contains log
expected actual
let inline _contains expected actual = __contains true expected actual

let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
expected actual
let inline _assertEqual expected actual = __assertEqual true expected actual

let inline __isGreaterThan log expected actual = __expect 
Expecto.Expect.isGreaterThan log ex...

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

let inline __isBetween log a b actual =
    let inline isBetween actual (a, b) _ =
        __isGreaterThanOrEqual log a actual
        __isLessThanOrEqual log b actual
    __expect isBetween log (a, b) actual
let inline _isBetween a b actual = __isBetween true a b actual

── fsharp ──────────────────────────────────────────────────────────────────────
#r 
@"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
dard2.1/FSharp.Control.AsyncSeq.dll"
#r 
@"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
0/System.Reactive.dll"
#r 
@"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/
netstandard2.0/System.Reactive.Linq.dll"
#r 
@"../../../../../../../.nuget/packages/argu/6.2.2/lib/netstandard2.0/Argu.dll"
#r 
@"../../../../../../../.nuget/packages/system.commandline/2.0.0-beta4.22272.1/li
b/net6.0/System.CommandLine.dll"
#r 
@"../../../../../../../.nuget/packages/microsoft.aspnetcore.http.connections.com
mon/7.0.0/lib/net7.0/Microsoft.AspNetCore.Http.Connections.Common.dll"
#r 
@"../../../../../../../.nuget/packages/microsoft.aspnetcore.http.connections.cli
ent/7.0.0/lib/net7.0/Microsoft.AspNetCore.Http.Connections.Client.dll"
#r 
@"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.common/7.0.0
/lib/net7.0/Microsoft.AspNetCore.SignalR.Common.dll"
#r 
@"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.client/7.0.0
/lib/net7.0/Microsoft.AspNetCore.SignalR.Client.dll"
#r 
@"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.client.core/
7.0.0/lib/net7.0/Microsoft.AspNetCore.SignalR.Client.Core.dll"
#r 
@"../../../../../../../.nuget/packages/fsharp.json/0.4.1/lib/netstandard2.0/FSha
rp.Json.dll"

── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/spiral/common.fsx
#!import ../../lib/spiral/date_time.fsx
#!import ../../lib/spiral/file_system.fsx
#!import ../../lib/fsharp/Common.fs
#!import ../../lib/fsharp/CommonFSharp.fs
#!import ../../lib/fsharp/Threading.fs
#!import ../../lib/fsharp/Async.fs
#!import ../../lib/fsharp/AsyncSeq.fs
#!import ../../lib/fsharp/Networking.fs
#!import ../../lib/fsharp/Runtime.fs
#!import ../../lib/fsharp/FileSystem.fs

#!import ../../apps/builder/Builder.fs
#!import ../../apps/spiral/Supervisor.fs

── fsharp - import ─────────────────────────────────────────────────────────────
type [[<Struct>]] US0 =
    | US0_0
    | US0_1
and [[<Struct>]] US1 =
    | US1_0
    | US1_1 of f1_0 : US0
let rec method0 (v0 : (unit -> unit)) : (unit -> unit) =
    v0
and closure0 () (v0 : (unit -> unit)) : System.IDisposable =
    let mutable result = None
    #if FABLE_COMPILER_RUST && !WASM
    let v1 : (unit -> unit) = method0(v0)
    let v2 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v1()" }
    v2
    #endif
    #if FABLE_COMPILER_RUST && WASM
    let v3 : (unit -> unit) = method0(v0)
    let v4 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v3()" }
    v4
    #endif
    #if !FABLE_COMPILER && !F...

── fsharp - import ─────────────────────────────────────────────────────────────
let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
    let v2 : string = v0.ToString ()
    let v3 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
    let v4 : System.Guid = System.Guid $"{v3}{v2.[[v3.Length..]]}"
    v4
and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
    closure1(v0)
and closure5 (v0 : string, v1 : string) (v2 : string) : string =
    let v3 : string = v2.Replace (v0, v1)
    v3
and closure4 (v0 : string) (v1 : string) : (string -> string) =
    closure5(v0, v1)
and closure3 () (v0 : string) : (string -> (string -> string)) =
    closure4(v0)
and method0 () : (string -> (string -> (string -> string))) =
    closure3()
and closure2 () (v0 : System.Guid) : System.DateTime =
  ...

── fsharp - import ─────────────────────────────────────────────────────────────
let rec closure0 () () : string =
    let v0 : string = 
System.Reflection.Assembly.GetEntryAssembly().GetName().Name
    let v1 : (unit -> string) = System.IO.Path.GetTempPath
    let v2 : string = v1 ()
    let v3 : string = $"{v0}"
    let v4 : string = System.IO.Path.Combine (v2, v3)
    let v5 : System.DateTime = System.DateTime.Now
    let v6 : System.Guid = System.Guid.NewGuid ()
    let v7 : string = v6.ToString ()
    let v8 : string = v5.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
    let v9 : System.Guid = System.Guid $"{v8}{v7.[[v8.Length..]]}"
    let v10 : string = v9.ToString ()
    let v11 : string = System.IO.Path.Combine (v4, v10)
    v11
let v0 : (unit -> string) = closure0()
let create_temp_directory_name x = v0 x
()


── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Common =

#if !WASM && !FABLE_COMPILER
    let Date_time = {|
        new_guid_from_date_time =
#if !INTERACTIVE
            Date_time.new_guid_from_date_time
#else
            new_guid_from_date_time
#endif
    |}
#endif

    let nl = System.Environment.NewLine
    let q = @""""

    let inline cons head tail = head :: tail

    module String =
        let inline contains (value : string) (input : string) =
            input.Contains value

        let inline endsWith (value : string) (input : string) =
            input.EndsWith value

        let inline padLeft totalWidth paddingChar (input : string) =
            input.PadLeft (totalWidth, paddingChar)

        let inline replace (oldVa...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module CommonFSharp =

    open Common

    /// ## getUnionCaseName

    let inline getUnionCaseName<'T> (x: 'T) =
        match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with
        | case, _ -> case.Name


── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Threading =

    open Common

    /// ## newDisposableToken

    let inline newDisposableToken (mergeToken: 
System.Threading.CancellationToken option) =
        let cts = new System.Threading.CancellationTokenSource ()
        let cts =
            match mergeToken with
            | None -> cts
            | Some mergeToken ->
                System.Threading.CancellationTokenSource.CreateLinkedTokenSource
[[| cts.Token; mergeToken |]]
        let disposable = new_disposable cts.Cancel
        cts.Token, disposable


── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Async =

    open Common

    /// ## choice

    let inline choice asyncs = async {
        let e = Event<_> ()
        use cts = new System.Threading.CancellationTokenSource ()
        let fn =
            asyncs
            |> Seq.map (fun a -> async {
                let! x = a
                e.Trigger x
            })
            |> Async.Parallel
            |> Async.Ignore
        Async.Start (fn, cts.Token)
        let! result = Async.AwaitEvent e.Publish
        cts.Cancel ()
        return result
    }

    /// ## map

    let inline map fn a = async {
        let! x = a
        return fn x
    }

    /// ## catch

    let inline catch a =
        a
        |> Async.Catch
        ...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module AsyncSeq =

    open Common

    /// ## subscribeEvent

    let inline subscribeEvent (event: IEvent<'H, 'A>) map =
        let observable = System.Reactive.Linq.Observable.FromEventPattern<'H, 
'A>(event.AddHandler, event.RemoveHandler)
        System.Reactive.Linq.Observable.Select (observable, fun event -> map 
event.EventArgs)
        |> FSharp.Control.AsyncSeq.ofObservableBuffered

    let subscribeToken (token : System.Threading.CancellationToken) =
        let tcs = new System.Threading.Tasks.TaskCompletionSource ()
        System.Action tcs.SetResult |> token.Register |> ignore
        let start = System.DateTime.Now.Ticks
        FSharp.Control.AsyncSeq.unfoldAsync
            (fun (...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Networking =

    open Common

    /// ## testPortOpen

    let inline testPortOpen port = async {
        let! ct = Async.CancellationToken
        use client = new System.Net.Sockets.TcpClient ()
        try
            do! client.ConnectAsync ("127.0.0.1", port, ct) |> 
Async.awaitValueTaskUnit
            return true
        with ex ->
            trace Verbose (fun () -> $"testPortOpen / ex: {ex |> 
formatException}") getLocals
            return false
    }

    let inline testPortOpenTimeout timeout port = async {
        let! result =
            testPortOpen port
            |> Async.runWithTimeoutAsync timeout
        return
            match result with
            | None -> false
...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Runtime =

    open Common

    /// ## isWindows

    let isWindows =
        fun () ->
            System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform
                System.Runtime.InteropServices.OSPlatform.Windows
        |> memoize

    /// ## getExecutableSuffix

    let inline getExecutableSuffix () =
        if isWindows ()
        then ".exe"
        else ""

    /// ## splitCommand

    type private CommandParseStep =
        | Start
        | Path of quoted: bool
        | Arguments

    let splitCommand (command: string) =
        let rec loop (path, args) chars step =
            match chars, step with
            | ('"' | '\'') :: tail, _ when path = "" -> loop (pat...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module FileSystem =

    let File_system = {|
        create_temp_directory_name =
#if !INTERACTIVE
            File_system.create_temp_directory_name
#else
            create_temp_directory_name
#endif
    |}

    open Common

    /// ## Operators

    module Operators =
        let inline (</>) a b =
            System.IO.Path.Combine (a, b)

    open Operators

    /// ## createTempDirectory

    let inline createTempDirectory () =
        let tempFolder = File_system.create_temp_directory_name ()
        let result = System.IO.Directory.CreateDirectory tempFolder

        if not result.Exists then
            let getLocals () =
                $"tempFolder: {tempFolder} / result: {({|
        ...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Builder =

    open Common
    open FileSystem.Operators

    /// ## buildProject

    let inline buildProject runtime outputDir path = async {
        let fullPath = path |> System.IO.Path.GetFullPath
        let fileDir = fullPath |> System.IO.Path.GetDirectoryName
        let extension = fullPath |> System.IO.Path.GetExtension

        let getLocals () = $"fullPath: {fullPath} / {getLocals ()}"
        trace Debug (fun () -> "buildProject") getLocals

        match extension with
        | ".fsproj" -> ()
        | _ -> failwith "Invalid project file"

        let runtimes =
            runtime
            |> Option.map List.singleton
            |> Option.defaultValue [[ "linux-x64"; "wi...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Supervisor =

    open Common
    open FileSystem.Operators
    open Microsoft.AspNetCore.SignalR.Client

    /// ## sendJson

    let inline sendJson (port : int) (json : string) = async {
        let! portOpen = Networking.testPortOpen port
        if portOpen then
            try
                let connection = 
HubConnectionBuilder().WithUrl($"http://127.0.0.1:{port}").Build()
                do! connection.StartAsync () |> Async.AwaitTask
                let! result = 
connection.InvokeAsync<string>("ClientToServerMsg", json) |> Async.AwaitTask
                do! connection.StopAsync () |> Async.AwaitTask
                trace Debug (fun () -> $"sendJson / port: {port} / json: {json} 
/...

── fsharp ──────────────────────────────────────────────────────────────────────
open Common
open FileSystem.Operators

── fsharp ──────────────────────────────────────────────────────────────────────
open System
open System.Collections.Generic
open System.IO
open System.Text
open System.Threading
// open FSharp.Compiler
// open FSharp.Compiler.Interactive.Shell
// open FSharp.Compiler.Diagnostics
// open FSharp.Compiler.EditorServices

── fsharp ──────────────────────────────────────────────────────────────────────
let inline mapErrors (severity, errors, lastTopLevelIndex) allCode =
    let allCodeLineLength =
        allCode |> String.split [[| '\n' |]] |> Array.length

    errors
    |> List.map (fun (_, error) ->
        match error with
        | Supervisor.FatalError message ->
            (
                severity, message, 0, ("", (0, 0), (0, 0))
            )
            |> List.singleton
        | Supervisor.TracedError data ->
            data.trace
            |> List.truncate 5
            |> List.append [[ data.message ]]
            |> List.map (fun message ->
                (
                    severity, message, 0, ("", (0, 0), (0, 0))
                )
            )
        | Supervisor.PackageErrors data
        | Supervisor.TokenizerErrors data
        | Supervisor.ParserErrors data
        | Supervisor.TypeErrors data ->
            data.errors
            |> List.filter (fun ((rangeStart, _), _) ->
                trace Debug (fun () -> $"Eval.mapErrors / rangeStart.line: 
{rangeStart.line} / lastTopLevelIndex: {lastTopLevelIndex} / allCodeLineLength: 
{allCodeLineLength} / filtered: {rangeStart.line > allCodeLineLength}") 
getLocals
                rangeStart.line > allCodeLineLength
            )
            |> List.map (fun ((rangeStart, rangeEnd), message) ->
                (
                    severity,
                    message,
                    0,
                    (
                        (data.uri |> System.IO.Path.GetFileName),
                        (
                            (match lastTopLevelIndex with
                            | Some i when rangeStart.line >= i + 
allCodeLineLength + 3 ->
                                rangeStart.line - allCodeLineLength - 2
                            | _ -> rangeStart.line - allCodeLineLength),
                            (match lastTopLevelIndex with
                            | Some i when rangeStart.line >= i + 
allCodeLineLength + 3 ->
                                rangeStart.character - 4
                            | _ -> rangeStart.character)
                        ),
                        (
                            (match lastTopLevelIndex with
                            | Some i when rangeStart.line >= i + 
allCodeLineLength + 3 ->
                                rangeEnd.line - allCodeLineLength - 2
                            | _ -> rangeEnd.line - allCodeLineLength),
                            (match lastTopLevelIndex with
                            | Some i when rangeStart.line >= i + 
allCodeLineLength + 3 ->
                                rangeEnd.character - 4
                            | _ -> rangeEnd.character)
                        )
                    )
                )
            )
    )
    |> List.collect id
    |> List.toArray

── fsharp ──────────────────────────────────────────────────────────────────────
let spiralExDir = Path.GetTempPath () </> "!spiral-ex"
let maxTermCountPath = spiralExDir </> "max_term_count.txt"

let mutable allCode = ""

── fsharp ──────────────────────────────────────────────────────────────────────
let log2 (text : string) =
    if traceLevel = TraceLevel.Verbose then
        try
            let tmpPath = Path.GetTempPath ()
            let logDir = Path.Combine (tmpPath, "_log_spiral_kernel")
            Directory.CreateDirectory logDir |> ignore
            let dateTimeStr = DateTime.Now.ToString "yyyy-MM-dd HH-mm-ss-fff"
            let logFile = Path.Combine (logDir, 
$"log_{dateTimeStr}_{Random().Next()}.txt")
            let dateTimeStr = DateTime.Now.ToString "yyyy-MM-dd HH:mm:ss.fff"
            let fileName = "SpiralScriptHelpers"
            File.AppendAllText (logFile, $"{dateTimeStr} {fileName} 
{text}{Environment.NewLine}") |> ignore
        with ex ->
            trace Debug (fun () -> $"V.log / ex: {ex |> formatException}") 
getLocals

── fsharp ──────────────────────────────────────────────────────────────────────
let log (text : string) =
    if traceLevel = TraceLevel.Verbose then
        try
            let tmpPath = Path.GetTempPath ()
            let logDir = Path.Combine (tmpPath, "_log_spiral_kernel")
            Directory.CreateDirectory logDir |> ignore
            let logFile = Path.Combine (logDir, "log.txt")
            let dateTimeStr = DateTime.Now.ToString "yyyy-MM-dd HH:mm:ss.fff"
            let fileName = "SpiralScriptHelpers"
            File.AppendAllText (logFile, $"{dateTimeStr} {fileName} 
{text}{Environment.NewLine}") |> ignore
        with ex ->
            trace Debug (fun () -> $"SpiralScriptHelpers.log / ex: {ex |> 
formatException}") getLocals
            log2 text

── fsharp ──────────────────────────────────────────────────────────────────────
let assemblyName = Reflection.Assembly.GetEntryAssembly().GetName().Name

let inline startTokenRangeWatcher () =
    if [[ "dotnet-repl" ]] |> List.contains assemblyName |> not then
        let tmpSpiralDir = Path.GetTempPath () </> "!dotnet-interactive-spiral"
        let tmpCodeDir = tmpSpiralDir </> "code"
        let tmpTokensDir = tmpSpiralDir </> "tokens"

        [[ tmpSpiralDir; tmpCodeDir; tmpTokensDir ]]
        |> List.iter (fun dir -> if Directory.Exists dir |> not then 
Directory.CreateDirectory dir |> ignore)

        let stream, disposable = FileSystem.watchDirectory (fun _ -> false) 
tmpCodeDir

        try
            let port = Supervisor.getCompilerPort () + 2
            let existingFilesChild =
                tmpCodeDir
                |> System.IO.Directory.GetFiles
                |> Array.map (fun codePath -> async {
                    try
                        let tokensPath = tmpTokensDir </> (codePath |> 
System.IO.Path.GetFileName)
                        if File.Exists tokensPath |> not then
                            let! tokens = codePath |> 
Supervisor.getFileTokenRange port None
                            match tokens with
                            | Some tokens ->
                                do!
                                    tokens
                                    |> FSharp.Json.Json.serialize
                                    |> FileSystem.writeAllTextAsync tokensPath
                            | None ->
                                log $"Eval.watchDirectory / GetFiles / tokens: 
None / {getLocals ()}"
                    with ex ->
                        log $"Eval.watchDirectory / GetFiles / ex: {ex |> 
formatException} / {getLocals ()}"
                })
                |> Async.Sequential
                |> Async.Ignore

            let streamAsyncChild =
                stream
                |> FSharp.Control.AsyncSeq.iterAsyncParallel (fun (ticks, event)
-> async {
                    try
                        let getLocals () = $"ticks: {ticks} / event: {event} / 
{getLocals ()}"
                        match event with
                        | FileSystem.FileSystemChange.Changed (path, _) ->
                            let codePath = tmpCodeDir </> path
                            do!
                                codePath
                                |> FileSystem.waitForFileAccess (Some (
                                    System.IO.FileAccess.Read,
                                    System.IO.FileShare.Read
                                ))
                                |> Async.runWithTimeoutAsync 1000
                                |> Async.Ignore
                            let! tokens = codePath |> 
Supervisor.getFileTokenRange port None
                            match tokens with
                            | Some tokens ->
                                do!
                                    tokens
                                    |> FSharp.Json.Json.serialize
                                    |> FileSystem.writeAllTextAsync 
(tmpTokensDir </> path)
                            | None ->
                                log $"Eval.watchDirectory / iterAsyncParallel / 
tokens: None / {getLocals ()}"
                        | _ -> ()
                    with ex ->
                        log $"Eval.watchDirectory / iterAsyncParallel / ex: {ex 
|> formatException} / {getLocals ()}"
                })

            async {
                do! Async.Sleep 3000
                existingFilesChild |> Async.StartImmediate
                streamAsyncChild |> Async.Start
            }
            |> Async.Start
        with ex ->
            log $"Eval / ex: {ex |> formatException}"

        disposable
    else new_disposable (fun () -> ())

── fsharp ──────────────────────────────────────────────────────────────────────
let inline eval
    (fsi_eval:
        string
        -> System.Threading.CancellationToken
        -> Choice<'a,Exception> * (TraceLevel * string * int * (string * (int * 
int) * (int * int))) array)
    (cancellationToken: Option<System.Threading.CancellationToken>)
    (code: string)
    =
    log $"Eval / code: %A{code}"

    let rawCellCode =
        if code |> String.trim <> "// // trace"
        then code |> String.replace "\r\n" "\n"
        else
            if traceLevel = Info
            then traceLevel <- Verbose
            else traceLevel <- Info
            traceDump <- traceLevel = Verbose
            "inl main () = ()"

    let lines = rawCellCode |> String.split [[| '\n' |]]

    if lines |> Array.exists (fun line -> line |> String.startsWith "#r " && 
line |> String.endsWith "\"") then
        let cancellationToken = defaultArg cancellationToken 
System.Threading.CancellationToken.None
        let ch, errors = fsi_eval code cancellationToken
        match ch with
        | Choice1Of2 v -> Ok(v), errors
        | Choice2Of2 ex -> Error(ex), errors
    else
        try
            let lastBlock =
                lines
                |> Array.tryFindBack (fun line ->
                    line |> String.length > 0
                    && line.[[0]] <> ' '
                )

            let hasMain =
                lastBlock
                |> Option.exists (fun line ->
                    line |> String.startsWith "inl main "
                    || line |> String.startsWith "let main "
                )

            let cellCode, lastTopLevelIndex =
                if hasMain
                then rawCellCode, None
                else
                    let lastTopLevelIndex, _ =
                        (lines |> Array.indexed, (None, false))
                        ||> Array.foldBack (fun (i, line) (lastTopLevelIndex, 
finished) ->
                            trace Debug (fun () -> $"i: {i} / line: '{line}' / 
lastTopLevelIndex: {lastTopLevelIndex} / finished: {finished}") getLocals
                            match line with
                            | _ when finished -> lastTopLevelIndex, true
                            | "" -> lastTopLevelIndex, false
                            | line when
                                line |> String.startsWith " "
                                || line |> String.startsWith "// " -> 
lastTopLevelIndex, false
                            | line when
                                line |> String.startsWith "open "
                                || line |> String.startsWith "prototype "
                                || line |> String.startsWith "instance "
                                || line |> String.startsWith "type "
                                || line |> String.startsWith "union "
                                || line |> String.startsWith "nominal " -> 
lastTopLevelIndex, true
                            | line when
                                line |> String.startsWith "inl "
                                || line |> String.startsWith "let " ->
                                let m =
                                    System.Text.RegularExpressions.Regex.Match (
                                        line,
                                        @"^(inl|let) +([[~\(\w]][[\w\d']]*(?:| 
*[[~\w]][[\w\d']]*\)|, *[[~\w]][[\w\d']]*)) +[[:=]]"
                                    )
                                trace Debug (fun () -> $"m: '{m}' / 
m.Groups.Count: {m.Groups.Count}") getLocals
                                if m.Groups.Count = 3
                                then Some i, false
                                else lastTopLevelIndex, true
                            | _ -> Some i, false
                        )
                    let code =
                        match lastTopLevelIndex with
                        | Some lastTopLevelIndex ->
                            lines
                            |> Array.mapi (fun i line ->
                                match i with
                                | i when i < lastTopLevelIndex -> line
                                | i when i = lastTopLevelIndex -> $"\nlet main 
() =\n    {line}"
                                | _ when line |> String.trim = "" -> ""
                                | _ -> $"    {line}"
                            )
                            |> String.concat "\n"
                        | None -> $"{rawCellCode}\n\ninl main () = ()\n"
                    code, lastTopLevelIndex

            let newAllCode = $"{allCode}\n\n{cellCode}"

            let rustArgs =
                lines
                |> Array.tryPick (fun line ->
                    if line |> String.startsWith "// // rust="
                    then line |> String.split [[| '=' |]] |> Array.tryItem 1
                    else None
                )

            let timeout =
                lines
                |> Array.tryPick (fun line ->
                    if line |> String.startsWith "// // timeout="
                    then line |> String.split [[| '=' |]] |> Array.tryItem 1 |> 
Option.map int
                    else None
                )
                |> Option.defaultValue (60000 * 60)

            let printCode =
                lines
                |> Array.tryPick (fun line ->
                    if line |> String.startsWith "// // print_code="
                    then line |> String.split [[| '=' |]] |> Array.tryItem 1 |> 
Option.map ((=) "true")
                    else None
                )
                |> Option.defaultValue true

            let maxTermCount =
                lines
                |> Array.tryPick (fun line ->
                    if line |> String.startsWith "// // max_term_count="
                    then line |> String.split [[| '=' |]] |> Array.tryItem 1 |> 
Option.map int
                    else None
                )

            async {
                try
                    let! mainPath, disposable = newAllCode |> 
Supervisor.persistCode
                    use _ = disposable

                    match maxTermCount with
                    | Some maxTermCount ->
                        do! maxTermCount |> string |> 
FileSystem.writeAllTextAsync maxTermCountPath
                    | None -> ()

                    let port = Supervisor.getCompilerPort ()

                    let! codeChoice =
                        mainPath
                        |> Supervisor.buildFile timeout port cancellationToken
                        |> Async.catch
                        |> Async.runWithTimeoutAsync timeout

                    match maxTermCount with
                    | Some _ -> do! FileSystem.deleteFileAsync maxTermCountPath 
|> Async.Ignore
                    | None -> ()

                    let code =
                        match codeChoice with
                        | Some (Ok code) -> Some code
                        | Some (Error ex) ->
                            log $"Eval / errors: {ex |> formatException}"
                            None
                        | _ -> None

                    match code with
                    | Some (Some code, spiralErrors) ->
                        let spiralErrors =
                            mapErrors (Warning, spiralErrors, lastTopLevelIndex)
allCode
                        let inline _trace (fn : unit -> string) =
                            if traceLevel = Info
                            then fn () |> System.Console.WriteLine
                            else trace Info (fun () -> 
$"SpiralScriptHelpers.Eval / {fn ()}") getLocals

                        if printCode
                        then _trace (fun () -> if rustArgs |> Option.isSome then
$"\n.fsx:\n{code}" else code)

                        let! rustResult =
                            if rustArgs |> Option.isNone || lastTopLevelIndex = 
None
                            then None |> Async.init
                            else
                                async {
                                    // let hash = $"repl_{code |> 
Crypto.hashText}"
                                    let hash = $"spiral_eval"

                                    let! fsprojPath = code |> 
Builder.persistCodeProject [["Fable.Core"]] [[]] hash

                                    let projectDir = fsprojPath |> 
Path.GetDirectoryName

                                    let outDir = projectDir </> $"target/{hash}"

                                    let libLinkTargetPath = projectDir </> 
"target/fable-library-rust"
                                    let libLinkPath = outDir </> 
$"fable_modules/fable-library-rust"

                                    if Directory.Exists libLinkTargetPath |> not
                                    then libLinkTargetPath |> 
Directory.CreateDirectory |> ignore

                                    libLinkPath |> Path.GetDirectoryName |> 
Directory.CreateDirectory |> ignore

                                    let libLinkPathInfo = DirectoryInfo 
libLinkPath
                                    if libLinkPathInfo.Exists && 
libLinkPathInfo.LinkTarget = null then
                                        Directory.Delete (libLinkPath, true)

                                    if libLinkPath |> Directory.Exists |> not 
then
                                        Directory.CreateSymbolicLink 
(libLinkPath, libLinkTargetPath)
                                        |> ignore


                                    let! exitCode, result =
                                        Runtime.executeWithOptionsAsync
                                            {
                                                Command = $@"dotnet fable 
{fsprojPath} --optimize --lang rs --extension .rs --outDir {outDir}"
                                                CancellationToken = 
cancellationToken
                                                WorkingDirectory = None
                                                OnLine = None
                                            }

                                    if exitCode <> 0
                                    then return Some (Error result)
                                    else
                                        let rsPath = outDir </> $"{hash}.rs"
                                        let! rsCode = rsPath |> 
FileSystem.readAllTextAsync

                                        let mainCode = "pub fn main() -> 
Result<(), String> { Ok(()) }"

                                        let cached = rsCode |> String.contains 
mainCode

                                        let rsCode =
                                            if cached
                                            then rsCode
                                            else rsCode |> String.replace "),);"
"));"

                                        if printCode
                                        then _trace (fun () -> 
$"\n.rs:\n{rsCode}")

                                        if not cached
                                        then do!
                                            $"{rsCode}\n\n{mainCode}\n"
                                            |> FileSystem.writeAllTextAsync 
rsPath


                                        let cargoTomlPath = outDir </> 
$"Cargo.toml"
                                        let cargoTomlContent = $"""[[package]]
name = "{hash}"
version = "0.0.1"
edition = "2021"

[[workspace]]

[[dependencies]]
fable_library_rust = {{ path = "fable_modules/fable-library-rust", optional = 
true, default-features = false }}
clap = {{}}
num-complex = {{}}
pyo3 = "~0.21.0-beta.0"

[[features]]
default = [["fable_library_rust/default", 
"fable_library_rust/static_do_bindings"]]

[[[[bin]]]]
name = "{hash}"
path = "{hash}.rs"
"""
                                        do! cargoTomlContent |> 
FileSystem.writeAllTextExists cargoTomlPath

                                        let! exitCode, result =
                                            Runtime.executeWithOptionsAsync
                                                {
                                                    Command = $@"cargo run 
--release --manifest-path {cargoTomlPath}"
                                                    CancellationToken = 
cancellationToken
                                                    WorkingDirectory = None
                                                    OnLine = None
                                                }

                                        if exitCode = 0 then
                                            try
                                                let result =
                                                    result
                                                    |> String.split [[| '\n' |]]
                                                    |> Array.skipWhile (fun line
->
                                                        line |> String.contains 
@"[[optimized]] target" |> not
                                                    )
                                                    |> Array.skip 2
                                                    |> String.concat "\n"
                                                return Some (Ok result)
                                            with ex ->
                                                return $"ex: 
{ex}\nresult:\n{result}" |> Error |> Some
                                        else
                                            return Some (Error result)
                                }

                        let cancellationToken = defaultArg cancellationToken 
System.Threading.CancellationToken.None

                        let fsxResult =
                            if rustArgs |> Option.isSome
                            then None
                            else
                                try
                                    let ch, errors = fsi_eval code 
cancellationToken
                                    let errors =
                                        errors
                                        |> Array.map (fun (e1, e2, e3, _) ->
                                            (e1, e2, e3, ("", (0, 0), (0, 0)))
                                        )
                                    Some (ch, errors)
                                with ex ->
                                    trace Critical (fun () -> 
$"SpiralScriptHelpers.Eval / ex: {ex |> formatException}") getLocals
                                    None

                        match fsxResult, rustResult with
                        | Some (ch, errors), None ->
                            let errors = errors |> Array.append spiralErrors
                            match ch with
                            | Choice1Of2 v ->
                                allCode <- newAllCode
                                return Ok(v), errors
                            | Choice2Of2 ex -> return Error ex, errors
                        | _, Some result ->
                            let result, errors =
                                match result with
                                | Ok result -> result, [[||]]
                                | Error error ->
                                    "",
                                    [[|
                                        (
                                            TraceLevel.Critical, error, 0, ("", 
(0, 0), (0, 0))
                                        )
                                    |]]

                            let header = if printCode then ".rs output:\n" else 
""
                            let ch, errors2 = fsi_eval 
$"\"\"\"{header}{result}\n\"\"\"" cancellationToken
                            let errors =
                                errors
                                |> Array.append spiralErrors
                                |> Array.append errors2
                            match ch with
                            | Choice1Of2 v ->
                                allCode <- newAllCode
                                return Ok(v), errors
                            | Choice2Of2 ex ->
                                return Error ex, errors
                        | _ ->
                            let ch, errors = fsi_eval "()" cancellationToken
                            match ch with
                            | Choice1Of2 v ->
                                allCode <- newAllCode
                                return Ok(v), errors
                            | Choice2Of2 ex ->
                                return Error ex, errors
                    | Some (None, errors) when errors |> List.isEmpty |> not ->
                        return errors.[[0]] |> fst |> Exception |> Error,
                        mapErrors (TraceLevel.Critical, errors, 
lastTopLevelIndex) allCode
                    | _ ->
                        return Error (Exception "Spiral error or timeout"),
                        [[|
                            (
                                TraceLevel.Critical, "Diag: Spiral error or 
timeout", 0, ("", (0, 0), (0, 0))
                            )
                        |]]
                with ex ->
                    log $"Eval / ex: {ex |> formatException}"
                    return Error (Exception $"Spiral error or timeout (4_) / ex:
{ex |> formatException}"),
                    [[|
                        (
                            TraceLevel.Critical, $"Diag: Spiral error or timeout
(4) / ex: {ex |> formatException}", 0, ("", (0, 0), (0, 0))
                        )
                    |]]
            }
            |> Async.runWithTimeoutStrict timeout
            |> Option.defaultValue (
                Error (Exception "Spiral error or timeout (2)"),
                [[|
                    (
                        TraceLevel.Critical, "Diag: Spiral error or timeout 
(2)", 0, ("", (0, 0), (0, 0))
                    )
                |]]
            )
        with ex ->
            log $"Eval / ex: {ex |> formatException}"
            Error (Exception $"Spiral error or timeout (3) / ex: {ex |> 
formatException}"),
            [[|
                (
                    TraceLevel.Critical, $"Diag: Spiral error or timeout (3) / 
ex: {ex |> formatException}", 0, ("", (0, 0), (0, 0))
                )
            |]]
[NbConvertApp] Converting notebook Eval.dib.ipynb to html
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
  validate(nb)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
  return _pygments_highlight(
[NbConvertApp] Writing 373321 bytes to Eval.dib.html
00:00:00 #1 [Debug] writeDibCode / output: Fs / path: Eval.dib
00:00:00 #2 [Debug] parseDibCode / output: Fs / file: Eval.dib
In [ ]:
{ . "$ScriptDir/../apps/plot/build.ps1" } | Invoke-Block
info: syncing channel updates for 'nightly-2024-02-26-x86_64-unknown-linux-gnu'
info: latest update on 2024-02-26, rust version 1.78.0-nightly (0ecbd0605 2024-02-25)
info: downloading component 'cargo'
info: downloading component 'clippy'
info: downloading component 'rust-docs'
info: downloading component 'rust-src'
info: downloading component 'rust-std' for 'wasm32-unknown-unknown'
info: downloading component 'rust-std'
info: downloading component 'rustc'
info: downloading component 'rustfmt'
info: installing component 'cargo'
info: installing component 'clippy'
info: installing component 'rust-docs'
info: installing component 'rust-src'
info: installing component 'rust-std' for 'wasm32-unknown-unknown'
info: installing component 'rust-std'
info: installing component 'rustc'
info: installing component 'rustfmt'
    Updating crates.io index
 Downloading crates ...
  Downloaded plotters-backend v0.3.5
  Downloaded plotters-svg v0.3.5
  Downloaded plotters v0.3.5
   Compiling autocfg v1.2.0
   Compiling serde v1.0.197
   Compiling serde_json v1.0.115
   Compiling plotters-backend v0.3.5
   Compiling plotters-svg v0.3.5
   Compiling ryu v1.0.17
   Compiling itoa v1.0.11
   Compiling num-traits v0.2.18
   Compiling plotters v0.3.5
   Compiling plot v0.0.1 (/home/runner/work/polyglot/polyglot/apps/plot)
    Finished `release` profile [optimized] target(s) in 9.30s
In [ ]:
{ . "$ScriptDir/../lib/spiral/build.ps1" } | Invoke-Block
00:00:00 #1 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #2 [Debug] executeAsync / options: { Command =
   "dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64"
  WorkingDirectory = None
  CancellationToken = Some System.Threading.CancellationToken
  OnLine = Some <fun:main@425-61> }
00:00:00 #3 [Verbose] > pwd: /home/runner/work/polyglot/polyglot/lib/spiral
00:00:00 #4 [Verbose] > dll_path: /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release
00:00:00 #5 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #6 [Verbose] waitForPortAccess / port: 13805 / retry: 0
00:00:00 #7 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #8 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #9 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #10 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #11 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #12 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #13 [Verbose] > Starting the Spiral Server. It is bound to: http://localhost:13805
00:00:00 #14 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #15 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #16 [Debug] sendJson / port: 13805 / json: {"Ping":true} / result.Length:
00:00:00 #17 [Verbose] awaitCompiler / Ping / result: Some(null) / port: 13805 / retry: 0
00:00:00 #18 [Verbose] > Server bound to: http://localhost:13805
00:00:00 #21 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 common.dib""
  WorkingDirectory = None
  CancellationToken = Some System.Threading.CancellationToken
  OnLine = None }
00:00:00 #20 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 guid.dib""
  WorkingDirectory = None
  CancellationToken = Some System.Threading.CancellationToken
  OnLine = None }
00:00:00 #19 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 testing.dib""
  WorkingDirectory = None
  CancellationToken = Some System.Threading.CancellationToken
  OnLine = None }
00:00:03 #22 [Verbose] >
00:00:03 #23 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:03 #24 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:03 #25 [Verbose] > │ # guid                                                                       │
00:00:03 #26 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:03 #27 [Verbose] >
00:00:03 #28 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:03 #29 [Verbose] > // // test
00:00:03 #30 [Verbose] >
00:00:03 #31 [Verbose] > open testing
00:00:03 #32 [Verbose] >
00:00:03 #33 [Verbose] >
00:00:03 #34 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:03 #35 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:03 #36 [Verbose] > │ # testing                                                                    │
00:00:03 #37 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:03 #38 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:03 #39 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:03 #40 [Verbose] > │ # common                                                                     │
00:00:03 #41 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:03 #42 [Verbose] >
00:00:03 #43 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:03 #44 [Verbose] > inl __expect fn log b a =
00:00:03 #45 [Verbose] >     if log then
00:00:03 #46 [Verbose] >         a |> sm'.format_debug |> console.write_line
00:00:03 #47 [Verbose] >     inl result = fn a b
00:00:03 #48 [Verbose] >     inl result =
00:00:03 #49 [Verbose] >         result || join result
00:00:03 #50 [Verbose] >     if log
00:00:03 #51 [Verbose] >     then $"$\"__expect / actual: %A{!a} / expected: %A{!b}\""
00:00:03 #52 [Verbose] >     else "__expect"
00:00:03 #53 [Verbose] >     |> assert result
00:00:03 #54 [Verbose] >
00:00:03 #55 [Verbose] > inl __assert_approx_eq log e b a = __expect (fun a b => abs (b - a) < (e |>
00:00:03 #56 [Verbose] > optionm.defaultWith 0.00000001)) log b a
00:00:03 #57 [Verbose] > inl _assert_approx_eq e b a = __assert_approx_eq true e b a
00:00:03 #58 [Verbose] >
00:00:03 #59 [Verbose] > inl __assert_eq log b a = __expect (=) log b a
00:00:03 #60 [Verbose] > inl _assert_eq b a = __assert_eq true b a
00:00:03 #61 [Verbose] >
00:00:03 #62 [Verbose] > inl __assert_eq' log b a = __expect (/=) log b a
00:00:03 #63 [Verbose] > inl _assert_eq' b a = __assert_eq' true b a
00:00:03 #64 [Verbose] >
00:00:03 #65 [Verbose] > inl __assert_ne log b a = __expect (fun a b => a = b |> fun x => join x |> not)
00:00:03 #66 [Verbose] > log b a
00:00:03 #67 [Verbose] > inl _assert_ne b a = __assert_ne true b a
00:00:03 #68 [Verbose] >
00:00:03 #69 [Verbose] > inl __assert_gt log b a = __expect (>) log b a
00:00:03 #70 [Verbose] > inl _assert_gt b a = __assert_gt true b a
00:00:03 #71 [Verbose] >
00:00:03 #72 [Verbose] > inl __assert_ge log b a = __expect (>=) log b a
00:00:03 #73 [Verbose] > inl _assert_ge b a = __assert_ge true b a
00:00:03 #74 [Verbose] >
00:00:03 #75 [Verbose] > inl __assert_lt log b a = __expect (<) log b a
00:00:03 #76 [Verbose] > inl _assert_lt b a = __assert_lt true b a
00:00:03 #77 [Verbose] >
00:00:03 #78 [Verbose] > inl __assert_le log b a = __expect (<=) log b a
00:00:03 #79 [Verbose] > inl _assert_le b a = __assert_le true b a
00:00:03 #80 [Verbose] >
00:00:03 #81 [Verbose] > inl __contains forall t. log (b : t) a =
00:00:03 #82 [Verbose] >     __expect
00:00:03 #83 [Verbose] >         (fun a b => a |> $'Seq.tryFind' ((=) b) |> optionm'.unbox |> fun (x :
00:00:03 #84 [Verbose] > option t) => x <> None)
00:00:03 #85 [Verbose] >         log b a
00:00:03 #86 [Verbose] > inl _contains b a = __contains true b a
00:00:03 #87 [Verbose] >
00:00:03 #88 [Verbose] > inl _throws (fn : () -> ()) : option exn =
00:00:03 #89 [Verbose] >     inl none = None : option exn
00:00:03 #90 [Verbose] >     inl some (s : exn) = Some s
00:00:03 #91 [Verbose] >     $"try !fn (); !none with ex -> ex |> !some"
00:00:03 #92 [Verbose] >
00:00:03 #93 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:03 #94 [Verbose] > // // test
00:00:03 #95 [Verbose] >
00:00:03 #96 [Verbose] > open testing
00:00:05 #97 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-3397-9781-9b0c554d0b2b/main.spi
00:00:06 #98 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-3454-5403-5a3b7bab3266/main.spi
00:00:06 #99 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-3459-5975-5ac16d46854d/main.spi
00:00:08 #100 [Verbose] >
00:00:08 #101 [Verbose] > ╭─[ 4.94s - stdout ]───────────────────────────────────────────────────────────╮
00:00:08 #102 [Verbose] > │ ()                                                                           │
00:00:08 #103 [Verbose] > │                                                                              │
00:00:08 #104 [Verbose] > │                                                                              │
00:00:08 #105 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:08 #106 [Verbose] >
00:00:08 #107 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:08 #108 [Verbose] > // // test
00:00:08 #109 [Verbose] >
00:00:08 #110 [Verbose] > 1f64
00:00:08 #111 [Verbose] > |> _assert_approx_eq (Some 3) 2
00:00:08 #112 [Verbose] >
00:00:08 #113 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-3758-5868-5643da6140a4/main.spi
00:00:08 #114 [Verbose] >
00:00:08 #115 [Verbose] > ╭─[ 5.30s - stdout ]───────────────────────────────────────────────────────────╮
00:00:08 #116 [Verbose] > │ ()                                                                           │
00:00:08 #117 [Verbose] > │                                                                              │
00:00:08 #118 [Verbose] > │                                                                              │
00:00:08 #119 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:08 #120 [Verbose] >
00:00:08 #121 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:08 #122 [Verbose] > ╭─[ 5.02s - stdout ]───────────────────────────────────────────────────────────╮
00:00:08 #123 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:08 #124 [Verbose] > │ ()                                                                           │
00:00:08 #125 [Verbose] > │ ## guid                                                                      │
00:00:08 #127 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:08 #126 [Verbose] > │                                                                              │
00:00:08 #128 [Verbose] > │                                                                              │
00:00:08 #129 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:08 #130 [Verbose] >
00:00:08 #131 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:08 #132 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:08 #133 [Verbose] > │ ## types                                                                     │
00:00:08 #134 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:08 #135 [Verbose] >
00:00:08 #136 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:08 #137 [Verbose] > nominal guid = $"System.Guid"
00:00:08 #138 [Verbose] >
00:00:08 #139 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:08 #140 [Verbose] > nominal any = $"obj"
00:00:08 #141 [Verbose] > nominal disposable = $"System.IDisposable"
00:00:08 #142 [Verbose] > nominal exn = $"exn"
00:00:08 #143 [Verbose] > nominal unativeint = $"unativeint"
00:00:08 #144 [Verbose] >
00:00:08 #145 [Verbose] > let array x = x
00:00:08 #146 [Verbose] >
00:00:08 #147 [Verbose] > inl unativeint forall t {int}. (n : t) : unativeint =
00:00:08 #148 [Verbose] >     $"unativeint !n"
00:00:08 #149 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-3769-6943-687ddfe4eab2/main.spi
00:00:08 #150 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-3770-7035-7cb2494d37c4/main.spi
00:00:08 #151 [Verbose] >
00:00:08 #152 [Verbose] > ╭─[ 282.40ms - stdout ]────────────────────────────────────────────────────────╮
00:00:08 #153 [Verbose] > │ ()                                                                           │
00:00:08 #154 [Verbose] > │                                                                              │
00:00:08 #155 [Verbose] > │                                                                              │
00:00:08 #156 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:08 #157 [Verbose] >
00:00:08 #158 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:08 #159 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:08 #160 [Verbose] > │ ## prototype                                                                 │
00:00:08 #161 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:08 #162 [Verbose] >
00:00:08 #163 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:08 #164 [Verbose] > prototype (~:>) r : forall t. t -> r
00:00:08 #165 [Verbose] > prototype append t : t -> t -> t
00:00:08 #166 [Verbose] > prototype of_string t : string -> t
00:00:08 #167 [Verbose] > prototype to_string t : t -> string
00:00:08 #168 [Verbose] >
00:00:08 #169 [Verbose] > ╭─[ 286.88ms - stdout ]────────────────────────────────────────────────────────╮
00:00:08 #170 [Verbose] > │ ()                                                                           │
00:00:08 #171 [Verbose] > │                                                                              │
00:00:08 #172 [Verbose] > │                                                                              │
00:00:08 #173 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:08 #174 [Verbose] >
00:00:08 #175 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:08 #176 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:08 #177 [Verbose] > │ ## new_guid                                                                  │
00:00:08 #178 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:08 #179 [Verbose] >
00:00:08 #180 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:08 #181 [Verbose] > inl new_guid (x : string) : guid =
00:00:08 #182 [Verbose] >     $'`guid !x '
00:00:08 #183 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-3798-9843-961973a5cf31/main.spi
00:00:08 #184 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-3798-9802-9b21a7c99882/main.spi
00:00:09 #185 [Verbose] >
00:00:09 #186 [Verbose] > ╭─[ 193.32ms - stdout ]────────────────────────────────────────────────────────╮
00:00:09 #187 [Verbose] > │ ()                                                                           │
00:00:09 #188 [Verbose] > │                                                                              │
00:00:09 #189 [Verbose] > │                                                                              │
00:00:09 #190 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:09 #191 [Verbose] >
00:00:09 #192 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:09 #193 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:09 #194 [Verbose] > │ ## new_raw_guid                                                              │
00:00:09 #195 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:09 #196 [Verbose] >
00:00:09 #197 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:09 #198 [Verbose] > inl new_raw_guid () : guid =
00:00:09 #199 [Verbose] >     $"System.Guid.NewGuid ()"
00:00:09 #200 [Verbose] >
00:00:09 #201 [Verbose] > ╭─[ 226.29ms - stdout ]────────────────────────────────────────────────────────╮
00:00:09 #202 [Verbose] > │ ()                                                                           │
00:00:09 #203 [Verbose] > │                                                                              │
00:00:09 #204 [Verbose] > │                                                                              │
00:00:09 #205 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:09 #206 [Verbose] >
00:00:09 #207 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:09 #208 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:09 #209 [Verbose] > │ ## null                                                                      │
00:00:09 #210 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:09 #211 [Verbose] >
00:00:09 #212 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:09 #213 [Verbose] > inl null forall t. () : t =
00:00:09 #214 [Verbose] >     $"null |> unbox<`t>"
00:00:09 #215 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-3817-1757-18140ed8bfbd/main.spi
00:00:09 #216 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-3820-2053-2f3e93e6072f/main.spi
00:00:09 #217 [Verbose] >
00:00:09 #218 [Verbose] > ╭─[ 216.91ms - stdout ]────────────────────────────────────────────────────────╮
00:00:09 #219 [Verbose] > │ ()                                                                           │
00:00:09 #220 [Verbose] > │                                                                              │
00:00:09 #221 [Verbose] > │                                                                              │
00:00:09 #222 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:09 #223 [Verbose] >
00:00:09 #224 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:09 #225 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:09 #226 [Verbose] > │ ## main                                                                      │
00:00:09 #227 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:09 #228 [Verbose] >
00:00:09 #229 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:09 #230 [Verbose] > inl main () =
00:00:09 #231 [Verbose] >     $"let new_guid x = !new_guid x" : ()
00:00:09 #232 [Verbose] >     $"let new_raw_guid x = !new_raw_guid x" : ()
00:00:09 #233 [Verbose] >
00:00:09 #234 [Verbose] > ╭─[ 213.73ms - stdout ]────────────────────────────────────────────────────────╮
00:00:09 #235 [Verbose] > │ ()                                                                           │
00:00:09 #236 [Verbose] > │                                                                              │
00:00:09 #237 [Verbose] > │                                                                              │
00:00:09 #238 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:09 #239 [Verbose] >
00:00:09 #240 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:09 #241 [Verbose] > inl i32 forall t. (x : t) : i32 =
00:00:09 #242 [Verbose] >     $"int32 !x"
00:00:09 #243 [Verbose] >
00:00:09 #244 [Verbose] > inl i64 forall t. (x : t) : i64 =
00:00:09 #245 [Verbose] >     $"int64 !x"
00:00:09 #246 [Verbose] >
00:00:09 #247 [Verbose] > inl f32 forall t. (x : t) : f32 =
00:00:09 #248 [Verbose] >     $"float32 !x"
00:00:09 #249 [Verbose] >
00:00:09 #250 [Verbose] > inl f64 forall t. (x : t) : f64 =
00:00:09 #251 [Verbose] >     $"float !x"
00:00:09 #252 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-3839-3968-30379943b83a/main.spi
00:00:09 #253 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-3841-4193-4c72431d20f2/main.spi
00:00:09 #254 [Verbose] >
00:00:09 #255 [Verbose] > ╭─[ 941.93ms - stdout ]────────────────────────────────────────────────────────╮
00:00:09 #256 [Verbose] > │ let rec method0 () : unit =                                                  │
00:00:09 #257 [Verbose] > │     let v0 : string = $"%A{1.0}"                                             │
00:00:09 #258 [Verbose] > │     System.Console.WriteLine v0                                              │
00:00:09 #259 [Verbose] > │     let v1 : string = $"__expect / actual: %A{1.0} / expected: %A{2.0}"      │
00:00:09 #260 [Verbose] > │     ()                                                                       │
00:00:09 #261 [Verbose] > │ method0()                                                                    │
00:00:09 #262 [Verbose] > │                                                                              │
00:00:09 #263 [Verbose] > │ 1.0                                                                          │
00:00:09 #264 [Verbose] > │                                                                              │
00:00:09 #265 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:09 #266 [Verbose] >
00:00:09 #267 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:09 #268 [Verbose] > // // test
00:00:09 #269 [Verbose] >
00:00:09 #270 [Verbose] > "abcd"
00:00:09 #271 [Verbose] > |> _contains 'b'
00:00:09 #272 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-3852-5268-5b3f4fea7a3e/main.spi
00:00:09 #273 [Verbose] >
00:00:09 #274 [Verbose] > ╭─[ 224.35ms - stdout ]────────────────────────────────────────────────────────╮
00:00:09 #275 [Verbose] > │ ()                                                                           │
00:00:09 #276 [Verbose] > │                                                                              │
00:00:09 #277 [Verbose] > │                                                                              │
00:00:09 #278 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:09 #279 [Verbose] >
00:00:09 #280 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:09 #281 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:09 #282 [Verbose] > │ ## pair                                                                      │
00:00:09 #283 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:09 #284 [Verbose] >
00:00:09 #285 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:09 #286 [Verbose] > type pair a b = $"(`a * `b)"
00:00:09 #287 [Verbose] >
00:00:09 #288 [Verbose] > inl pair x y =
00:00:09 #289 [Verbose] >     x, y
00:00:09 #290 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-3864-6464-66a45a176edd/main.spi
00:00:09 #291 [Verbose] >
00:00:09 #292 [Verbose] > ╭─[ 206.22ms - stdout ]────────────────────────────────────────────────────────╮
00:00:09 #293 [Verbose] > │ ()                                                                           │
00:00:09 #294 [Verbose] > │                                                                              │
00:00:09 #295 [Verbose] > │                                                                              │
00:00:09 #296 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:09 #297 [Verbose] >
00:00:09 #298 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:09 #299 [Verbose] > // // test
00:00:09 #300 [Verbose] >
00:00:09 #301 [Verbose] > pair 1i32 2i32
00:00:09 #302 [Verbose] > |> _assert_eq (1, 2)
00:00:09 #303 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-3885-8539-851c88ecc755/main.spi
00:00:10 #304 [Verbose] >
00:00:10 #305 [Verbose] > ╭─[ 814.94ms - stdout ]────────────────────────────────────────────────────────╮
00:00:10 #306 [Verbose] > │ let rec closure0 () (v0 : string) : System.Guid =                            │
00:00:10 #307 [Verbose] > │     let v1 : System.Guid = System.Guid v0                                    │
00:00:10 #308 [Verbose] > │     v1                                                                       │
00:00:10 #309 [Verbose] > │ and closure1 () () : System.Guid =                                           │
00:00:10 #310 [Verbose] > │     let v0 : System.Guid = System.Guid.NewGuid ()                            │
00:00:10 #311 [Verbose] > │     v0                                                                       │
00:00:10 #312 [Verbose] > │ let v0 : (string -> System.Guid) = closure0()                                │
00:00:10 #313 [Verbose] > │ let new_guid x = v0 x                                                        │
00:00:10 #314 [Verbose] > │ let v1 : (unit -> System.Guid) = closure1()                                  │
00:00:10 #315 [Verbose] > │ let new_raw_guid x = v1 x                                                    │
00:00:10 #316 [Verbose] > │ ()                                                                           │
00:00:10 #317 [Verbose] > │                                                                              │
00:00:10 #318 [Verbose] > │                                                                              │
00:00:10 #319 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:10 #320 [Verbose] >
00:00:10 #321 [Verbose] > ╭─[ 836.58ms - stdout ]────────────────────────────────────────────────────────╮
00:00:10 #322 [Verbose] > │ type [<Struct>] US0 =                                                        │
00:00:10 #323 [Verbose] > │     | US0_0                                                                  │
00:00:10 #324 [Verbose] > │     | US0_1 of f1_0 : char                                                   │
00:00:10 #325 [Verbose] > │ let rec closure0 () (v0 : char) : bool =                                     │
00:00:10 #326 [Verbose] > │     let v1 : bool = 'b' = v0                                                 │
00:00:10 #327 [Verbose] > │     v1                                                                       │
00:00:10 #328 [Verbose] > │ and closure1 () (v0 : char) : US0 =                                          │
00:00:10 #329 [Verbose] > │     US0_1(v0)                                                                │
00:00:10 #330 [Verbose] > │ and method1 (v0 : bool) : bool =                                             │
00:00:10 #331 [Verbose] > │     v0                                                                       │
00:00:10 #332 [Verbose] > │ and method0 () : unit =                                                      │
00:00:10 #333 [Verbose] > │     let v0 : string = "abcd"                                                 │
00:00:10 #334 [Verbose] > │     let v1 : string = $"%A{v0}"                                              │
00:00:10 #335 [Verbose] > │     System.Console.WriteLine v1                                              │
00:00:10 #336 [Verbose] > │     let v2 : ((char -> bool) -> (string -> char option)) = Seq.tryFind       │
00:00:10 #337 [Verbose] > │     let v3 : (char -> bool) = closure0()                                     │
00:00:10 #338 [Verbose] > │     let v4 : (string -> char option) = v2 v3                                 │
00:00:10 #339 [Verbose] > │     let v5 : char option = v4 v0                                             │
00:00:10 #340 [Verbose] > │     let v6 : (char -> US0) = closure1()                                      │
00:00:10 #341 [Verbose] > │     let v7 : US0 = US0_0                                                     │
00:00:10 #342 [Verbose] > │     let v8 : US0 = v5 |> Option.map v6 |> Option.defaultValue v7             │
00:00:10 #343 [Verbose] > │     let v10 : bool =                                                         │
00:00:10 #344 [Verbose] > │         match v8 with                                                        │
00:00:10 #345 [Verbose] > │         | US0_0 -> (* None *)                                                │
00:00:10 #346 [Verbose] > │             true                                                             │
00:00:10 #347 [Verbose] > │         | _ ->                                                               │
00:00:10 #348 [Verbose] > │             false                                                            │
00:00:10 #349 [Verbose] > │     let v11 : bool = v10 <> true                                             │
00:00:10 #350 [Verbose] > │     let v13 : bool =                                                         │
00:00:10 #351 [Verbose] > │         if v11 then                                                          │
00:00:10 #352 [Verbose] > │             true                                                             │
00:00:10 #353 [Verbose] > │         else                                                                 │
00:00:10 #354 [Verbose] > │             method1(v11)                                                     │
00:00:10 #355 [Verbose] > │     let v14 : string = $"__expect / actual: %A{v0} / expected: %A{'b'}"      │
00:00:10 #356 [Verbose] > │     let v15 : bool = v13 = false                                             │
00:00:10 #357 [Verbose] > │     if v15 then                                                              │
00:00:10 #358 [Verbose] > │         failwith<unit> v14                                                   │
00:00:10 #359 [Verbose] > │ method0()                                                                    │
00:00:10 #360 [Verbose] > │                                                                              │
00:00:10 #361 [Verbose] > │ "abcd"                                                                       │
00:00:10 #362 [Verbose] > │                                                                              │
00:00:10 #363 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:10 #364 [Verbose] >
00:00:10 #365 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:10 #366 [Verbose] > // // test
00:00:10 #367 [Verbose] >
00:00:10 #368 [Verbose] > (dyn 1f64)
00:00:10 #369 [Verbose] > |> _assert_approx_eq (Some 3) 2
00:00:10 #370 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-3937-3735-3946807d3d32/main.spi
00:00:10 #371 [Verbose] >
00:00:10 #372 [Verbose] > ╭─[ 314.71ms - stdout ]────────────────────────────────────────────────────────╮
00:00:10 #373 [Verbose] > │ let rec method1 (v0 : bool) : bool =                                         │
00:00:10 #374 [Verbose] > │     v0                                                                       │
00:00:10 #375 [Verbose] > │ and method0 () : unit =                                                      │
00:00:10 #376 [Verbose] > │     let v0 : float = 1.0                                                     │
00:00:10 #377 [Verbose] > │     let v1 : string = $"%A{v0}"                                              │
00:00:10 #378 [Verbose] > │     System.Console.WriteLine v1                                              │
00:00:10 #379 [Verbose] > │     let v2 : float = 2.0 - v0                                                │
00:00:10 #380 [Verbose] > │     let v3 : float =  -v2                                                    │
00:00:10 #381 [Verbose] > │     let v4 : bool = v2 >= v3                                                 │
00:00:10 #382 [Verbose] > │     let v5 : float =                                                         │
00:00:10 #383 [Verbose] > │         if v4 then                                                           │
00:00:10 #384 [Verbose] > │             v2                                                               │
00:00:10 #385 [Verbose] > │         else                                                                 │
00:00:10 #386 [Verbose] > │             v3                                                               │
00:00:10 #387 [Verbose] > │     let v6 : bool = v5 < 3.0                                                 │
00:00:10 #388 [Verbose] > │     let v8 : bool =                                                          │
00:00:10 #389 [Verbose] > │         if v6 then                                                           │
00:00:10 #390 [Verbose] > │             true                                                             │
00:00:10 #391 [Verbose] > │         else                                                                 │
00:00:10 #392 [Verbose] > │             method1(v6)                                                      │
00:00:10 #393 [Verbose] > │     let v9 : string = $"__expect / actual: %A{v0} / expected: %A{2.0}"       │
00:00:10 #394 [Verbose] > │     let v10 : bool = v8 = false                                              │
00:00:10 #395 [Verbose] > │     if v10 then                                                              │
00:00:10 #396 [Verbose] > │         failwith<unit> v9                                                    │
00:00:10 #397 [Verbose] > │ method0()                                                                    │
00:00:10 #398 [Verbose] > │                                                                              │
00:00:10 #399 [Verbose] > │ 1.0                                                                          │
00:00:10 #400 [Verbose] > │                                                                              │
00:00:10 #401 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:10 #402 [Verbose] >
00:00:10 #403 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:10 #404 [Verbose] > inl print_and_return x =
00:00:10 #405 [Verbose] >     $"printfn $\"print_and_return / x: {!x}\""
00:00:10 #406 [Verbose] >     x
00:00:10 #407 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-3968-6834-683acd45ae3f/main.spi
00:00:10 #408 [Verbose] >
00:00:10 #409 [Verbose] > ╭─[ 948.25ms - stdout ]────────────────────────────────────────────────────────╮
00:00:10 #410 [Verbose] > │ let rec method0 () : unit =                                                  │
00:00:10 #411 [Verbose] > │     let v0 : string = $"%A{struct (1, 2)}"                                   │
00:00:10 #412 [Verbose] > │     System.Console.WriteLine v0                                              │
00:00:10 #413 [Verbose] > │     let v1 : string = $"__expect / actual: %A{struct (1, 2)} / expected:     │
00:00:10 #414 [Verbose] > │ %A{struct (1, 2)}"                                                           │
00:00:10 #415 [Verbose] > │     ()                                                                       │
00:00:10 #416 [Verbose] > │ method0()                                                                    │
00:00:10 #417 [Verbose] > │                                                                              │
00:00:10 #418 [Verbose] > │ struct (1, 2)                                                                │
00:00:10 #419 [Verbose] > │                                                                              │
00:00:10 #420 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:10 #421 [Verbose] >
00:00:10 #422 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:10 #423 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:10 #424 [Verbose] > │ ## new_pair                                                                  │
00:00:10 #425 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:10 #426 [Verbose] >
00:00:10 #427 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:10 #428 [Verbose] > inl new_pair forall a b. (a : a) (b : b) : pair a b =
00:00:10 #429 [Verbose] >     $"!a, !b"
00:00:10 #430 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-3980-8027-8c63184bd98b/main.spi
00:00:10 #431 [Verbose] >
00:00:10 #432 [Verbose] > ╭─[ 224.01ms - stdout ]────────────────────────────────────────────────────────╮
00:00:10 #433 [Verbose] > │ ()                                                                           │
00:00:10 #434 [Verbose] > │                                                                              │
00:00:10 #435 [Verbose] > │                                                                              │
00:00:10 #436 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:10 #437 [Verbose] >
00:00:10 #438 [Verbose] > ╭─[ 221.06ms - stdout ]────────────────────────────────────────────────────────╮
00:00:10 #439 [Verbose] > │ ()                                                                           │
00:00:10 #440 [Verbose] > │                                                                              │
00:00:10 #441 [Verbose] > │                                                                              │
00:00:10 #442 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:10 #443 [Verbose] >
00:00:10 #444 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:10 #445 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:10 #446 [Verbose] > │ ## from_pair                                                                 │
00:00:10 #447 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:10 #448 [Verbose] >
00:00:10 #449 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:10 #450 [Verbose] > inl from_pair forall a b. (pair : pair a b) : a * b =
00:00:10 #451 [Verbose] >     $"let (a, b) = !pair"
00:00:10 #452 [Verbose] >     $"a", $"b"
00:00:10 #453 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-4002-0254-050a87b77f88/main.spi
00:00:11 #454 [Verbose] >
00:00:11 #455 [Verbose] > ╭─[ 204.76ms - stdout ]────────────────────────────────────────────────────────╮
00:00:11 #456 [Verbose] > │ ()                                                                           │
00:00:11 #457 [Verbose] > │                                                                              │
00:00:11 #458 [Verbose] > │                                                                              │
00:00:11 #459 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:11 #460 [Verbose] >
00:00:11 #461 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:11 #462 [Verbose] > // // test
00:00:11 #463 [Verbose] >
00:00:11 #464 [Verbose] > new_pair "a" 1i32
00:00:11 #465 [Verbose] > |> from_pair
00:00:11 #466 [Verbose] > |> _assert_eq ("a", 1i32)
00:00:11 #467 [Verbose] > [NbConvertApp] Converting notebook guid.dib.ipynb to html
00:00:11 #468 [Verbose] > /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:00:11 #469 [Verbose] >   validate(nb)
00:00:11 #470 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-4023-2330-2c3794a3c6f4/main.spi
00:00:11 #471 [Verbose] >
00:00:11 #472 [Verbose] > ╭─[ 369.48ms - stdout ]────────────────────────────────────────────────────────╮
00:00:11 #473 [Verbose] > │ let rec method1 (v0 : bool) : bool =                                         │
00:00:11 #474 [Verbose] > │     v0                                                                       │
00:00:11 #475 [Verbose] > │ and method0 () : unit =                                                      │
00:00:11 #476 [Verbose] > │     let v0 : string = "a"                                                    │
00:00:11 #477 [Verbose] > │     let v1 : (string * int32) = v0, 1                                        │
00:00:11 #478 [Verbose] > │     let (a, b) = v1                                                          │
00:00:11 #479 [Verbose] > │     let v2 : string = a                                                      │
00:00:11 #480 [Verbose] > │     let v3 : int32 = b                                                       │
00:00:11 #481 [Verbose] > │     let v4 : string = $"%A{struct (v2, v3)}"                                 │
00:00:11 #482 [Verbose] > │     System.Console.WriteLine v4                                              │
00:00:11 #483 [Verbose] > │     let v5 : bool = v2 = "a"                                                 │
00:00:11 #484 [Verbose] > │     let v7 : bool =                                                          │
00:00:11 #485 [Verbose] > │         if v5 then                                                           │
00:00:11 #486 [Verbose] > │             let v6 : bool = v3 = 1                                           │
00:00:11 #487 [Verbose] > │             v6                                                               │
00:00:11 #488 [Verbose] > │         else                                                                 │
00:00:11 #489 [Verbose] > │             false                                                            │
00:00:11 #490 [Verbose] > │     let v9 : bool =                                                          │
00:00:11 #491 [Verbose] > │         if v7 then                                                           │
00:00:11 #492 [Verbose] > │             true                                                             │
00:00:11 #493 [Verbose] > │         else                                                                 │
00:00:11 #494 [Verbose] > │             method1(v7)                                                      │
00:00:11 #495 [Verbose] > │     let v10 : string = $"__expect / actual: %A{struct (v2, v3)} / expected:  │
00:00:11 #496 [Verbose] > │ %A{struct (v0, 1)}"                                                          │
00:00:11 #497 [Verbose] > │     let v11 : bool = v9 = false                                              │
00:00:11 #498 [Verbose] > │     if v11 then                                                              │
00:00:11 #499 [Verbose] > │         failwith<unit> v10                                                   │
00:00:11 #500 [Verbose] > │ method0()                                                                    │
00:00:11 #501 [Verbose] > │                                                                              │
00:00:11 #502 [Verbose] > │ struct ("a", 1)                                                              │
00:00:11 #503 [Verbose] > │                                                                              │
00:00:11 #504 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:11 #505 [Verbose] >
00:00:11 #506 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:11 #507 [Verbose] > // // test
00:00:11 #508 [Verbose] >
00:00:11 #509 [Verbose] > new_pair "a" (new_pair 1i32 "b")
00:00:11 #510 [Verbose] > |> from_pair
00:00:11 #511 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-4060-6096-67a6b09283c4/main.spi
00:00:11 #512 [Verbose] >
00:00:11 #513 [Verbose] > ╭─[ 341.73ms - return value ]──────────────────────────────────────────────────╮
00:00:11 #514 [Verbose] > │ <details open="open" class="dni-treeview"><summary><span                     │
00:00:11 #515 [Verbose] > │ class="dni-code-hint"><code>(a, (1,                                          │
00:00:11 #516 [Verbose] > │ b))</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><t │
00:00:11 #517 [Verbose] > │ d>Item1</td><td><div                                                         │
00:00:11 #518 [Verbose] > │ class="dni-plaintext"><pre>a</pre></div></td></tr><tr><td>Item2</td><td><det │
00:00:11 #519 [Verbose] > │ ails class="dni-treeview"><summary><span class="dni-code-hint"><code>(1,     │
00:00:11 #520 [Verbose] > │ b)</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
00:00:11 #521 [Verbose] > │ >Item1</td><td><div                                                          │
00:00:11 #522 [Verbose] > │ class="dni-plaintext"><pre>1</pre></div></td></tr><tr><td>Item2</td><td><div │
00:00:11 #523 [Verbose] > │ class="dni-plaintext"><pre>b</pre></div></td></tr></tbody></table></div></de │
00:00:11 #524 [Verbose] > │ tails></td></tr></tbody></table></div></details><style>                      │
00:00:11 #525 [Verbose] > │ .dni-code-hint {                                                             │
00:00:11 #526 [Verbose] > │     font-style: italic;                                                      │
00:00:11 #527 [Verbose] > │     overflow: hidden;                                                        │
00:00:11 #528 [Verbose] > │     white-space: nowrap;                                                     │
00:00:11 #529 [Verbose] > │ }                                                                            │
00:00:11 #530 [Verbose] > │ .dni-treeview {                                                              │
00:00:11 #531 [Verbose] > │ ...                                                                          │
00:00:11 #532 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:11 #533 [Verbose] >
00:00:11 #534 [Verbose] > ╭─[ 356.46ms - stdout ]────────────────────────────────────────────────────────╮
00:00:11 #535 [Verbose] > │ let rec method0 () : struct (string * (int32 * string)) =                    │
00:00:11 #536 [Verbose] > │     let v0 : string = "b"                                                    │
00:00:11 #537 [Verbose] > │     let v1 : (int32 * string) = 1, v0                                        │
00:00:11 #538 [Verbose] > │     let v2 : string = "a"                                                    │
00:00:11 #539 [Verbose] > │     let v3 : (string * (int32 * string)) = v2, v1                            │
00:00:11 #540 [Verbose] > │     let (a, b) = v3                                                          │
00:00:11 #541 [Verbose] > │     let v4 : string = a                                                      │
00:00:11 #542 [Verbose] > │     let v5 : (int32 * string) = b                                            │
00:00:11 #543 [Verbose] > │     struct (v4, v5)                                                          │
00:00:11 #544 [Verbose] > │ method0()                                                                    │
00:00:11 #545 [Verbose] > │                                                                              │
00:00:11 #546 [Verbose] > │                                                                              │
00:00:11 #547 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:11 #548 [Verbose] >
00:00:11 #549 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:11 #550 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:11 #551 [Verbose] > │ ## log_level_type                                                            │
00:00:11 #552 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:11 #553 [Verbose] >
00:00:11 #554 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:11 #555 [Verbose] > union log_level_type =
00:00:11 #556 [Verbose] >     | Verbose
00:00:11 #557 [Verbose] >     | Debug
00:00:11 #558 [Verbose] >     | Info
00:00:11 #559 [Verbose] >     | Warning
00:00:11 #560 [Verbose] >     | Critical
00:00:11 #561 [Verbose] >
00:00:11 #562 [Verbose] > instance to_string log_level_type = function
00:00:11 #563 [Verbose] >     | Verbose => "Verbose"
00:00:11 #564 [Verbose] >     | Debug => "Debug"
00:00:11 #565 [Verbose] >     | Info => "Info"
00:00:11 #566 [Verbose] >     | Warning => "Warning"
00:00:11 #567 [Verbose] >     | Critical => "Critical"
00:00:11 #568 [Verbose] >
00:00:11 #569 [Verbose] > instance of_string log_level_type = function
00:00:11 #570 [Verbose] >     | "Verbose" => Verbose
00:00:11 #571 [Verbose] >     | "Debug" => Debug
00:00:11 #572 [Verbose] >     | "Info" => Info
00:00:11 #573 [Verbose] >     | "Warning" => Warning
00:00:11 #574 [Verbose] >     | "Critical" => Critical
00:00:11 #575 [Verbose] > /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:00:11 #576 [Verbose] >   return _pygments_highlight(
00:00:11 #577 [Verbose] > [NbConvertApp] Converting notebook testing.dib.ipynb to html
00:00:11 #578 [Verbose] > /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:00:11 #579 [Verbose] >   validate(nb)
00:00:11 #580 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-4096-9626-9210c57521aa/main.spi
00:00:11 #581 [Verbose] > [NbConvertApp] Writing 278586 bytes to guid.dib.html
00:00:11 #582 [Verbose] >
00:00:11 #583 [Verbose] > ╭─[ 188.69ms - stdout ]────────────────────────────────────────────────────────╮
00:00:11 #584 [Verbose] > │ ()                                                                           │
00:00:11 #585 [Verbose] > │                                                                              │
00:00:11 #586 [Verbose] > │                                                                              │
00:00:11 #587 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:11 #588 [Verbose] >
00:00:11 #589 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:11 #590 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:11 #591 [Verbose] > │ ## to_any                                                                    │
00:00:11 #592 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:11 #593 [Verbose] >
00:00:11 #594 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:11 #595 [Verbose] > inl to_any forall t. (obj : t) : any =
00:00:11 #596 [Verbose] >     $"!obj"
00:00:11 #597 [Verbose] >
00:00:11 #598 [Verbose] > instance (~:>) any = to_any
00:00:12 #599 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-4115-1512-1d71f05bd0d1/main.spi
00:00:12 #600 [Verbose] >
00:00:12 #601 [Verbose] > ╭─[ 188.71ms - stdout ]────────────────────────────────────────────────────────╮
00:00:12 #602 [Verbose] > │ ()                                                                           │
00:00:12 #603 [Verbose] > │                                                                              │
00:00:12 #604 [Verbose] > │                                                                              │
00:00:12 #605 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:12 #606 [Verbose] >
00:00:12 #607 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:12 #608 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:12 #609 [Verbose] > │ ## (/@)                                                                      │
00:00:12 #610 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:12 #611 [Verbose] >
00:00:12 #612 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:12 #613 [Verbose] > inl (/@) a b =
00:00:12 #614 [Verbose] >     b |> append a
00:00:12 #615 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-4134-3467-3e6337fca750/main.spi
00:00:12 #616 [Debug] executeAsync / exitCode: 0 / output.Length: 7127
00:00:12 #617 [Debug] main / executeCommand / exitCode: 0
00:00:12 #618 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 console.dib""
  WorkingDirectory = None
  CancellationToken = Some System.Threading.CancellationToken
  OnLine = None }
00:00:12 #619 [Verbose] >
00:00:12 #620 [Verbose] > ╭─[ 219.82ms - stdout ]────────────────────────────────────────────────────────╮
00:00:12 #621 [Verbose] > │ ()                                                                           │
00:00:12 #622 [Verbose] > │                                                                              │
00:00:12 #623 [Verbose] > │                                                                              │
00:00:12 #624 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:12 #625 [Verbose] >
00:00:12 #626 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:12 #627 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:12 #628 [Verbose] > │ ## unbox                                                                     │
00:00:12 #629 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:12 #630 [Verbose] >
00:00:12 #631 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:12 #632 [Verbose] > inl unbox forall t u. (x : t) : u =
00:00:12 #633 [Verbose] >     $"!x |> unbox<`u>"
00:00:12 #634 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-4156-5653-5196d0de4e05/main.spi
00:00:12 #635 [Verbose] > /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:00:12 #636 [Verbose] >   return _pygments_highlight(
00:00:12 #637 [Verbose] >
00:00:12 #638 [Verbose] > ╭─[ 250.58ms - stdout ]────────────────────────────────────────────────────────╮
00:00:12 #639 [Verbose] > │ ()                                                                           │
00:00:12 #640 [Verbose] > │                                                                              │
00:00:12 #641 [Verbose] > │                                                                              │
00:00:12 #642 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:12 #643 [Verbose] >
00:00:12 #644 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:12 #645 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:12 #646 [Verbose] > │ ## (/+)                                                                      │
00:00:12 #647 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:12 #648 [Verbose] >
00:00:12 #649 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:12 #650 [Verbose] > inl (/+) forall t. (a : t) (b : t) : t =
00:00:12 #651 [Verbose] >     $"!a + !b"
00:00:12 #652 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-4182-8217-87afd99bfbfe/main.spi
00:00:12 #653 [Verbose] > [NbConvertApp] Writing 287010 bytes to testing.dib.html
00:00:12 #654 [Verbose] >
00:00:12 #655 [Verbose] > ╭─[ 219.83ms - stdout ]────────────────────────────────────────────────────────╮
00:00:12 #656 [Verbose] > │ ()                                                                           │
00:00:12 #657 [Verbose] > │                                                                              │
00:00:12 #658 [Verbose] > │                                                                              │
00:00:12 #659 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:12 #660 [Verbose] >
00:00:12 #661 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:12 #662 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:12 #663 [Verbose] > │ ## (/=)                                                                      │
00:00:12 #664 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:12 #665 [Verbose] >
00:00:12 #666 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:12 #667 [Verbose] > inl (/=) forall t. (a : t) (b : t) : bool =
00:00:12 #668 [Verbose] >     $"!a = !b"
00:00:12 #669 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-4204-0439-028319953eb5/main.spi
00:00:13 #670 [Verbose] >
00:00:13 #671 [Verbose] > ╭─[ 187.98ms - stdout ]────────────────────────────────────────────────────────╮
00:00:13 #672 [Verbose] > │ ()                                                                           │
00:00:13 #673 [Verbose] > │                                                                              │
00:00:13 #674 [Verbose] > │                                                                              │
00:00:13 #675 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:13 #676 [Verbose] >
00:00:13 #677 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:13 #678 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:13 #679 [Verbose] > │ ## (||>)                                                                     │
00:00:13 #680 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:13 #681 [Verbose] >
00:00:13 #682 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:13 #683 [Verbose] > inl (||>) (arg1, arg2) fn =
00:00:13 #684 [Verbose] >     arg2 |> fn arg1
00:00:13 #685 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-4223-2315-20b12bea0414/main.spi
00:00:13 #686 [Debug] executeAsync / exitCode: 0 / output.Length: 13301
00:00:13 #687 [Debug] main / executeCommand / exitCode: 0
00:00:13 #688 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 date_time.dib""
  WorkingDirectory = None
  CancellationToken = Some System.Threading.CancellationToken
  OnLine = None }
00:00:13 #689 [Verbose] >
00:00:13 #690 [Verbose] > ╭─[ 191.06ms - stdout ]────────────────────────────────────────────────────────╮
00:00:13 #691 [Verbose] > │ ()                                                                           │
00:00:13 #692 [Verbose] > │                                                                              │
00:00:13 #693 [Verbose] > │                                                                              │
00:00:13 #694 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:13 #695 [Verbose] >
00:00:13 #696 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:13 #697 [Verbose] > // // test
00:00:13 #698 [Verbose] >
00:00:13 #699 [Verbose] > (3i32, 2i32)
00:00:13 #700 [Verbose] > ||> fun a b => a - b
00:00:13 #701 [Verbose] > |> _assert_eq 1
00:00:13 #702 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-4242-4244-41cf2244dd14/main.spi
00:00:13 #703 [Verbose] >
00:00:13 #704 [Verbose] > ╭─[ 200.83ms - stdout ]────────────────────────────────────────────────────────╮
00:00:13 #705 [Verbose] > │ let rec method0 () : unit =                                                  │
00:00:13 #706 [Verbose] > │     let v0 : string = $"%A{1}"                                               │
00:00:13 #707 [Verbose] > │     System.Console.WriteLine v0                                              │
00:00:13 #708 [Verbose] > │     let v1 : string = $"__expect / actual: %A{1} / expected: %A{1}"          │
00:00:13 #709 [Verbose] > │     ()                                                                       │
00:00:13 #710 [Verbose] > │ method0()                                                                    │
00:00:13 #711 [Verbose] > │                                                                              │
00:00:13 #712 [Verbose] > │ 1                                                                            │
00:00:13 #713 [Verbose] > │                                                                              │
00:00:13 #714 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:13 #715 [Verbose] >
00:00:13 #716 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:13 #717 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:13 #718 [Verbose] > │ ## flip                                                                      │
00:00:13 #719 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:13 #720 [Verbose] >
00:00:13 #721 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:13 #722 [Verbose] > inl flip fn a b =
00:00:13 #723 [Verbose] >     fn b a
00:00:13 #724 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-4262-6266-6eddde63f22b/main.spi
00:00:13 #725 [Verbose] >
00:00:13 #726 [Verbose] > ╭─[ 191.58ms - stdout ]────────────────────────────────────────────────────────╮
00:00:13 #727 [Verbose] > │ ()                                                                           │
00:00:13 #728 [Verbose] > │                                                                              │
00:00:13 #729 [Verbose] > │                                                                              │
00:00:13 #730 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:13 #731 [Verbose] >
00:00:13 #732 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:13 #733 [Verbose] > // // test
00:00:13 #734 [Verbose] >
00:00:13 #735 [Verbose] > (1i32, 2i32)
00:00:13 #736 [Verbose] > ||> flip pair
00:00:13 #737 [Verbose] > |> _assert_eq (2, 1)
00:00:13 #738 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-4282-8209-8c30cc769f87/main.spi
00:00:13 #739 [Verbose] >
00:00:13 #740 [Verbose] > ╭─[ 223.69ms - stdout ]────────────────────────────────────────────────────────╮
00:00:13 #741 [Verbose] > │ let rec method0 () : unit =                                                  │
00:00:13 #742 [Verbose] > │     let v0 : string = $"%A{struct (2, 1)}"                                   │
00:00:13 #743 [Verbose] > │     System.Console.WriteLine v0                                              │
00:00:13 #744 [Verbose] > │     let v1 : string = $"__expect / actual: %A{struct (2, 1)} / expected:     │
00:00:13 #745 [Verbose] > │ %A{struct (2, 1)}"                                                           │
00:00:13 #746 [Verbose] > │     ()                                                                       │
00:00:13 #747 [Verbose] > │ method0()                                                                    │
00:00:13 #748 [Verbose] > │                                                                              │
00:00:13 #749 [Verbose] > │ struct (2, 1)                                                                │
00:00:13 #750 [Verbose] > │                                                                              │
00:00:13 #751 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:13 #752 [Verbose] >
00:00:13 #753 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:13 #754 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:13 #755 [Verbose] > │ ## join_body                                                                 │
00:00:13 #756 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:13 #757 [Verbose] >
00:00:13 #758 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:13 #759 [Verbose] > inl join_body body acc x =
00:00:13 #760 [Verbose] >     if var_is x |> not
00:00:13 #761 [Verbose] >     then body acc x
00:00:13 #762 [Verbose] >     else
00:00:13 #763 [Verbose] >         inl acc = dyn acc
00:00:13 #764 [Verbose] >         join body acc x
00:00:13 #765 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-4304-0441-01e16a22265d/main.spi
00:00:14 #766 [Verbose] >
00:00:14 #767 [Verbose] > ╭─[ 247.86ms - stdout ]────────────────────────────────────────────────────────╮
00:00:14 #768 [Verbose] > │ ()                                                                           │
00:00:14 #769 [Verbose] > │                                                                              │
00:00:14 #770 [Verbose] > │                                                                              │
00:00:14 #771 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:14 #772 [Verbose] >
00:00:14 #773 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:14 #774 [Verbose] > // // test
00:00:14 #775 [Verbose] >
00:00:14 #776 [Verbose] > inl rec fold_list f s = function
00:00:14 #777 [Verbose] >     | Cons (x, x') => fold_list f (f s x) x'
00:00:14 #778 [Verbose] >     | Nil => s
00:00:14 #779 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-4329-2919-29c8dbce7d4f/main.spi
00:00:14 #780 [Verbose] >
00:00:14 #781 [Verbose] > ╭─[ 191.16ms - stdout ]────────────────────────────────────────────────────────╮
00:00:14 #782 [Verbose] > │ ()                                                                           │
00:00:14 #783 [Verbose] > │                                                                              │
00:00:14 #784 [Verbose] > │                                                                              │
00:00:14 #785 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:14 #786 [Verbose] >
00:00:14 #787 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:14 #788 [Verbose] > // // test
00:00:14 #789 [Verbose] >
00:00:14 #790 [Verbose] > [[5i32; 4; join 3; 2; 1]]
00:00:14 #791 [Verbose] > |> fold_list (+) 0
00:00:14 #792 [Verbose] > |> _assert_eq 15
00:00:14 #793 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-4348-4857-4a4fc80fc7c3/main.spi
00:00:14 #794 [Verbose] >
00:00:14 #795 [Verbose] > ╭─[ 318.78ms - stdout ]────────────────────────────────────────────────────────╮
00:00:14 #796 [Verbose] > │ let rec method1 () : int32 =                                                 │
00:00:14 #797 [Verbose] > │     3                                                                        │
00:00:14 #798 [Verbose] > │ and method2 (v0 : bool) : bool =                                             │
00:00:14 #799 [Verbose] > │     v0                                                                       │
00:00:14 #800 [Verbose] > │ and method0 () : unit =                                                      │
00:00:14 #801 [Verbose] > │     let v0 : int32 = method1()                                               │
00:00:14 #802 [Verbose] > │     let v1 : int32 = 9 + v0                                                  │
00:00:14 #803 [Verbose] > │     let v2 : int32 = v1 + 2                                                  │
00:00:14 #804 [Verbose] > │     let v3 : int32 = v2 + 1                                                  │
00:00:14 #805 [Verbose] > │     let v4 : string = $"%A{v3}"                                              │
00:00:14 #806 [Verbose] > │     System.Console.WriteLine v4                                              │
00:00:14 #807 [Verbose] > │     let v5 : bool = v3 = 15                                                  │
00:00:14 #808 [Verbose] > │     let v7 : bool =                                                          │
00:00:14 #809 [Verbose] > │         if v5 then                                                           │
00:00:14 #810 [Verbose] > │             true                                                             │
00:00:14 #811 [Verbose] > │         else                                                                 │
00:00:14 #812 [Verbose] > │             method2(v5)                                                      │
00:00:14 #813 [Verbose] > │     let v8 : string = $"__expect / actual: %A{v3} / expected: %A{15}"        │
00:00:14 #814 [Verbose] > │     let v9 : bool = v7 = false                                               │
00:00:14 #815 [Verbose] > │     if v9 then                                                               │
00:00:14 #816 [Verbose] > │         failwith<unit> v8                                                    │
00:00:14 #817 [Verbose] > │ method0()                                                                    │
00:00:14 #818 [Verbose] > │                                                                              │
00:00:14 #819 [Verbose] > │ 15                                                                           │
00:00:14 #820 [Verbose] > │                                                                              │
00:00:14 #821 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:14 #822 [Verbose] >
00:00:14 #823 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:14 #824 [Verbose] > // // test
00:00:14 #825 [Verbose] >
00:00:14 #826 [Verbose] > [[5i32; 4; join 3; 2; 1]]
00:00:14 #827 [Verbose] > |> fold_list (join_body (+)) 0
00:00:14 #828 [Verbose] > |> _assert_eq 15
00:00:14 #829 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-4380-8040-80080b38b7c5/main.spi
00:00:14 #830 [Verbose] >
00:00:14 #831 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:14 #832 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:14 #833 [Verbose] > │ # console                                                                    │
00:00:14 #834 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:14 #835 [Verbose] >
00:00:14 #836 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:14 #837 [Verbose] > // // test
00:00:14 #838 [Verbose] >
00:00:14 #839 [Verbose] > open testing
00:00:15 #840 [Verbose] >
00:00:15 #841 [Verbose] > ╭─[ 391.81ms - stdout ]────────────────────────────────────────────────────────╮
00:00:15 #842 [Verbose] > │ let rec method1 () : int32 =                                                 │
00:00:15 #843 [Verbose] > │     3                                                                        │
00:00:15 #844 [Verbose] > │ and method2 (v0 : int32, v1 : int32) : int32 =                               │
00:00:15 #845 [Verbose] > │     let v2 : int32 = v1 + v0                                                 │
00:00:15 #846 [Verbose] > │     v2                                                                       │
00:00:15 #847 [Verbose] > │ and method3 (v0 : bool) : bool =                                             │
00:00:15 #848 [Verbose] > │     v0                                                                       │
00:00:15 #849 [Verbose] > │ and method0 () : unit =                                                      │
00:00:15 #850 [Verbose] > │     let v0 : int32 = method1()                                               │
00:00:15 #851 [Verbose] > │     let v1 : int32 = 9                                                       │
00:00:15 #852 [Verbose] > │     let v2 : int32 = method2(v0, v1)                                         │
00:00:15 #853 [Verbose] > │     let v3 : int32 = v2 + 2                                                  │
00:00:15 #854 [Verbose] > │     let v4 : int32 = v3 + 1                                                  │
00:00:15 #855 [Verbose] > │     let v5 : string = $"%A{v4}"                                              │
00:00:15 #856 [Verbose] > │     System.Console.WriteLine v5                                              │
00:00:15 #857 [Verbose] > │     let v6 : bool = v4 = 15                                                  │
00:00:15 #858 [Verbose] > │     let v8 : bool =                                                          │
00:00:15 #859 [Verbose] > │         if v6 then                                                           │
00:00:15 #860 [Verbose] > │             true                                                             │
00:00:15 #861 [Verbose] > │         else                                                                 │
00:00:15 #862 [Verbose] > │             method3(v6)                                                      │
00:00:15 #863 [Verbose] > │     let v9 : string = $"__expect / actual: %A{v4} / expected: %A{15}"        │
00:00:15 #864 [Verbose] > │     let v10 : bool = v8 = false                                              │
00:00:15 #865 [Verbose] > │     if v10 then                                                              │
00:00:15 #866 [Verbose] > │         failwith<unit> v9                                                    │
00:00:15 #867 [Verbose] > │ method0()                                                                    │
00:00:15 #868 [Verbose] > │                                                                              │
00:00:15 #869 [Verbose] > │ 15                                                                           │
00:00:15 #870 [Verbose] > │                                                                              │
00:00:15 #871 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:15 #872 [Verbose] >
00:00:15 #873 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:15 #874 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:15 #875 [Verbose] > │ ## join_body_unit                                                            │
00:00:15 #876 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:15 #877 [Verbose] >
00:00:15 #878 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:15 #879 [Verbose] > inl join_body_unit body d x =
00:00:15 #880 [Verbose] >     if var_is d |> not
00:00:15 #881 [Verbose] >     then body x
00:00:15 #882 [Verbose] >     else
00:00:15 #883 [Verbose] >         inl x = dyn x
00:00:15 #884 [Verbose] >         join body x
00:00:15 #885 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-4420-2028-2ac30ccca2a4/main.spi
00:00:15 #886 [Verbose] >
00:00:15 #887 [Verbose] > ╭─[ 254.01ms - stdout ]────────────────────────────────────────────────────────╮
00:00:15 #888 [Verbose] > │ ()                                                                           │
00:00:15 #889 [Verbose] > │                                                                              │
00:00:15 #890 [Verbose] > │                                                                              │
00:00:15 #891 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:15 #892 [Verbose] >
00:00:15 #893 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:15 #894 [Verbose] > // // test
00:00:15 #895 [Verbose] >
00:00:15 #896 [Verbose] > [[5i32; 4; join 3; 2; 1]]
00:00:15 #897 [Verbose] > |> fold_list (fun acc n => join_body_unit ((+) acc) n n) 0
00:00:15 #898 [Verbose] > |> _assert_eq 15
00:00:15 #899 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-4445-4553-4d6130a0f4d0/main.spi
00:00:15 #900 [Verbose] >
00:00:15 #901 [Verbose] > ╭─[ 229.04ms - stdout ]────────────────────────────────────────────────────────╮
00:00:15 #902 [Verbose] > │ let rec method1 () : int32 =                                                 │
00:00:15 #903 [Verbose] > │     3                                                                        │
00:00:15 #904 [Verbose] > │ and method2 (v0 : int32) : int32 =                                           │
00:00:15 #905 [Verbose] > │     let v1 : int32 = 9 + v0                                                  │
00:00:15 #906 [Verbose] > │     v1                                                                       │
00:00:15 #907 [Verbose] > │ and method3 (v0 : bool) : bool =                                             │
00:00:15 #908 [Verbose] > │     v0                                                                       │
00:00:15 #909 [Verbose] > │ and method0 () : unit =                                                      │
00:00:15 #910 [Verbose] > │     let v0 : int32 = method1()                                               │
00:00:15 #911 [Verbose] > │     let v1 : int32 = method2(v0)                                             │
00:00:15 #912 [Verbose] > │     let v2 : int32 = v1 + 2                                                  │
00:00:15 #913 [Verbose] > │     let v3 : int32 = v2 + 1                                                  │
00:00:15 #914 [Verbose] > │     let v4 : string = $"%A{v3}"                                              │
00:00:15 #915 [Verbose] > │     System.Console.WriteLine v4                                              │
00:00:15 #916 [Verbose] > │     let v5 : bool = v3 = 15                                                  │
00:00:15 #917 [Verbose] > │     let v7 : bool =                                                          │
00:00:15 #918 [Verbose] > │         if v5 then                                                           │
00:00:15 #919 [Verbose] > │             true                                                             │
00:00:15 #920 [Verbose] > │         else                                                                 │
00:00:15 #921 [Verbose] > │             method3(v5)                                                      │
00:00:15 #922 [Verbose] > │     let v8 : string = $"__expect / actual: %A{v3} / expected: %A{15}"        │
00:00:15 #923 [Verbose] > │     let v9 : bool = v7 = false                                               │
00:00:15 #924 [Verbose] > │     if v9 then                                                               │
00:00:15 #925 [Verbose] > │         failwith<unit> v8                                                    │
00:00:15 #926 [Verbose] > │ method0()                                                                    │
00:00:15 #927 [Verbose] > │                                                                              │
00:00:15 #928 [Verbose] > │ 15                                                                           │
00:00:15 #929 [Verbose] > │                                                                              │
00:00:15 #930 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:15 #931 [Verbose] >
00:00:15 #932 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:15 #933 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:15 #934 [Verbose] > │ ## run_target                                                                │
00:00:15 #935 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:15 #936 [Verbose] >
00:00:15 #937 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:15 #938 [Verbose] > union target_runtime =
00:00:15 #939 [Verbose] >     | Native
00:00:15 #940 [Verbose] >     | Wasm
00:00:15 #941 [Verbose] >     | Fable
00:00:15 #942 [Verbose] >
00:00:15 #943 [Verbose] > union target =
00:00:15 #944 [Verbose] >     | Rust : target_runtime
00:00:15 #945 [Verbose] >     | Fsharp : target_runtime
00:00:15 #946 [Verbose] >
00:00:15 #947 [Verbose] > inl run_target forall t. (fn : target -> (() -> t)) : t =
00:00:15 #948 [Verbose] >     $"let mutable result = None"
00:00:15 #949 [Verbose] >     $"#if FABLE_COMPILER_RUST && \!WASM"
00:00:15 #950 [Verbose] >     fn (Rust Native) () |> fun x => $"!x"
00:00:15 #951 [Verbose] >     $"#endif"
00:00:15 #952 [Verbose] >     $"#if FABLE_COMPILER_RUST && WASM"
00:00:15 #953 [Verbose] >     fn (Rust Wasm) () |> fun x => $"!x"
00:00:15 #954 [Verbose] >     $"#endif"
00:00:15 #955 [Verbose] >     $"#if \!FABLE_COMPILER && \!FABLE_COMPILER_RUST && \!WASM"
00:00:15 #956 [Verbose] >     fn (Fsharp Native) () |> fun x => $"!x"
00:00:15 #957 [Verbose] >     $"#endif"
00:00:15 #958 [Verbose] >     $"#if FABLE_COMPILER && \!FABLE_COMPILER_RUST && \!WASM"
00:00:15 #959 [Verbose] >     fn (Fsharp Fable) () |> fun x => $"!x"
00:00:15 #960 [Verbose] >     $"#endif"
00:00:15 #961 [Verbose] >     $"#if \!FABLE_COMPILER_RUST && WASM"
00:00:15 #962 [Verbose] >     fn (Fsharp Wasm) () |> fun x => $"!x"
00:00:15 #963 [Verbose] >     $"#endif"
00:00:15 #964 [Verbose] >     $"|> fun x -> result <- Some x"
00:00:15 #965 [Verbose] >     $"result |> Option.get"
00:00:15 #966 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-4468-6868-6427db9fc979/main.spi
00:00:15 #967 [Verbose] >
00:00:15 #968 [Verbose] > ╭─[ 216.19ms - stdout ]────────────────────────────────────────────────────────╮
00:00:15 #969 [Verbose] > │ ()                                                                           │
00:00:15 #970 [Verbose] > │                                                                              │
00:00:15 #971 [Verbose] > │                                                                              │
00:00:15 #972 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:15 #973 [Verbose] >
00:00:15 #974 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:15 #975 [Verbose] > // // test
00:00:15 #976 [Verbose] >
00:00:15 #977 [Verbose] > run_target function
00:00:15 #978 [Verbose] >     | Fsharp (Native) => fun () => $"1uy"
00:00:15 #979 [Verbose] >     | _ => fun () => $"2uy"
00:00:15 #980 [Verbose] > |> _assert_eq 1u8
00:00:15 #981 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-4490-9044-9709ff8e19ce/main.spi
00:00:15 #982 [Verbose] >
00:00:15 #983 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:15 #984 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:15 #985 [Verbose] > │ # date_time                                                                  │
00:00:15 #986 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:15 #987 [Verbose] >
00:00:15 #988 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:15 #989 [Verbose] > open rust_operators
00:00:15 #990 [Verbose] > open sm'_operators
00:00:16 #991 [Verbose] >
00:00:16 #992 [Verbose] > ╭─[ 262.88ms - stdout ]────────────────────────────────────────────────────────╮
00:00:16 #993 [Verbose] > │ let rec method1 (v0 : bool) : bool =                                         │
00:00:16 #994 [Verbose] > │     v0                                                                       │
00:00:16 #995 [Verbose] > │ and method0 () : unit =                                                      │
00:00:16 #996 [Verbose] > │     let mutable result = None                                                │
00:00:16 #997 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM                                         │
00:00:16 #998 [Verbose] > │     let v0 : uint8 = 2uy                                                     │
00:00:16 #999 [Verbose] > │     v0                                                                       │
00:00:16 #1000 [Verbose] > │     #endif                                                                   │
00:00:16 #1001 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │
00:00:16 #1002 [Verbose] > │     let v1 : uint8 = 2uy                                                     │
00:00:16 #1003 [Verbose] > │     v1                                                                       │
00:00:16 #1004 [Verbose] > │     #endif                                                                   │
00:00:16 #1005 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │
00:00:16 #1006 [Verbose] > │     let v2 : uint8 = 1uy                                                     │
00:00:16 #1007 [Verbose] > │     v2                                                                       │
00:00:16 #1008 [Verbose] > │     #endif                                                                   │
00:00:16 #1009 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │
00:00:16 #1010 [Verbose] > │     let v3 : uint8 = 2uy                                                     │
00:00:16 #1011 [Verbose] > │     v3                                                                       │
00:00:16 #1012 [Verbose] > │     #endif                                                                   │
00:00:16 #1013 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │
00:00:16 #1014 [Verbose] > │     let v4 : uint8 = 2uy                                                     │
00:00:16 #1015 [Verbose] > │     v4                                                                       │
00:00:16 #1016 [Verbose] > │     #endif                                                                   │
00:00:16 #1017 [Verbose] > │     |> fun x -> result <- Some x                                             │
00:00:16 #1018 [Verbose] > │     let v5 : uint8 = result |> Option.get                                    │
00:00:16 #1019 [Verbose] > │     let v6 : string = $"%A{v5}"                                              │
00:00:16 #1020 [Verbose] > │     System.Console.WriteLine v6                                              │
00:00:16 #1021 [Verbose] > │     let v7 : bool = v5 = 1uy                                                 │
00:00:16 #1022 [Verbose] > │     let v9 : bool =                                                          │
00:00:16 #1023 [Verbose] > │         if v7 then                                                           │
00:00:16 #1024 [Verbose] > │             true                                                             │
00:00:16 #1025 [Verbose] > │         else                                                                 │
00:00:16 #1026 [Verbose] > │             method1(v7)                                                      │
00:00:16 #1027 [Verbose] > │     let v10 : string = $"__expect / actual: %A{v5} / expected: %A{1uy}"      │
00:00:16 #1028 [Verbose] > │     let v11 : bool = v9 = false                                              │
00:00:16 #1029 [Verbose] > │     if v11 then                                                              │
00:00:16 #1030 [Verbose] > │         failwith<unit> v10                                                   │
00:00:16 #1031 [Verbose] > │ method0()                                                                    │
00:00:16 #1032 [Verbose] > │                                                                              │
00:00:16 #1033 [Verbose] > │ 1uy                                                                          │
00:00:16 #1034 [Verbose] > │                                                                              │
00:00:16 #1035 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:16 #1036 [Verbose] >
00:00:16 #1037 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:16 #1038 [Verbose] > // // test
00:00:16 #1039 [Verbose] > // // rust=
00:00:16 #1040 [Verbose] >
00:00:16 #1041 [Verbose] > run_target function
00:00:16 #1042 [Verbose] >     | Rust (Native) => fun () => $"1uy"
00:00:16 #1043 [Verbose] >     | _ => fun () => $"2uy"
00:00:16 #1044 [Verbose] > |> (=) 1u8
00:00:16 #1045 [Verbose] > |> _assert_eq true
00:00:16 #1046 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-4516-1693-19856620fa75/main.spi
00:00:18 #1047 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-4660-6086-6177a0e41e51/main.spi
00:00:19 #1048 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-4752-5268-5b228cd0ddc1/main.spi
00:00:19 #1049 [Verbose] >
00:00:19 #1050 [Verbose] > ╭─[ 4.70s - stdout ]───────────────────────────────────────────────────────────╮
00:00:19 #1051 [Verbose] > │ ()                                                                           │
00:00:19 #1052 [Verbose] > │                                                                              │
00:00:19 #1053 [Verbose] > │                                                                              │
00:00:19 #1054 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:19 #1055 [Verbose] >
00:00:19 #1056 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:19 #1057 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:19 #1058 [Verbose] > │ ## write_line                                                                │
00:00:19 #1059 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:19 #1060 [Verbose] >
00:00:19 #1061 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:19 #1062 [Verbose] > inl write_line obj : () =
00:00:19 #1063 [Verbose] >     $"System.Console.WriteLine !obj"
00:00:19 #1064 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-4879-7928-78b44fa34a68/main.spi
00:00:19 #1065 [Verbose] >
00:00:19 #1066 [Verbose] > ╭─[ 267.17ms - stdout ]────────────────────────────────────────────────────────╮
00:00:19 #1067 [Verbose] > │ ()                                                                           │
00:00:19 #1068 [Verbose] > │                                                                              │
00:00:19 #1069 [Verbose] > │                                                                              │
00:00:19 #1070 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:19 #1071 [Verbose] >
00:00:19 #1072 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:19 #1073 [Verbose] > inl write_line_ ~obj : () =
00:00:19 #1074 [Verbose] >     $"System.Console.WriteLine !obj"
00:00:20 #1075 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-4905-0518-0726bc420029/main.spi
00:00:20 #1076 [Verbose] >
00:00:20 #1077 [Verbose] > ╭─[ 231.10ms - stdout ]────────────────────────────────────────────────────────╮
00:00:20 #1078 [Verbose] > │ ()                                                                           │
00:00:20 #1079 [Verbose] > │                                                                              │
00:00:20 #1080 [Verbose] > │                                                                              │
00:00:20 #1081 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:20 #1082 [Verbose] >
00:00:20 #1083 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:20 #1084 [Verbose] > nominal console_color = $"System.ConsoleColor"
00:00:20 #1085 [Verbose] >
00:00:20 #1086 [Verbose] > inl reset_color () : () =
00:00:20 #1087 [Verbose] >     run_target function
00:00:20 #1088 [Verbose] >         | Fsharp => fun () => $"System.Console.ResetColor ()"
00:00:20 #1089 [Verbose] >         | _ => fun () => ()
00:00:20 #1090 [Verbose] >
00:00:20 #1091 [Verbose] > inl set_foreground_color (color : console_color) : () =
00:00:20 #1092 [Verbose] >     run_target function
00:00:20 #1093 [Verbose] >         | Fsharp => fun () => $"System.Console.ForegroundColor <- !color"
00:00:20 #1094 [Verbose] >         | _ => fun () => ()
00:00:20 #1095 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-4928-2887-288c2f135104/main.spi
00:00:20 #1096 [Verbose] >
00:00:20 #1097 [Verbose] > ╭─[ 4.38s - stdout ]───────────────────────────────────────────────────────────╮
00:00:20 #1098 [Verbose] > │ ()                                                                           │
00:00:20 #1099 [Verbose] > │                                                                              │
00:00:20 #1100 [Verbose] > │                                                                              │
00:00:20 #1101 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:20 #1102 [Verbose] >
00:00:20 #1103 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:20 #1104 [Verbose] > // // test
00:00:20 #1105 [Verbose] >
00:00:20 #1106 [Verbose] > open testing
00:00:20 #1107 [Verbose] >
00:00:20 #1108 [Verbose] > ╭─[ 215.25ms - stdout ]────────────────────────────────────────────────────────╮
00:00:20 #1109 [Verbose] > │ ()                                                                           │
00:00:20 #1110 [Verbose] > │                                                                              │
00:00:20 #1111 [Verbose] > │                                                                              │
00:00:20 #1112 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:20 #1113 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-4949-4907-4edccd2e5a02/main.spi
00:00:20 #1114 [Verbose] >
00:00:20 #1115 [Verbose] > ╭─[ 185.85ms - stdout ]────────────────────────────────────────────────────────╮
00:00:20 #1116 [Verbose] > │ ()                                                                           │
00:00:20 #1117 [Verbose] > │                                                                              │
00:00:20 #1118 [Verbose] > │                                                                              │
00:00:20 #1119 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:20 #1120 [Verbose] >
00:00:20 #1121 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:20 #1122 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:20 #1123 [Verbose] > │ ## types                                                                     │
00:00:20 #1124 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:20 #1125 [Verbose] >
00:00:20 #1126 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:20 #1127 [Verbose] > inl types () =
00:00:20 #1128 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"chrono::DateTime<$0>\")>]]
00:00:20 #1129 [Verbose] > type chrono_DateTime<'T> = class end"
00:00:20 #1130 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"chrono::Local\")>]] type
00:00:20 #1131 [Verbose] > chrono_Local = class end"
00:00:20 #1132 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"chrono::NaiveDateTime\")>]]
00:00:20 #1133 [Verbose] > type chrono_NaiveDateTime = class end"
00:00:20 #1134 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"chrono::Utc\")>]] type
00:00:20 #1135 [Verbose] > chrono_Utc = class end"
00:00:20 #1136 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::time::Duration\")>]]
00:00:20 #1137 [Verbose] > type std_time_Duration = class end"
00:00:20 #1138 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-4967-6782-601143227387/main.spi
00:00:20 #1139 [Verbose] >
00:00:20 #1140 [Verbose] > ╭─[ 208.46ms - stdout ]────────────────────────────────────────────────────────╮
00:00:20 #1141 [Verbose] > │ ()                                                                           │
00:00:20 #1142 [Verbose] > │                                                                              │
00:00:20 #1143 [Verbose] > │                                                                              │
00:00:20 #1144 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:20 #1145 [Verbose] >
00:00:20 #1146 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:20 #1147 [Verbose] > nominal ticks = i64
00:00:20 #1148 [Verbose] > nominal duration = $"std_time_Duration"
00:00:20 #1149 [Verbose] > nominal date_time = $"System.DateTime"
00:00:20 #1150 [Verbose] > nominal date_time' t = $"chrono_DateTime<`t>"
00:00:20 #1151 [Verbose] > nominal local = $"chrono_Local"
00:00:20 #1152 [Verbose] > nominal naive_date_time = $"chrono_NaiveDateTime"
00:00:20 #1153 [Verbose] > nominal utc = $"chrono_Utc"
00:00:20 #1154 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-4988-8850-893086f7cf9e/main.spi
00:00:21 #1155 [Verbose] >
00:00:21 #1156 [Verbose] > ╭─[ 281.13ms - stdout ]────────────────────────────────────────────────────────╮
00:00:21 #1157 [Verbose] > │ ()                                                                           │
00:00:21 #1158 [Verbose] > │                                                                              │
00:00:21 #1159 [Verbose] > │                                                                              │
00:00:21 #1160 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:21 #1161 [Verbose] >
00:00:21 #1162 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:21 #1163 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:21 #1164 [Verbose] > │ ## naive_utc                                                                 │
00:00:21 #1165 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:21 #1166 [Verbose] >
00:00:21 #1167 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:21 #1168 [Verbose] > inl naive_utc (date_time : date_time' utc) : naive_date_time =
00:00:21 #1169 [Verbose] >     inl date_time = join date_time
00:00:21 #1170 [Verbose] >     !\($'"!date_time.naive_utc()"')
00:00:21 #1171 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-5016-1658-16b51974bcb7/main.spi
00:00:21 #1172 [Verbose] >
00:00:21 #1173 [Verbose] > ╭─[ 157.09ms - stdout ]────────────────────────────────────────────────────────╮
00:00:21 #1174 [Verbose] > │ ()                                                                           │
00:00:21 #1175 [Verbose] > │                                                                              │
00:00:21 #1176 [Verbose] > │                                                                              │
00:00:21 #1177 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:21 #1178 [Verbose] >
00:00:21 #1179 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:21 #1180 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:21 #1181 [Verbose] > │ ## to_local                                                                  │
00:00:21 #1182 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:21 #1183 [Verbose] >
00:00:21 #1184 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:21 #1185 [Verbose] > inl to_local (date_time : date_time' utc) : date_time' local =
00:00:21 #1186 [Verbose] >     inl naive_date_time = date_time |> naive_utc
00:00:21 #1187 [Verbose] >     !\($'"chrono::offset::TimeZone::from_utc_datetime(&chrono::Local,
00:00:21 #1188 [Verbose] > &!naive_date_time)"')
00:00:21 #1189 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-5032-3233-3bfe5675d0f4/main.spi
00:00:21 #1190 [Verbose] > [NbConvertApp] Converting notebook console.dib.ipynb to html
00:00:21 #1191 [Verbose] > /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:00:21 #1192 [Verbose] >   validate(nb)
00:00:21 #1193 [Verbose] >
00:00:21 #1194 [Verbose] > ╭─[ 180.53ms - stdout ]────────────────────────────────────────────────────────╮
00:00:21 #1195 [Verbose] > │ ()                                                                           │
00:00:21 #1196 [Verbose] > │                                                                              │
00:00:21 #1197 [Verbose] > │                                                                              │
00:00:21 #1198 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:21 #1199 [Verbose] >
00:00:21 #1200 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:21 #1201 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:21 #1202 [Verbose] > │ ## from_timestamp'                                                           │
00:00:21 #1203 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:21 #1204 [Verbose] >
00:00:21 #1205 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:21 #1206 [Verbose] > inl from_timestamp' forall t {number; int}. (timestamp : t) : option (date_time'
00:00:21 #1207 [Verbose] > utc) =
00:00:21 #1208 [Verbose] >     inl timestamp = join timestamp
00:00:21 #1209 [Verbose] >     inl result : optionm'.option' (date_time' utc) =
00:00:21 #1210 [Verbose] >         !\($'"chrono::DateTime::from_timestamp_micros(!timestamp / 1000i64)"')
00:00:21 #1211 [Verbose] >     result |> optionm'.unbox
00:00:21 #1212 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-5050-5061-5cf20c170baf/main.spi
00:00:21 #1213 [Verbose] >
00:00:21 #1214 [Verbose] > ╭─[ 194.88ms - stdout ]────────────────────────────────────────────────────────╮
00:00:21 #1215 [Verbose] > │ ()                                                                           │
00:00:21 #1216 [Verbose] > │                                                                              │
00:00:21 #1217 [Verbose] > │                                                                              │
00:00:21 #1218 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:21 #1219 [Verbose] >
00:00:21 #1220 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:21 #1221 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:21 #1222 [Verbose] > │ ## format'                                                                   │
00:00:21 #1223 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:21 #1224 [Verbose] >
00:00:21 #1225 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:21 #1226 [Verbose] > inl format' (format : string) (date_time : date_time' utc) : sm'.std_string =
00:00:21 #1227 [Verbose] >     inl format = #format
00:00:21 #1228 [Verbose] >     inl date_time = join date_time
00:00:21 #1229 [Verbose] >     !\($'"!date_time.format(!format).to_string()"')
00:00:21 #1230 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-5070-7002-7d9a6d2a1a40/main.spi
00:00:21 #1231 [Verbose] >
00:00:21 #1232 [Verbose] > ╭─[ 178.43ms - stdout ]────────────────────────────────────────────────────────╮
00:00:21 #1233 [Verbose] > │ ()                                                                           │
00:00:21 #1234 [Verbose] > │                                                                              │
00:00:21 #1235 [Verbose] > │                                                                              │
00:00:21 #1236 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:21 #1237 [Verbose] >
00:00:21 #1238 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:21 #1239 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:21 #1240 [Verbose] > │ ## format''                                                                  │
00:00:21 #1241 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:21 #1242 [Verbose] >
00:00:21 #1243 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:21 #1244 [Verbose] > inl format'' (format : string) (date_time : date_time' _) : sm'.std_string =
00:00:21 #1245 [Verbose] >     inl format = #format
00:00:21 #1246 [Verbose] >     inl date_time = join date_time
00:00:21 #1247 [Verbose] >     !\($'"!date_time.format(!format).to_string()"')
00:00:21 #1248 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-5088-8800-84ae8ba46593/main.spi
00:00:21 #1249 [Verbose] >
00:00:21 #1250 [Verbose] > ╭─[ 156.12ms - stdout ]────────────────────────────────────────────────────────╮
00:00:21 #1251 [Verbose] > │ ()                                                                           │
00:00:21 #1252 [Verbose] > │                                                                              │
00:00:21 #1253 [Verbose] > │                                                                              │
00:00:21 #1254 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:21 #1255 [Verbose] >
00:00:21 #1256 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:21 #1257 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:21 #1258 [Verbose] > │ ## format_timestamp                                                          │
00:00:21 #1259 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:21 #1260 [Verbose] >
00:00:21 #1261 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:21 #1262 [Verbose] > inl format_timestamp (timestamp : sm'.std_string) =
00:00:21 #1263 [Verbose] >     inl timestamp = join timestamp
00:00:21 #1264 [Verbose] >     timestamp
00:00:21 #1265 [Verbose] >     |> fun x => !\($'"!x.parse().unwrap()"') : i64
00:00:21 #1266 [Verbose] >     |> from_timestamp'
00:00:21 #1267 [Verbose] >     |> optionm.map fun x =>
00:00:21 #1268 [Verbose] >         x
00:00:21 #1269 [Verbose] >         |> to_local
00:00:21 #1270 [Verbose] >         |> format'' "%Y-%m-%d %H:%M:%S"
00:00:21 #1271 [Verbose] >         |> sm'.from_std_string
00:00:21 #1272 [Verbose] >     |> resultm.from_option
00:00:21 #1273 [Verbose] > /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:00:21 #1274 [Verbose] >   return _pygments_highlight(
00:00:21 #1275 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-5103-0373-08e42ed0fd11/main.spi
00:00:22 #1276 [Verbose] > [NbConvertApp] Writing 276929 bytes to console.dib.html
00:00:22 #1277 [Verbose] >
00:00:22 #1278 [Verbose] > ╭─[ 160.42ms - stdout ]────────────────────────────────────────────────────────╮
00:00:22 #1279 [Verbose] > │ ()                                                                           │
00:00:22 #1280 [Verbose] > │                                                                              │
00:00:22 #1281 [Verbose] > │                                                                              │
00:00:22 #1282 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:22 #1283 [Verbose] >
00:00:22 #1284 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:22 #1285 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:22 #1286 [Verbose] > │ ## duration_from_millis                                                      │
00:00:22 #1287 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:22 #1288 [Verbose] >
00:00:22 #1289 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:22 #1290 [Verbose] > inl duration_from_millis (ms : u64) : duration =
00:00:22 #1291 [Verbose] >     inl ms = join ms
00:00:22 #1292 [Verbose] >     !\($'"std::time::Duration::from_millis(!ms)"')
00:00:22 #1293 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-5120-2008-217dfeebf3da/main.spi
00:00:22 #1294 [Verbose] >
00:00:22 #1295 [Verbose] > ╭─[ 148.16ms - stdout ]────────────────────────────────────────────────────────╮
00:00:22 #1296 [Verbose] > │ ()                                                                           │
00:00:22 #1297 [Verbose] > │                                                                              │
00:00:22 #1298 [Verbose] > │                                                                              │
00:00:22 #1299 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:22 #1300 [Verbose] >
00:00:22 #1301 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:22 #1302 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:22 #1303 [Verbose] > │ ## get_environment_variable                                                  │
00:00:22 #1304 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:22 #1305 [Verbose] >
00:00:22 #1306 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:22 #1307 [Verbose] > inl get_environment_variable (var : string) : string =
00:00:22 #1308 [Verbose] >     $"System.Environment.GetEnvironmentVariable !var"
00:00:22 #1309 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-5135-3519-318e55eb2cf0/main.spi
00:00:22 #1310 [Verbose] >
00:00:22 #1311 [Verbose] > ╭─[ 181.72ms - stdout ]────────────────────────────────────────────────────────╮
00:00:22 #1312 [Verbose] > │ ()                                                                           │
00:00:22 #1313 [Verbose] > │                                                                              │
00:00:22 #1314 [Verbose] > │                                                                              │
00:00:22 #1315 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:22 #1316 [Verbose] >
00:00:22 #1317 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:22 #1318 [Verbose] > // // test
00:00:22 #1319 [Verbose] >
00:00:22 #1320 [Verbose] > inl test_guid () =
00:00:22 #1321 [Verbose] >     guid.new_guid "FEDCBA98-7654-3210-FEDC-BA9876543210"
00:00:22 #1322 [Debug] executeAsync / exitCode: 0 / output.Length: 4510
00:00:22 #1323 [Debug] main / executeCommand / exitCode: 0
00:00:22 #1324 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 math.dib""
  WorkingDirectory = None
  CancellationToken = Some System.Threading.CancellationToken
  OnLine = None }
00:00:22 #1325 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-5153-5349-531ab7080439/main.spi
00:00:22 #1326 [Verbose] >
00:00:22 #1327 [Verbose] > ╭─[ 191.63ms - stdout ]────────────────────────────────────────────────────────╮
00:00:22 #1328 [Verbose] > │ ()                                                                           │
00:00:22 #1329 [Verbose] > │                                                                              │
00:00:22 #1330 [Verbose] > │                                                                              │
00:00:22 #1331 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:22 #1332 [Verbose] >
00:00:22 #1333 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:22 #1334 [Verbose] > type ticks_guid = guid.guid
00:00:22 #1335 [Verbose] > type date_time_guid = guid.guid
00:00:22 #1336 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-5172-7274-71800db2df56/main.spi
00:00:22 #1337 [Verbose] >
00:00:22 #1338 [Verbose] > ╭─[ 161.07ms - stdout ]────────────────────────────────────────────────────────╮
00:00:22 #1339 [Verbose] > │ ()                                                                           │
00:00:22 #1340 [Verbose] > │                                                                              │
00:00:22 #1341 [Verbose] > │                                                                              │
00:00:22 #1342 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:22 #1343 [Verbose] >
00:00:22 #1344 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:22 #1345 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:22 #1346 [Verbose] > │ ## date_time_guid_from_date_time                                             │
00:00:22 #1347 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:22 #1348 [Verbose] >
00:00:22 #1349 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:22 #1350 [Verbose] > inl date_time_guid_from_date_time (guid : guid.guid) (date_time : date_time) =
00:00:22 #1351 [Verbose] >     inl guid = guid |> sm'.obj_to_string
00:00:22 #1352 [Verbose] >     inl prefix = $'!date_time.ToString "yyyyMMdd-HHmm-ssff-ffff-f"' : string
00:00:22 #1353 [Verbose] >     $'`date_time_guid $"{!prefix}{!guid.[[!prefix.Length..]]}"' : date_time_guid
00:00:22 #1354 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-5188-8883-8aec01b58742/main.spi
00:00:22 #1355 [Verbose] >
00:00:22 #1356 [Verbose] > ╭─[ 195.76ms - stdout ]────────────────────────────────────────────────────────╮
00:00:22 #1357 [Verbose] > │ ()                                                                           │
00:00:22 #1358 [Verbose] > │                                                                              │
00:00:22 #1359 [Verbose] > │                                                                              │
00:00:22 #1360 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:22 #1361 [Verbose] >
00:00:22 #1362 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:22 #1363 [Verbose] > // // test
00:00:22 #1364 [Verbose] >
00:00:22 #1365 [Verbose] > date_time_guid_from_date_time (test_guid ()) $'System.DateTime.MinValue'
00:00:22 #1366 [Verbose] > |> sm'.obj_to_string
00:00:22 #1367 [Verbose] > |> _assert_eq' "00010101-0000-0000-0000-0a9876543210"
00:00:23 #1368 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-5208-0849-0825657d993e/main.spi
00:00:23 #1369 [Verbose] >
00:00:23 #1370 [Verbose] > ╭─[ 1.01s - stdout ]───────────────────────────────────────────────────────────╮
00:00:23 #1371 [Verbose] > │ let rec method1 (v0 : bool) : bool =                                         │
00:00:23 #1372 [Verbose] > │     v0                                                                       │
00:00:23 #1373 [Verbose] > │ and method0 () : unit =                                                      │
00:00:23 #1374 [Verbose] > │     let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210"                 │
00:00:23 #1375 [Verbose] > │     let v1 : System.Guid = System.Guid v0                                    │
00:00:23 #1376 [Verbose] > │     let v2 : System.DateTime = System.DateTime.MinValue                      │
00:00:23 #1377 [Verbose] > │     let v3 : string = v1.ToString ()                                         │
00:00:23 #1378 [Verbose] > │     let v4 : string = v2.ToString "yyyyMMdd-HHmm-ssff-ffff-f"                │
00:00:23 #1379 [Verbose] > │     let v5 : System.Guid = System.Guid $"{v4}{v3.[v4.Length..]}"             │
00:00:23 #1380 [Verbose] > │     let v6 : string = v5.ToString ()                                         │
00:00:23 #1381 [Verbose] > │     let v7 : string = $"%A{v6}"                                              │
00:00:23 #1382 [Verbose] > │     System.Console.WriteLine v7                                              │
00:00:23 #1383 [Verbose] > │     let v8 : string = "00010101-0000-0000-0000-0a9876543210"                 │
00:00:23 #1384 [Verbose] > │     let v9 : bool = v6 = v8                                                  │
00:00:23 #1385 [Verbose] > │     let v11 : bool =                                                         │
00:00:23 #1386 [Verbose] > │         if v9 then                                                           │
00:00:23 #1387 [Verbose] > │             true                                                             │
00:00:23 #1388 [Verbose] > │         else                                                                 │
00:00:23 #1389 [Verbose] > │             method1(v9)                                                      │
00:00:23 #1390 [Verbose] > │     let v12 : string = $"__expect / actual: %A{v6} / expected: %A{v8}"       │
00:00:23 #1391 [Verbose] > │     let v13 : bool = v11 = false                                             │
00:00:23 #1392 [Verbose] > │     if v13 then                                                              │
00:00:23 #1393 [Verbose] > │         failwith<unit> v12                                                   │
00:00:23 #1394 [Verbose] > │ method0()                                                                    │
00:00:23 #1395 [Verbose] > │                                                                              │
00:00:23 #1396 [Verbose] > │ "00010101-0000-0000-0000-0a9876543210"                                       │
00:00:23 #1397 [Verbose] > │                                                                              │
00:00:23 #1398 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:23 #1399 [Verbose] >
00:00:23 #1400 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:23 #1401 [Verbose] > // // test
00:00:23 #1402 [Verbose] >
00:00:23 #1403 [Verbose] > date_time_guid_from_date_time (test_guid ()) $'System.DateTime.MaxValue'
00:00:23 #1404 [Verbose] > |> sm'.obj_to_string
00:00:23 #1405 [Verbose] > |> _assert_eq $'$"99991231-2359-5999-9999-9{(!test_guid() |>
00:00:23 #1406 [Verbose] > string).[[^10..]]}"'
00:00:24 #1407 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-5309-0939-0beb60e48100/main.spi
00:00:24 #1408 [Verbose] >
00:00:24 #1409 [Verbose] > ╭─[ 285.85ms - stdout ]────────────────────────────────────────────────────────╮
00:00:24 #1410 [Verbose] > │ let rec closure0 () () : System.Guid =                                       │
00:00:24 #1411 [Verbose] > │     let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210"                 │
00:00:24 #1412 [Verbose] > │     let v1 : System.Guid = System.Guid v0                                    │
00:00:24 #1413 [Verbose] > │     v1                                                                       │
00:00:24 #1414 [Verbose] > │ and method1 (v0 : bool) : bool =                                             │
00:00:24 #1415 [Verbose] > │     v0                                                                       │
00:00:24 #1416 [Verbose] > │ and method0 () : unit =                                                      │
00:00:24 #1417 [Verbose] > │     let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210"                 │
00:00:24 #1418 [Verbose] > │     let v1 : System.Guid = System.Guid v0                                    │
00:00:24 #1419 [Verbose] > │     let v2 : System.DateTime = System.DateTime.MaxValue                      │
00:00:24 #1420 [Verbose] > │     let v3 : string = v1.ToString ()                                         │
00:00:24 #1421 [Verbose] > │     let v4 : string = v2.ToString "yyyyMMdd-HHmm-ssff-ffff-f"                │
00:00:24 #1422 [Verbose] > │     let v5 : System.Guid = System.Guid $"{v4}{v3.[v4.Length..]}"             │
00:00:24 #1423 [Verbose] > │     let v6 : string = v5.ToString ()                                         │
00:00:24 #1424 [Verbose] > │     let v7 : (unit -> System.Guid) = closure0()                              │
00:00:24 #1425 [Verbose] > │     let v8 : string = $"99991231-2359-5999-9999-9{(v7() |> string).[^10..]}" │
00:00:24 #1426 [Verbose] > │     let v9 : string = $"%A{v6}"                                              │
00:00:24 #1427 [Verbose] > │     System.Console.WriteLine v9                                              │
00:00:24 #1428 [Verbose] > │     let v10 : bool = v6 = v8                                                 │
00:00:24 #1429 [Verbose] > │     let v12 : bool =                                                         │
00:00:24 #1430 [Verbose] > │         if v10 then                                                          │
00:00:24 #1431 [Verbose] > │             true                                                             │
00:00:24 #1432 [Verbose] > │         else                                                                 │
00:00:24 #1433 [Verbose] > │             method1(v10)                                                     │
00:00:24 #1434 [Verbose] > │     let v13 : string = $"__expect / actual: %A{v6} / expected: %A{v8}"       │
00:00:24 #1435 [Verbose] > │     let v14 : bool = v12 = false                                             │
00:00:24 #1436 [Verbose] > │     if v14 then                                                              │
00:00:24 #1437 [Verbose] > │         failwith<unit> v13                                                   │
00:00:24 #1438 [Verbose] > │ method0()                                                                    │
00:00:24 #1439 [Verbose] > │                                                                              │
00:00:24 #1440 [Verbose] > │ "99991231-2359-5999-9999-9a9876543210"                                       │
00:00:24 #1441 [Verbose] > │                                                                              │
00:00:24 #1442 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:24 #1443 [Verbose] >
00:00:24 #1444 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:24 #1445 [Verbose] > // // test
00:00:24 #1446 [Verbose] >
00:00:24 #1447 [Verbose] > date_time_guid_from_date_time (test_guid ()) $'System.DateTime.UnixEpoch'
00:00:24 #1448 [Verbose] > |> sm'.obj_to_string
00:00:24 #1449 [Verbose] > |> _assert_eq $'$"19700101-0000-0000-0000-0{(!test_guid () |>
00:00:24 #1450 [Verbose] > string).[[^10..]]}"'
00:00:24 #1451 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-5338-3845-3fd9f4ea91d3/main.spi
00:00:24 #1452 [Verbose] >
00:00:24 #1453 [Verbose] > ╭─[ 242.22ms - stdout ]────────────────────────────────────────────────────────╮
00:00:24 #1454 [Verbose] > │ let rec closure0 () () : System.Guid =                                       │
00:00:24 #1455 [Verbose] > │     let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210"                 │
00:00:24 #1456 [Verbose] > │     let v1 : System.Guid = System.Guid v0                                    │
00:00:24 #1457 [Verbose] > │     v1                                                                       │
00:00:24 #1458 [Verbose] > │ and method1 (v0 : bool) : bool =                                             │
00:00:24 #1459 [Verbose] > │     v0                                                                       │
00:00:24 #1460 [Verbose] > │ and method0 () : unit =                                                      │
00:00:24 #1461 [Verbose] > │     let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210"                 │
00:00:24 #1462 [Verbose] > │     let v1 : System.Guid = System.Guid v0                                    │
00:00:24 #1463 [Verbose] > │     let v2 : System.DateTime = System.DateTime.UnixEpoch                     │
00:00:24 #1464 [Verbose] > │     let v3 : string = v1.ToString ()                                         │
00:00:24 #1465 [Verbose] > │     let v4 : string = v2.ToString "yyyyMMdd-HHmm-ssff-ffff-f"                │
00:00:24 #1466 [Verbose] > │     let v5 : System.Guid = System.Guid $"{v4}{v3.[v4.Length..]}"             │
00:00:24 #1467 [Verbose] > │     let v6 : string = v5.ToString ()                                         │
00:00:24 #1468 [Verbose] > │     let v7 : (unit -> System.Guid) = closure0()                              │
00:00:24 #1469 [Verbose] > │     let v8 : string = $"19700101-0000-0000-0000-0{(v7 () |> string).[        │
00:00:24 #1470 [Verbose] > │ ^10..]}"                                                                     │
00:00:24 #1471 [Verbose] > │     let v9 : string = $"%A{v6}"                                              │
00:00:24 #1472 [Verbose] > │     System.Console.WriteLine v9                                              │
00:00:24 #1473 [Verbose] > │     let v10 : bool = v6 = v8                                                 │
00:00:24 #1474 [Verbose] > │     let v12 : bool =                                                         │
00:00:24 #1475 [Verbose] > │         if v10 then                                                          │
00:00:24 #1476 [Verbose] > │             true                                                             │
00:00:24 #1477 [Verbose] > │         else                                                                 │
00:00:24 #1478 [Verbose] > │             method1(v10)                                                     │
00:00:24 #1479 [Verbose] > │     let v13 : string = $"__expect / actual: %A{v6} / expected: %A{v8}"       │
00:00:24 #1480 [Verbose] > │     let v14 : bool = v12 = false                                             │
00:00:24 #1481 [Verbose] > │     if v14 then                                                              │
00:00:24 #1482 [Verbose] > │         failwith<unit> v13                                                   │
00:00:24 #1483 [Verbose] > │ method0()                                                                    │
00:00:24 #1484 [Verbose] > │                                                                              │
00:00:24 #1485 [Verbose] > │ "19700101-0000-0000-0000-0a9876543210"                                       │
00:00:24 #1486 [Verbose] > │                                                                              │
00:00:24 #1487 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:24 #1488 [Verbose] >
00:00:24 #1489 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:24 #1490 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:24 #1491 [Verbose] > │ ## date_time_from_guid                                                       │
00:00:24 #1492 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:24 #1493 [Verbose] >
00:00:24 #1494 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:24 #1495 [Verbose] > inl date_time_from_guid (date_time_guid : date_time_guid) =
00:00:24 #1496 [Verbose] >     inl date_time_guid = date_time_guid |> sm'.obj_to_string
00:00:24 #1497 [Verbose] >     inl sm'_replace = join sm'.replace
00:00:24 #1498 [Verbose] >     run_target function
00:00:24 #1499 [Verbose] >         | Fsharp => fun () => $'System.DateTime.ParseExact
00:00:24 #1500 [Verbose] > (!date_time_guid.[[..24]] |> !sm'_replace "-" "", "yyyyMMddHHmmssfffffff",
00:00:24 #1501 [Verbose] > null)' : date_time
00:00:24 #1502 [Verbose] >         | Rust _ => fun () =>
00:00:24 #1503 [Verbose] >             $'System.DateTime.Parse (!date_time_guid.[[..24]] |> !sm'_replace
00:00:24 #1504 [Verbose] > "-" "")' : date_time
00:00:24 #1505 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-5363-6355-6c3399660d7d/main.spi
00:00:24 #1506 [Verbose] >
00:00:24 #1507 [Verbose] > ╭─[ 206.22ms - stdout ]────────────────────────────────────────────────────────╮
00:00:24 #1508 [Verbose] > │ ()                                                                           │
00:00:24 #1509 [Verbose] > │                                                                              │
00:00:24 #1510 [Verbose] > │                                                                              │
00:00:24 #1511 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:24 #1512 [Verbose] >
00:00:24 #1513 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:24 #1514 [Verbose] > // // test
00:00:24 #1515 [Verbose] >
00:00:24 #1516 [Verbose] > date_time_from_guid (guid.new_guid "00010101-0000-0000-0000-0a9876543210")
00:00:24 #1517 [Verbose] > |> _assert_eq' $'System.DateTime.MinValue'
00:00:24 #1518 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-5384-8415-8a8217c674b8/main.spi
00:00:24 #1519 [Verbose] >
00:00:24 #1520 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:24 #1521 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:24 #1522 [Verbose] > │ # math                                                                       │
00:00:24 #1523 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:24 #1524 [Verbose] >
00:00:24 #1525 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:24 #1526 [Verbose] > // // test
00:00:24 #1527 [Verbose] >
00:00:24 #1528 [Verbose] > open testing
00:00:25 #1529 [Verbose] >
00:00:25 #1530 [Verbose] > ╭─[ 357.42ms - stdout ]────────────────────────────────────────────────────────╮
00:00:25 #1531 [Verbose] > │ let rec closure2 (v0 : string, v1 : string) (v2 : string) : string =         │
00:00:25 #1532 [Verbose] > │     let v3 : string = v2.Replace (v0, v1)                                    │
00:00:25 #1533 [Verbose] > │     v3                                                                       │
00:00:25 #1534 [Verbose] > │ and closure1 (v0 : string) (v1 : string) : (string -> string) =              │
00:00:25 #1535 [Verbose] > │     closure2(v0, v1)                                                         │
00:00:25 #1536 [Verbose] > │ and closure0 () (v0 : string) : (string -> (string -> string)) =             │
00:00:25 #1537 [Verbose] > │     closure1(v0)                                                             │
00:00:25 #1538 [Verbose] > │ and method1 () : (string -> (string -> (string -> string))) =                │
00:00:25 #1539 [Verbose] > │     closure0()                                                               │
00:00:25 #1540 [Verbose] > │ and method2 (v0 : bool) : bool =                                             │
00:00:25 #1541 [Verbose] > │     v0                                                                       │
00:00:25 #1542 [Verbose] > │ and method0 () : unit =                                                      │
00:00:25 #1543 [Verbose] > │     let v0 : string = "00010101-0000-0000-0000-0a9876543210"                 │
00:00:25 #1544 [Verbose] > │     let v1 : System.Guid = System.Guid v0                                    │
00:00:25 #1545 [Verbose] > │     let v2 : string = v1.ToString ()                                         │
00:00:25 #1546 [Verbose] > │     let v3 : (string -> (string -> (string -> string))) = method1()          │
00:00:25 #1547 [Verbose] > │     let mutable result = None                                                │
00:00:25 #1548 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM                                         │
00:00:25 #1549 [Verbose] > │     let v4 : System.DateTime = System.DateTime.Parse (v2.[..24] |> v3 "-"    │
00:00:25 #1550 [Verbose] > │ "")                                                                          │
00:00:25 #1551 [Verbose] > │     v4                                                                       │
00:00:25 #1552 [Verbose] > │     #endif                                                                   │
00:00:25 #1553 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │
00:00:25 #1554 [Verbose] > │     let v5 : System.DateTime = System.DateTime.Parse (v2.[..24] |> v3 "-"    │
00:00:25 #1555 [Verbose] > │ "")                                                                          │
00:00:25 #1556 [Verbose] > │     v5                                                                       │
00:00:25 #1557 [Verbose] > │     #endif                                                                   │
00:00:25 #1558 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │
00:00:25 #1559 [Verbose] > │     let v6 : System.DateTime = System.DateTime.ParseExact (v2.[..24] |> v3   │
00:00:25 #1560 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null)                                       │
00:00:25 #1561 [Verbose] > │     v6                                                                       │
00:00:25 #1562 [Verbose] > │     #endif                                                                   │
00:00:25 #1563 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │
00:00:25 #1564 [Verbose] > │     let v7 : System.DateTime = System.DateTime.ParseExact (v2.[..24] |> v3   │
00:00:25 #1565 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null)                                       │
00:00:25 #1566 [Verbose] > │     v7                                                                       │
00:00:25 #1567 [Verbose] > │     #endif                                                                   │
00:00:25 #1568 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │
00:00:25 #1569 [Verbose] > │     let v8 : System.DateTime = System.DateTime.ParseExact (v2.[..24] |> v3   │
00:00:25 #1570 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null)                                       │
00:00:25 #1571 [Verbose] > │     v8                                                                       │
00:00:25 #1572 [Verbose] > │     #endif                                                                   │
00:00:25 #1573 [Verbose] > │     |> fun x -> result <- Some x                                             │
00:00:25 #1574 [Verbose] > │     let v9 : System.DateTime = result |> Option.get                          │
00:00:25 #1575 [Verbose] > │     let v10 : System.DateTime = System.DateTime.MinValue                     │
00:00:25 #1576 [Verbose] > │     let v11 : string = $"%A{v9}"                                             │
00:00:25 #1577 [Verbose] > │     System.Console.WriteLine v11                                             │
00:00:25 #1578 [Verbose] > │     let v12 : bool = v9 = v10                                                │
00:00:25 #1579 [Verbose] > │     let v14 : bool =                                                         │
00:00:25 #1580 [Verbose] > │         if v12 then                                                          │
00:00:25 #1581 [Verbose] > │             true                                                             │
00:00:25 #1582 [Verbose] > │         else                                                                 │
00:00:25 #1583 [Verbose] > │             method2(v12)                                                     │
00:00:25 #1584 [Verbose] > │     let v15 : string = $"__expect / actual: %A{v9} / expected: %A{v10}"      │
00:00:25 #1585 [Verbose] > │     let v16 : bool = v14 = false                                             │
00:00:25 #1586 [Verbose] > │     if v16 then                                                              │
00:00:25 #1587 [Verbose] > │         failwith<unit> v15                                                   │
00:00:25 #1588 [Verbose] > │ method0()                                                                    │
00:00:25 #1589 [Verbose] > │                                                                              │
00:00:25 #1590 [Verbose] > │ 01/01/0001 00:00:00                                                          │
00:00:25 #1591 [Verbose] > │                                                                              │
00:00:25 #1592 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:25 #1593 [Verbose] >
00:00:25 #1594 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:25 #1595 [Verbose] > // // test
00:00:25 #1596 [Verbose] >
00:00:25 #1597 [Verbose] > date_time_from_guid (guid.new_guid $'$"99991231-2359-5999-9999-9{(!test_guid ()
00:00:25 #1598 [Verbose] > |> string).[[^10..]]}"')
00:00:25 #1599 [Verbose] > |> _assert_eq' $'System.DateTime.MaxValue'
00:00:26 #1600 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-5420-2068-261ca791e099/main.spi
00:00:27 #1601 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-5612-1258-105721ba428e/main.spi
00:00:28 #1602 [Verbose] >
00:00:28 #1603 [Verbose] > ╭─[ 3.45s - stdout ]───────────────────────────────────────────────────────────╮
00:00:28 #1604 [Verbose] > │ ()                                                                           │
00:00:28 #1605 [Verbose] > │                                                                              │
00:00:28 #1606 [Verbose] > │                                                                              │
00:00:28 #1607 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:28 #1608 [Verbose] >
00:00:28 #1609 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:28 #1610 [Verbose] > // // test
00:00:28 #1611 [Verbose] >
00:00:28 #1612 [Verbose] > 2 * 2 / 0.4f64 |> sqrt
00:00:28 #1613 [Verbose] > |> _assert_approx_eq None 3.1622776601683795
00:00:28 #1614 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-5756-5660-5d06af7ed2ab/main.spi
00:00:29 #1615 [Verbose] >
00:00:29 #1616 [Verbose] > ╭─[ 784.23ms - stdout ]────────────────────────────────────────────────────────╮
00:00:29 #1617 [Verbose] > │ let rec method0 () : unit =                                                  │
00:00:29 #1618 [Verbose] > │     let v0 : string = $"%A{3.1622776601683795}"                              │
00:00:29 #1619 [Verbose] > │     System.Console.WriteLine v0                                              │
00:00:29 #1620 [Verbose] > │     let v1 : string = $"__expect / actual: %A{3.1622776601683795} /          │
00:00:29 #1621 [Verbose] > │ expected: %A{3.1622776601683795}"                                            │
00:00:29 #1622 [Verbose] > │     ()                                                                       │
00:00:29 #1623 [Verbose] > │ method0()                                                                    │
00:00:29 #1624 [Verbose] > │                                                                              │
00:00:29 #1625 [Verbose] > │ 3.16227766                                                                   │
00:00:29 #1626 [Verbose] > │                                                                              │
00:00:29 #1627 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:29 #1628 [Verbose] >
00:00:29 #1629 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:29 #1630 [Verbose] > // // test
00:00:29 #1631 [Verbose] >
00:00:29 #1632 [Verbose] > 2f64 / 3
00:00:29 #1633 [Verbose] > |> _assert_approx_eq None 0.6666666666666666
00:00:29 #1634 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-5834-3482-3f90914456a9/main.spi
00:00:29 #1635 [Verbose] >
00:00:29 #1636 [Verbose] > ╭─[ 153.79ms - stdout ]────────────────────────────────────────────────────────╮
00:00:29 #1637 [Verbose] > │ let rec method0 () : unit =                                                  │
00:00:29 #1638 [Verbose] > │     let v0 : string = $"%A{0.6666666666666666}"                              │
00:00:29 #1639 [Verbose] > │     System.Console.WriteLine v0                                              │
00:00:29 #1640 [Verbose] > │     let v1 : string = $"__expect / actual: %A{0.6666666666666666} /          │
00:00:29 #1641 [Verbose] > │ expected: %A{0.6666666666666666}"                                            │
00:00:29 #1642 [Verbose] > │     ()                                                                       │
00:00:29 #1643 [Verbose] > │ method0()                                                                    │
00:00:29 #1644 [Verbose] > │                                                                              │
00:00:29 #1645 [Verbose] > │ 0.6666666667                                                                 │
00:00:29 #1646 [Verbose] > │                                                                              │
00:00:29 #1647 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:29 #1648 [Verbose] >
00:00:29 #1649 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:29 #1650 [Verbose] > // // test
00:00:29 #1651 [Verbose] >
00:00:29 #1652 [Verbose] > 2f64 |> log
00:00:29 #1653 [Verbose] > |> _assert_approx_eq None 0.6931471805599453
00:00:29 #1654 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-5850-5026-53633a83a0fb/main.spi
00:00:29 #1655 [Verbose] >
00:00:29 #1656 [Verbose] > ╭─[ 163.03ms - stdout ]────────────────────────────────────────────────────────╮
00:00:29 #1657 [Verbose] > │ let rec method0 () : unit =                                                  │
00:00:29 #1658 [Verbose] > │     let v0 : string = $"%A{0.6931471805599453}"                              │
00:00:29 #1659 [Verbose] > │     System.Console.WriteLine v0                                              │
00:00:29 #1660 [Verbose] > │     let v1 : string = $"__expect / actual: %A{0.6931471805599453} /          │
00:00:29 #1661 [Verbose] > │ expected: %A{0.6931471805599453}"                                            │
00:00:29 #1662 [Verbose] > │     ()                                                                       │
00:00:29 #1663 [Verbose] > │ method0()                                                                    │
00:00:29 #1664 [Verbose] > │                                                                              │
00:00:29 #1665 [Verbose] > │ 0.6931471806                                                                 │
00:00:29 #1666 [Verbose] > │                                                                              │
00:00:29 #1667 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:29 #1668 [Verbose] >
00:00:29 #1669 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:29 #1670 [Verbose] > // // test
00:00:29 #1671 [Verbose] >
00:00:29 #1672 [Verbose] > pi
00:00:29 #1673 [Verbose] > |> _assert_approx_eq None 3.141592653589793f64
00:00:29 #1674 [Verbose] > Building /tmp/dotnet-repl/20240329-2206-5866-6665-6b5c209535ff/main.spi
00:00:32 #1675 [Verbose] >
00:00:32 #1676 [Verbose] > ╭─[ 2.58s - stdout ]───────────────────────────────────────────────────────────╮
00:00:32 #1677 [Verbose] > │ let rec method0 () : unit =                                                  │
00:00:32 #1678 [Verbose] > │     let v0 : string = $"%A{3.141592653589793}"                               │
00:00:32 #1679 [Verbose] > │     System.Console.WriteLine v0                                              │
00:00:32 #1680 [Verbose] > │     let v1 : string = $"__expect / actual: %A{3.141592653589793} / expected: │
00:00:32 #1681 [Verbose] > │ %A{3.141592653589793}"                                                       │
00:00:32 #1682 [Verbose] > │     ()                                                                       │
00:00:32 #1683 [Verbose] > │ method0()                                                                    │
00:00:32 #1684 [Verbose] > │                                                                              │
00:00:32 #1685 [Verbose] > │ 3.141592654                                                                  │
00:00:32 #1686 [Verbose] > │                                                                              │
00:00:32 #1687 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:32 #1688 [Verbose] >
00:00:32 #1689 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:32 #1690 [Verbose] > // // test
00:00:32 #1691 [Verbose] >
00:00:32 #1692 [Verbose] > pi |> cos
00:00:32 #1693 [Verbose] > |> _assert_eq -1f64
00:00:32 #1694 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-0125-2500-25afa0458364/main.spi
00:00:32 #1695 [Verbose] >
00:00:32 #1696 [Verbose] > ╭─[ 276.40ms - stdout ]────────────────────────────────────────────────────────╮
00:00:32 #1697 [Verbose] > │ let rec method0 () : unit =                                                  │
00:00:32 #1698 [Verbose] > │     let v0 : string = $"%A{-1.0}"                                            │
00:00:32 #1699 [Verbose] > │     System.Console.WriteLine v0                                              │
00:00:32 #1700 [Verbose] > │     let v1 : string = $"__expect / actual: %A{-1.0} / expected: %A{-1.0}"    │
00:00:32 #1701 [Verbose] > │     ()                                                                       │
00:00:32 #1702 [Verbose] > │ method0()                                                                    │
00:00:32 #1703 [Verbose] > │                                                                              │
00:00:32 #1704 [Verbose] > │ -1.0                                                                         │
00:00:32 #1705 [Verbose] > │                                                                              │
00:00:32 #1706 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:32 #1707 [Verbose] >
00:00:32 #1708 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:32 #1709 [Verbose] > // // test
00:00:32 #1710 [Verbose] >
00:00:32 #1711 [Verbose] > pi
00:00:32 #1712 [Verbose] > |> cos
00:00:32 #1713 [Verbose] > |> fun n => n / 2f64
00:00:32 #1714 [Verbose] > |> _assert_approx_eq None -0.5
00:00:32 #1715 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-0152-5286-50865ca16a00/main.spi
00:00:32 #1716 [Verbose] >
00:00:32 #1717 [Verbose] > ╭─[ 7.52s - stdout ]───────────────────────────────────────────────────────────╮
00:00:32 #1718 [Verbose] > │ let rec closure0 () () : System.Guid =                                       │
00:00:32 #1719 [Verbose] > │     let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210"                 │
00:00:32 #1720 [Verbose] > │     let v1 : System.Guid = System.Guid v0                                    │
00:00:32 #1721 [Verbose] > │     v1                                                                       │
00:00:32 #1722 [Verbose] > │ and closure3 (v0 : string, v1 : string) (v2 : string) : string =             │
00:00:32 #1723 [Verbose] > │     let v3 : string = v2.Replace (v0, v1)                                    │
00:00:32 #1724 [Verbose] > │     v3                                                                       │
00:00:32 #1725 [Verbose] > │ and closure2 (v0 : string) (v1 : string) : (string -> string) =              │
00:00:32 #1726 [Verbose] > │     closure3(v0, v1)                                                         │
00:00:32 #1727 [Verbose] > │ and closure1 () (v0 : string) : (string -> (string -> string)) =             │
00:00:32 #1728 [Verbose] > │     closure2(v0)                                                             │
00:00:32 #1729 [Verbose] > │ and method1 () : (string -> (string -> (string -> string))) =                │
00:00:32 #1730 [Verbose] > │     closure1()                                                               │
00:00:32 #1731 [Verbose] > │ and method2 (v0 : bool) : bool =                                             │
00:00:32 #1732 [Verbose] > │     v0                                                                       │
00:00:32 #1733 [Verbose] > │ and method0 () : unit =                                                      │
00:00:32 #1734 [Verbose] > │     let v0 : (unit -> System.Guid) = closure0()                              │
00:00:32 #1735 [Verbose] > │     let v1 : string = $"99991231-2359-5999-9999-9{(v0 () |> string).[        │
00:00:32 #1736 [Verbose] > │ ^10..]}"                                                                     │
00:00:32 #1737 [Verbose] > │     let v2 : System.Guid = System.Guid v1                                    │
00:00:32 #1738 [Verbose] > │     let v3 : string = v2.ToString ()                                         │
00:00:32 #1739 [Verbose] > │     let v4 : (string -> (string -> (string -> string))) = method1()          │
00:00:32 #1740 [Verbose] > │     let mutable result = None                                                │
00:00:32 #1741 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM                                         │
00:00:32 #1742 [Verbose] > │     let v5 : System.DateTime = System.DateTime.Parse (v3.[..24] |> v4 "-"    │
00:00:32 #1743 [Verbose] > │ "")                                                                          │
00:00:32 #1744 [Verbose] > │     v5                                                                       │
00:00:32 #1745 [Verbose] > │     #endif                                                                   │
00:00:32 #1746 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │
00:00:32 #1747 [Verbose] > │     let v6 : System.DateTime = System.DateTime.Parse (v3.[..24] |> v4 "-"    │
00:00:32 #1748 [Verbose] > │ "")                                                                          │
00:00:32 #1749 [Verbose] > │     v6                                                                       │
00:00:32 #1750 [Verbose] > │     #endif                                                                   │
00:00:32 #1751 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │
00:00:32 #1752 [Verbose] > │     let v7 : System.DateTime = System.DateTime.ParseExact (v3.[..24] |> v4   │
00:00:32 #1753 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null)                                       │
00:00:32 #1754 [Verbose] > │     v7                                                                       │
00:00:32 #1755 [Verbose] > │     #endif                                                                   │
00:00:32 #1756 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │
00:00:32 #1757 [Verbose] > │     let v8 : System.DateTime = System.DateTime.ParseExact (v3.[..24] |> v4   │
00:00:32 #1758 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null)                                       │
00:00:32 #1759 [Verbose] > │     v8                                                                       │
00:00:32 #1760 [Verbose] > │     #endif                                                                   │
00:00:32 #1761 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │
00:00:32 #1762 [Verbose] > │     let v9 : System.DateTime = System.DateTime.ParseExact (v3.[..24] |> v4   │
00:00:32 #1763 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null)                                       │
00:00:32 #1764 [Verbose] > │     v9                                                                       │
00:00:32 #1765 [Verbose] > │     #endif                                                                   │
00:00:32 #1766 [Verbose] > │     |> fun x -> result <- Some x                                             │
00:00:32 #1767 [Verbose] > │     let v10 : System.DateTime = result |> Option.get                         │
00:00:32 #1768 [Verbose] > │     let v11 : System.DateTime = System.DateTime.MaxValue                     │
00:00:32 #1769 [Verbose] > │     let v12 : string = $"%A{v10}"                                            │
00:00:32 #1770 [Verbose] > │     System.Console.WriteLine v12                                             │
00:00:32 #1771 [Verbose] > │     let v13 : bool = v10 = v11                                               │
00:00:32 #1772 [Verbose] > │     let v15 : bool =                                                         │
00:00:32 #1773 [Verbose] > │         if v13 then                                                          │
00:00:32 #1774 [Verbose] > │             true                                                             │
00:00:32 #1775 [Verbose] > │         else                                                                 │
00:00:32 #1776 [Verbose] > │             method2(v13)                                                     │
00:00:32 #1777 [Verbose] > │     let v16 : string = $"__expect / actual: %A{v10} / expected: %A{v11}"     │
00:00:32 #1778 [Verbose] > │     let v17 : bool = v15 = false                                             │
00:00:32 #1779 [Verbose] > │     if v17 then                                                              │
00:00:32 #1780 [Verbose] > │         failwith<unit> v16                                                   │
00:00:32 #1781 [Verbose] > │ method0()                                                                    │
00:00:32 #1782 [Verbose] > │                                                                              │
00:00:32 #1783 [Verbose] > │ 12/31/9999 23:59:59                                                          │
00:00:32 #1784 [Verbose] > │                                                                              │
00:00:32 #1785 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:32 #1786 [Verbose] >
00:00:32 #1787 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:32 #1788 [Verbose] > // // test
00:00:32 #1789 [Verbose] >
00:00:32 #1790 [Verbose] > date_time_from_guid (guid.new_guid $'$"19700101-0000-0000-0000-0{(!test_guid ()
00:00:32 #1791 [Verbose] > |> string).[[^10..]]}"')
00:00:32 #1792 [Verbose] > |> _assert_eq' $'System.DateTime.UnixEpoch'
00:00:32 #1793 [Verbose] >
00:00:32 #1794 [Verbose] > ╭─[ 307.11ms - stdout ]────────────────────────────────────────────────────────╮
00:00:32 #1795 [Verbose] > │ let rec method0 () : unit =                                                  │
00:00:32 #1796 [Verbose] > │     let v0 : string = $"%A{-0.5}"                                            │
00:00:32 #1797 [Verbose] > │     System.Console.WriteLine v0                                              │
00:00:32 #1798 [Verbose] > │     let v1 : string = $"__expect / actual: %A{-0.5} / expected: %A{-0.5}"    │
00:00:32 #1799 [Verbose] > │     ()                                                                       │
00:00:32 #1800 [Verbose] > │ method0()                                                                    │
00:00:32 #1801 [Verbose] > │                                                                              │
00:00:32 #1802 [Verbose] > │ -0.5                                                                         │
00:00:32 #1803 [Verbose] > │                                                                              │
00:00:32 #1804 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:32 #1805 [Verbose] >
00:00:32 #1806 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:32 #1807 [Verbose] > // // test
00:00:32 #1808 [Verbose] >
00:00:32 #1809 [Verbose] > pi / 2 |> cos
00:00:32 #1810 [Verbose] > |> _assert_approx_eq None 0.00000000000000006123233995736766f64
00:00:32 #1811 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-0173-7346-761338b7589a/main.spi
00:00:32 #1812 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-0183-8351-839871a9b47c/main.spi
00:00:32 #1813 [Verbose] >
00:00:32 #1814 [Verbose] > ╭─[ 293.93ms - stdout ]────────────────────────────────────────────────────────╮
00:00:32 #1815 [Verbose] > │ let rec method0 () : unit =                                                  │
00:00:32 #1816 [Verbose] > │     let v0 : string = $"%A{6.123233995736766E-17}"                           │
00:00:32 #1817 [Verbose] > │     System.Console.WriteLine v0                                              │
00:00:32 #1818 [Verbose] > │     let v1 : string = $"__expect / actual: %A{6.123233995736766E-17} /       │
00:00:32 #1819 [Verbose] > │ expected: %A{6.123233995736766E-17}"                                         │
00:00:32 #1820 [Verbose] > │     ()                                                                       │
00:00:32 #1821 [Verbose] > │ method0()                                                                    │
00:00:32 #1822 [Verbose] > │                                                                              │
00:00:32 #1823 [Verbose] > │ 6.123233996e-17                                                              │
00:00:32 #1824 [Verbose] > │                                                                              │
00:00:32 #1825 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:32 #1826 [Verbose] >
00:00:32 #1827 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:32 #1828 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:32 #1829 [Verbose] > │ ## atan2                                                                     │
00:00:32 #1830 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:32 #1831 [Verbose] >
00:00:32 #1832 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:32 #1833 [Verbose] > inl atan2 (y : f64) (x : f64) =
00:00:32 #1834 [Verbose] >     $"System.Math.Atan2 (!y, !x)" : f64
00:00:33 #1835 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-0213-1383-1eba14857e0a/main.spi
00:00:33 #1836 [Verbose] >
00:00:33 #1837 [Verbose] > ╭─[ 314.29ms - stdout ]────────────────────────────────────────────────────────╮
00:00:33 #1838 [Verbose] > │ ()                                                                           │
00:00:33 #1839 [Verbose] > │                                                                              │
00:00:33 #1840 [Verbose] > │                                                                              │
00:00:33 #1841 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:33 #1842 [Verbose] >
00:00:33 #1843 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:33 #1844 [Verbose] > // // test
00:00:33 #1845 [Verbose] >
00:00:33 #1846 [Verbose] > 0 |> atan2 1
00:00:33 #1847 [Verbose] > |> _assert_eq 1.5707963267948966
00:00:33 #1848 [Verbose] >
00:00:33 #1849 [Verbose] > ╭─[ 747.11ms - stdout ]────────────────────────────────────────────────────────╮
00:00:33 #1850 [Verbose] > │ let rec closure0 () () : System.Guid =                                       │
00:00:33 #1851 [Verbose] > │     let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210"                 │
00:00:33 #1852 [Verbose] > │     let v1 : System.Guid = System.Guid v0                                    │
00:00:33 #1853 [Verbose] > │     v1                                                                       │
00:00:33 #1854 [Verbose] > │ and closure3 (v0 : string, v1 : string) (v2 : string) : string =             │
00:00:33 #1855 [Verbose] > │     let v3 : string = v2.Replace (v0, v1)                                    │
00:00:33 #1856 [Verbose] > │     v3                                                                       │
00:00:33 #1857 [Verbose] > │ and closure2 (v0 : string) (v1 : string) : (string -> string) =              │
00:00:33 #1858 [Verbose] > │     closure3(v0, v1)                                                         │
00:00:33 #1859 [Verbose] > │ and closure1 () (v0 : string) : (string -> (string -> string)) =             │
00:00:33 #1860 [Verbose] > │     closure2(v0)                                                             │
00:00:33 #1861 [Verbose] > │ and method1 () : (string -> (string -> (string -> string))) =                │
00:00:33 #1862 [Verbose] > │     closure1()                                                               │
00:00:33 #1863 [Verbose] > │ and method2 (v0 : bool) : bool =                                             │
00:00:33 #1864 [Verbose] > │     v0                                                                       │
00:00:33 #1865 [Verbose] > │ and method0 () : unit =                                                      │
00:00:33 #1866 [Verbose] > │     let v0 : (unit -> System.Guid) = closure0()                              │
00:00:33 #1867 [Verbose] > │     let v1 : string = $"19700101-0000-0000-0000-0{(v0 () |> string).[        │
00:00:33 #1868 [Verbose] > │ ^10..]}"                                                                     │
00:00:33 #1869 [Verbose] > │     let v2 : System.Guid = System.Guid v1                                    │
00:00:33 #1870 [Verbose] > │     let v3 : string = v2.ToString ()                                         │
00:00:33 #1871 [Verbose] > │     let v4 : (string -> (string -> (string -> string))) = method1()          │
00:00:33 #1872 [Verbose] > │     let mutable result = None                                                │
00:00:33 #1873 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM                                         │
00:00:33 #1874 [Verbose] > │     let v5 : System.DateTime = System.DateTime.Parse (v3.[..24] |> v4 "-"    │
00:00:33 #1875 [Verbose] > │ "")                                                                          │
00:00:33 #1876 [Verbose] > │     v5                                                                       │
00:00:33 #1877 [Verbose] > │     #endif                                                                   │
00:00:33 #1878 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │
00:00:33 #1879 [Verbose] > │     let v6 : System.DateTime = System.DateTime.Parse (v3.[..24] |> v4 "-"    │
00:00:33 #1880 [Verbose] > │ "")                                                                          │
00:00:33 #1881 [Verbose] > │     v6                                                                       │
00:00:33 #1882 [Verbose] > │     #endif                                                                   │
00:00:33 #1883 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │
00:00:33 #1884 [Verbose] > │     let v7 : System.DateTime = System.DateTime.ParseExact (v3.[..24] |> v4   │
00:00:33 #1885 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null)                                       │
00:00:33 #1886 [Verbose] > │     v7                                                                       │
00:00:33 #1887 [Verbose] > │     #endif                                                                   │
00:00:33 #1888 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │
00:00:33 #1889 [Verbose] > │     let v8 : System.DateTime = System.DateTime.ParseExact (v3.[..24] |> v4   │
00:00:33 #1890 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null)                                       │
00:00:33 #1891 [Verbose] > │     v8                                                                       │
00:00:33 #1892 [Verbose] > │     #endif                                                                   │
00:00:33 #1893 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │
00:00:33 #1894 [Verbose] > │     let v9 : System.DateTime = System.DateTime.ParseExact (v3.[..24] |> v4   │
00:00:33 #1895 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null)                                       │
00:00:33 #1896 [Verbose] > │     v9                                                                       │
00:00:33 #1897 [Verbose] > │     #endif                                                                   │
00:00:33 #1898 [Verbose] > │     |> fun x -> result <- Some x                                             │
00:00:33 #1899 [Verbose] > │     let v10 : System.DateTime = result |> Option.get                         │
00:00:33 #1900 [Verbose] > │     let v11 : System.DateTime = System.DateTime.UnixEpoch                    │
00:00:33 #1901 [Verbose] > │     let v12 : string = $"%A{v10}"                                            │
00:00:33 #1902 [Verbose] > │     System.Console.WriteLine v12                                             │
00:00:33 #1903 [Verbose] > │     let v13 : bool = v10 = v11                                               │
00:00:33 #1904 [Verbose] > │     let v15 : bool =                                                         │
00:00:33 #1905 [Verbose] > │         if v13 then                                                          │
00:00:33 #1906 [Verbose] > │             true                                                             │
00:00:33 #1907 [Verbose] > │         else                                                                 │
00:00:33 #1908 [Verbose] > │             method2(v13)                                                     │
00:00:33 #1909 [Verbose] > │     let v16 : string = $"__expect / actual: %A{v10} / expected: %A{v11}"     │
00:00:33 #1910 [Verbose] > │     let v17 : bool = v15 = false                                             │
00:00:33 #1911 [Verbose] > │     if v17 then                                                              │
00:00:33 #1912 [Verbose] > │         failwith<unit> v16                                                   │
00:00:33 #1913 [Verbose] > │ method0()                                                                    │
00:00:33 #1914 [Verbose] > │                                                                              │
00:00:33 #1915 [Verbose] > │ 01/01/1970 00:00:00                                                          │
00:00:33 #1916 [Verbose] > │                                                                              │
00:00:33 #1917 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:33 #1918 [Verbose] >
00:00:33 #1919 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:33 #1920 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:33 #1921 [Verbose] > │ ## ticks_guid_from_ticks                                                     │
00:00:33 #1922 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:33 #1923 [Verbose] >
00:00:33 #1924 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:33 #1925 [Verbose] > inl ticks_guid_from_ticks (guid : guid.guid) (ticks : ticks) : ticks_guid =
00:00:33 #1926 [Verbose] >     inl guid = guid |> sm'.obj_to_string
00:00:33 #1927 [Verbose] >     inl ticks = ticks |> sm'.obj_to_string |> sm'.pad_left 18i32 '0'
00:00:33 #1928 [Verbose] >     $'`ticks_guid
00:00:33 #1929 [Verbose] > $"{!ticks.[[0..7]]}-{!ticks.[[8..11]]}-{!ticks.[[12..15]]}-{!ticks.[[16..17]]}{!
00:00:33 #1930 [Verbose] > guid.[[21..]]}"'
00:00:33 #1931 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-0244-4479-4495410f248c/main.spi
00:00:33 #1932 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-0252-5242-59ac3b3b87e0/main.spi
00:00:33 #1933 [Verbose] >
00:00:33 #1934 [Verbose] > ╭─[ 360.11ms - stdout ]────────────────────────────────────────────────────────╮
00:00:33 #1935 [Verbose] > │ ()                                                                           │
00:00:33 #1936 [Verbose] > │                                                                              │
00:00:33 #1937 [Verbose] > │                                                                              │
00:00:33 #1938 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:33 #1939 [Verbose] >
00:00:33 #1940 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:33 #1941 [Verbose] > // // test
00:00:33 #1942 [Verbose] >
00:00:33 #1943 [Verbose] > ticks_guid_from_ticks (test_guid ()) (ticks 0i64)
00:00:33 #1944 [Verbose] > |> _assert_eq' (guid.new_guid "00000000-0000-0000-00dc-ba9876543210")
00:00:33 #1945 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-0287-8780-852294157207/main.spi
00:00:33 #1946 [Verbose] >
00:00:33 #1947 [Verbose] > ╭─[ 675.29ms - stdout ]────────────────────────────────────────────────────────╮
00:00:33 #1948 [Verbose] > │ let rec method1 (v0 : bool) : bool =                                         │
00:00:33 #1949 [Verbose] > │     v0                                                                       │
00:00:33 #1950 [Verbose] > │ and method0 () : unit =                                                      │
00:00:33 #1951 [Verbose] > │     let v0 : float = System.Math.Atan2 (1.0, 0.0)                            │
00:00:33 #1952 [Verbose] > │     let v1 : string = $"%A{v0}"                                              │
00:00:33 #1953 [Verbose] > │     System.Console.WriteLine v1                                              │
00:00:33 #1954 [Verbose] > │     let v2 : bool = v0 = 1.5707963267948966                                  │
00:00:33 #1955 [Verbose] > │     let v4 : bool =                                                          │
00:00:33 #1956 [Verbose] > │         if v2 then                                                           │
00:00:33 #1957 [Verbose] > │             true                                                             │
00:00:33 #1958 [Verbose] > │         else                                                                 │
00:00:33 #1959 [Verbose] > │             method1(v2)                                                      │
00:00:33 #1960 [Verbose] > │     let v5 : string = $"__expect / actual: %A{v0} / expected:                │
00:00:33 #1961 [Verbose] > │ %A{1.5707963267948966}"                                                      │
00:00:33 #1962 [Verbose] > │     let v6 : bool = v4 = false                                               │
00:00:33 #1963 [Verbose] > │     if v6 then                                                               │
00:00:33 #1964 [Verbose] > │         failwith<unit> v5                                                    │
00:00:33 #1965 [Verbose] > │ method0()                                                                    │
00:00:33 #1966 [Verbose] > │                                                                              │
00:00:33 #1967 [Verbose] > │ 1.570796327                                                                  │
00:00:33 #1968 [Verbose] > │                                                                              │
00:00:33 #1969 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:33 #1970 [Verbose] >
00:00:33 #1971 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:33 #1972 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:33 #1973 [Verbose] > │ ## e                                                                         │
00:00:33 #1974 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:33 #1975 [Verbose] >
00:00:33 #1976 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:33 #1977 [Verbose] > inl e () =
00:00:33 #1978 [Verbose] >     exp 1f64
00:00:34 #1979 [Verbose] >
00:00:34 #1980 [Verbose] > ╭─[ 361.47ms - stdout ]────────────────────────────────────────────────────────╮
00:00:34 #1981 [Verbose] > │ let rec method1 (v0 : bool) : bool =                                         │
00:00:34 #1982 [Verbose] > │     v0                                                                       │
00:00:34 #1983 [Verbose] > │ and method0 () : unit =                                                      │
00:00:34 #1984 [Verbose] > │     let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210"                 │
00:00:34 #1985 [Verbose] > │     let v1 : System.Guid = System.Guid v0                                    │
00:00:34 #1986 [Verbose] > │     let v2 : string = v1.ToString ()                                         │
00:00:34 #1987 [Verbose] > │     let v3 : string = 0L.ToString ()                                         │
00:00:34 #1988 [Verbose] > │     let v4 : string = v3.PadLeft (18, '0')                                   │
00:00:34 #1989 [Verbose] > │     let v5 : System.Guid = System.Guid $"{v4.[0..7]}-{v4.[8..11]}-{v4.[      │
00:00:34 #1990 [Verbose] > │ 12..15]}-{v4.[16..17]}{v2.[21..]}"                                           │
00:00:34 #1991 [Verbose] > │     let v6 : string = "00000000-0000-0000-00dc-ba9876543210"                 │
00:00:34 #1992 [Verbose] > │     let v7 : System.Guid = System.Guid v6                                    │
00:00:34 #1993 [Verbose] > │     let v8 : string = $"%A{v5}"                                              │
00:00:34 #1994 [Verbose] > │     System.Console.WriteLine v8                                              │
00:00:34 #1995 [Verbose] > │     let v9 : bool = v5 = v7                                                  │
00:00:34 #1996 [Verbose] > │     let v11 : bool =                                                         │
00:00:34 #1997 [Verbose] > │         if v9 then                                                           │
00:00:34 #1998 [Verbose] > │             true                                                             │
00:00:34 #1999 [Verbose] > │         else                                                                 │
00:00:34 #2000 [Verbose] > │             method1(v9)                                                      │
00:00:34 #2001 [Verbose] > │     let v12 : string = $"__expect / actual: %A{v5} / expected: %A{v7}"       │
00:00:34 #2002 [Verbose] > │     let v13 : bool = v11 = false                                             │
00:00:34 #2003 [Verbose] > │     if v13 then                                                              │
00:00:34 #2004 [Verbose] > │         failwith<unit> v12                                                   │
00:00:34 #2005 [Verbose] > │ method0()                                                                    │
00:00:34 #2006 [Verbose] > │                                                                              │
00:00:34 #2007 [Verbose] > │ 00000000-0000-0000-00dc-ba9876543210                                         │
00:00:34 #2008 [Verbose] > │                                                                              │
00:00:34 #2009 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:34 #2010 [Verbose] >
00:00:34 #2011 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:34 #2012 [Verbose] > // // test
00:00:34 #2013 [Verbose] >
00:00:34 #2014 [Verbose] > ticks_guid_from_ticks (test_guid ()) (ticks 999999999999999999i64)
00:00:34 #2015 [Verbose] > |> _assert_eq' (guid.new_guid $'$"99999999-9999-9999-99dc-b{(!test_guid () |>
00:00:34 #2016 [Verbose] > string).[[^10..]]}"')
00:00:34 #2017 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-0312-1290-198b6e5b4c44/main.spi
00:00:34 #2018 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-0324-2419-2de91797d650/main.spi
00:00:34 #2019 [Verbose] >
00:00:34 #2020 [Verbose] > ╭─[ 289.48ms - stdout ]────────────────────────────────────────────────────────╮
00:00:34 #2021 [Verbose] > │ ()                                                                           │
00:00:34 #2022 [Verbose] > │                                                                              │
00:00:34 #2023 [Verbose] > │                                                                              │
00:00:34 #2024 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:34 #2025 [Verbose] >
00:00:34 #2026 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:34 #2027 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:34 #2028 [Verbose] > │ ## floor                                                                     │
00:00:34 #2029 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:34 #2030 [Verbose] >
00:00:34 #2031 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:34 #2032 [Verbose] > inl floor forall t {float}. (x : t) : t =
00:00:34 #2033 [Verbose] >     $"floor !x"
00:00:34 #2034 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-0341-4188-4978c4a9d1fa/main.spi
00:00:34 #2035 [Verbose] >
00:00:34 #2036 [Verbose] > ╭─[ 380.23ms - stdout ]────────────────────────────────────────────────────────╮
00:00:34 #2037 [Verbose] > │ let rec closure0 () () : System.Guid =                                       │
00:00:34 #2038 [Verbose] > │     let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210"                 │
00:00:34 #2039 [Verbose] > │     let v1 : System.Guid = System.Guid v0                                    │
00:00:34 #2040 [Verbose] > │     v1                                                                       │
00:00:34 #2041 [Verbose] > │ and method1 (v0 : bool) : bool =                                             │
00:00:34 #2042 [Verbose] > │     v0                                                                       │
00:00:34 #2043 [Verbose] > │ and method0 () : unit =                                                      │
00:00:34 #2044 [Verbose] > │     let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210"                 │
00:00:34 #2045 [Verbose] > │     let v1 : System.Guid = System.Guid v0                                    │
00:00:34 #2046 [Verbose] > │     let v2 : string = v1.ToString ()                                         │
00:00:34 #2047 [Verbose] > │     let v3 : string = 999999999999999999L.ToString ()                        │
00:00:34 #2048 [Verbose] > │     let v4 : string = v3.PadLeft (18, '0')                                   │
00:00:34 #2049 [Verbose] > │     let v5 : System.Guid = System.Guid $"{v4.[0..7]}-{v4.[8..11]}-{v4.[      │
00:00:34 #2050 [Verbose] > │ 12..15]}-{v4.[16..17]}{v2.[21..]}"                                           │
00:00:34 #2051 [Verbose] > │     let v6 : (unit -> System.Guid) = closure0()                              │
00:00:34 #2052 [Verbose] > │     let v7 : string = $"99999999-9999-9999-99dc-b{(v6 () |> string).[        │
00:00:34 #2053 [Verbose] > │ ^10..]}"                                                                     │
00:00:34 #2054 [Verbose] > │     let v8 : System.Guid = System.Guid v7                                    │
00:00:34 #2055 [Verbose] > │     let v9 : string = $"%A{v5}"                                              │
00:00:34 #2056 [Verbose] > │     System.Console.WriteLine v9                                              │
00:00:34 #2057 [Verbose] > │     let v10 : bool = v5 = v8                                                 │
00:00:34 #2058 [Verbose] > │     let v12 : bool =                                                         │
00:00:34 #2059 [Verbose] > │         if v10 then                                                          │
00:00:34 #2060 [Verbose] > │             true                                                             │
00:00:34 #2061 [Verbose] > │         else                                                                 │
00:00:34 #2062 [Verbose] > │             method1(v10)                                                     │
00:00:34 #2063 [Verbose] > │     let v13 : string = $"__expect / actual: %A{v5} / expected: %A{v8}"       │
00:00:34 #2064 [Verbose] > │     let v14 : bool = v12 = false                                             │
00:00:34 #2065 [Verbose] > │     if v14 then                                                              │
00:00:34 #2066 [Verbose] > │         failwith<unit> v13                                                   │
00:00:34 #2067 [Verbose] > │ method0()                                                                    │
00:00:34 #2068 [Verbose] > │                                                                              │
00:00:34 #2069 [Verbose] > │ 99999999-9999-9999-99dc-ba9876543210                                         │
00:00:34 #2070 [Verbose] > │                                                                              │
00:00:34 #2071 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:34 #2072 [Verbose] >
00:00:34 #2073 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:34 #2074 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:34 #2075 [Verbose] > │ ## ticks_from_guid                                                           │
00:00:34 #2076 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:34 #2077 [Verbose] >
00:00:34 #2078 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:34 #2079 [Verbose] > inl ticks_from_guid (guid : date_time_guid) : ticks =
00:00:34 #2080 [Verbose] >     inl guid = guid |> sm'.obj_to_string
00:00:34 #2081 [Verbose] >     $'`i64
00:00:34 #2082 [Verbose] > $"{!guid.[[0..7]]}{!guid.[[9..12]]}{!guid.[[14..17]]}{!guid.[[19..20]]}"'
00:00:34 #2083 [Verbose] >
00:00:34 #2084 [Verbose] > ╭─[ 245.37ms - stdout ]────────────────────────────────────────────────────────╮
00:00:34 #2085 [Verbose] > │ ()                                                                           │
00:00:34 #2086 [Verbose] > │                                                                              │
00:00:34 #2087 [Verbose] > │                                                                              │
00:00:34 #2088 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:34 #2089 [Verbose] >
00:00:34 #2090 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:34 #2091 [Verbose] > // // test
00:00:34 #2092 [Verbose] >
00:00:34 #2093 [Verbose] > 0.6 |> floor
00:00:34 #2094 [Verbose] > |> _assert_eq 0f64
00:00:34 #2095 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-0362-6264-6e98639a14cb/main.spi
00:00:34 #2096 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-0366-6648-6aa31b42ed4e/main.spi
00:00:34 #2097 [Verbose] >
00:00:34 #2098 [Verbose] > ╭─[ 276.30ms - stdout ]────────────────────────────────────────────────────────╮
00:00:34 #2099 [Verbose] > │ ()                                                                           │
00:00:34 #2100 [Verbose] > │                                                                              │
00:00:34 #2101 [Verbose] > │                                                                              │
00:00:34 #2102 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:34 #2103 [Verbose] >
00:00:34 #2104 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:34 #2105 [Verbose] > // // test
00:00:34 #2106 [Verbose] >
00:00:34 #2107 [Verbose] > ticks_from_guid (guid.new_guid "00000000-0000-0000-00dc-ba9876543210")
00:00:34 #2108 [Verbose] > |> _assert_eq (ticks 0)
00:00:34 #2109 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-0390-9028-97fe5f6c0664/main.spi
00:00:34 #2110 [Verbose] >
00:00:34 #2111 [Verbose] > ╭─[ 402.20ms - stdout ]────────────────────────────────────────────────────────╮
00:00:34 #2112 [Verbose] > │ let rec method1 (v0 : bool) : bool =                                         │
00:00:34 #2113 [Verbose] > │     v0                                                                       │
00:00:34 #2114 [Verbose] > │ and method0 () : unit =                                                      │
00:00:34 #2115 [Verbose] > │     let v0 : float = floor 0.6                                               │
00:00:34 #2116 [Verbose] > │     let v1 : string = $"%A{v0}"                                              │
00:00:34 #2117 [Verbose] > │     System.Console.WriteLine v1                                              │
00:00:34 #2118 [Verbose] > │     let v2 : bool = v0 = 0.0                                                 │
00:00:34 #2119 [Verbose] > │     let v4 : bool =                                                          │
00:00:34 #2120 [Verbose] > │         if v2 then                                                           │
00:00:34 #2121 [Verbose] > │             true                                                             │
00:00:34 #2122 [Verbose] > │         else                                                                 │
00:00:34 #2123 [Verbose] > │             method1(v2)                                                      │
00:00:34 #2124 [Verbose] > │     let v5 : string = $"__expect / actual: %A{v0} / expected: %A{0.0}"       │
00:00:34 #2125 [Verbose] > │     let v6 : bool = v4 = false                                               │
00:00:34 #2126 [Verbose] > │     if v6 then                                                               │
00:00:34 #2127 [Verbose] > │         failwith<unit> v5                                                    │
00:00:34 #2128 [Verbose] > │ method0()                                                                    │
00:00:34 #2129 [Verbose] > │                                                                              │
00:00:34 #2130 [Verbose] > │ 0.0                                                                          │
00:00:34 #2131 [Verbose] > │                                                                              │
00:00:34 #2132 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:34 #2133 [Verbose] >
00:00:34 #2134 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:34 #2135 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:34 #2136 [Verbose] > │ ## log_base                                                                  │
00:00:34 #2137 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:34 #2138 [Verbose] >
00:00:34 #2139 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:34 #2140 [Verbose] > inl log_base (new_base : f64) (a : f64) =
00:00:34 #2141 [Verbose] >     $"System.Math.Log (!a, !new_base)" : f64
00:00:35 #2142 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-0407-0715-0769cd81c53e/main.spi
00:00:35 #2143 [Verbose] >
00:00:35 #2144 [Verbose] > ╭─[ 443.57ms - stdout ]────────────────────────────────────────────────────────╮
00:00:35 #2145 [Verbose] > │ let rec method1 (v0 : bool) : bool =                                         │
00:00:35 #2146 [Verbose] > │     v0                                                                       │
00:00:35 #2147 [Verbose] > │ and method0 () : unit =                                                      │
00:00:35 #2148 [Verbose] > │     let v0 : string = "00000000-0000-0000-00dc-ba9876543210"                 │
00:00:35 #2149 [Verbose] > │     let v1 : System.Guid = System.Guid v0                                    │
00:00:35 #2150 [Verbose] > │     let v2 : string = v1.ToString ()                                         │
00:00:35 #2151 [Verbose] > │     let v3 : int64 = int64 $"{v2.[0..7]}{v2.[9..12]}{v2.[14..17]}{v2.[       │
00:00:35 #2152 [Verbose] > │ 19..20]}"                                                                    │
00:00:35 #2153 [Verbose] > │     let v4 : string = $"%A{v3}"                                              │
00:00:35 #2154 [Verbose] > │     System.Console.WriteLine v4                                              │
00:00:35 #2155 [Verbose] > │     let v5 : bool = v3 = 0L                                                  │
00:00:35 #2156 [Verbose] > │     let v7 : bool =                                                          │
00:00:35 #2157 [Verbose] > │         if v5 then                                                           │
00:00:35 #2158 [Verbose] > │             true                                                             │
00:00:35 #2159 [Verbose] > │         else                                                                 │
00:00:35 #2160 [Verbose] > │             method1(v5)                                                      │
00:00:35 #2161 [Verbose] > │     let v8 : string = $"__expect / actual: %A{v3} / expected: %A{0L}"        │
00:00:35 #2162 [Verbose] > │     let v9 : bool = v7 = false                                               │
00:00:35 #2163 [Verbose] > │     if v9 then                                                               │
00:00:35 #2164 [Verbose] > │         failwith<unit> v8                                                    │
00:00:35 #2165 [Verbose] > │ method0()                                                                    │
00:00:35 #2166 [Verbose] > │                                                                              │
00:00:35 #2167 [Verbose] > │ 0L                                                                           │
00:00:35 #2168 [Verbose] > │                                                                              │
00:00:35 #2169 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:35 #2170 [Verbose] >
00:00:35 #2171 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:35 #2172 [Verbose] > // // test
00:00:35 #2173 [Verbose] >
00:00:35 #2174 [Verbose] > ticks_from_guid (guid.new_guid $'$"99999999-9999-9999-99{(!test_guid () |>
00:00:35 #2175 [Verbose] > string).[[^14..]]}"')
00:00:35 #2176 [Verbose] > |> _assert_eq (ticks 999999999999999999)
00:00:35 #2177 [Verbose] >
00:00:35 #2178 [Verbose] >
00:00:35 #2179 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:35 #2180 [Verbose] > // // test
00:00:35 #2181 [Verbose] >
00:00:35 #2182 [Verbose] > 100 |> log_base 10
00:00:35 #2183 [Verbose] > |> _assert_eq 2
00:00:35 #2184 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-0435-3567-39f6c6018350/main.spi
00:00:35 #2185 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-0439-3936-3f652265e7b1/main.spi
00:00:35 #2186 [Verbose] >
00:00:35 #2187 [Verbose] > ╭─[ 359.25ms - stdout ]────────────────────────────────────────────────────────╮
00:00:35 #2188 [Verbose] > │ let rec method1 (v0 : bool) : bool =                                         │
00:00:35 #2189 [Verbose] > │     v0                                                                       │
00:00:35 #2190 [Verbose] > │ and method0 () : unit =                                                      │
00:00:35 #2191 [Verbose] > │     let v0 : float = System.Math.Log (100.0, 10.0)                           │
00:00:35 #2192 [Verbose] > │     let v1 : string = $"%A{v0}"                                              │
00:00:35 #2193 [Verbose] > │     System.Console.WriteLine v1                                              │
00:00:35 #2194 [Verbose] > │     let v2 : bool = v0 = 2.0                                                 │
00:00:35 #2195 [Verbose] > │     let v4 : bool =                                                          │
00:00:35 #2196 [Verbose] > │         if v2 then                                                           │
00:00:35 #2197 [Verbose] > │             true                                                             │
00:00:35 #2198 [Verbose] > │         else                                                                 │
00:00:35 #2199 [Verbose] > │             method1(v2)                                                      │
00:00:35 #2200 [Verbose] > │     let v5 : string = $"__expect / actual: %A{v0} / expected: %A{2.0}"       │
00:00:35 #2201 [Verbose] > │     let v6 : bool = v4 = false                                               │
00:00:35 #2202 [Verbose] > │     if v6 then                                                               │
00:00:35 #2203 [Verbose] > │         failwith<unit> v5                                                    │
00:00:35 #2204 [Verbose] > │ method0()                                                                    │
00:00:35 #2205 [Verbose] > │                                                                              │
00:00:35 #2206 [Verbose] > │ 2.0                                                                          │
00:00:35 #2207 [Verbose] > │                                                                              │
00:00:35 #2208 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:35 #2209 [Verbose] >
00:00:35 #2210 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:35 #2211 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:35 #2212 [Verbose] > │ ## round                                                                     │
00:00:35 #2213 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:35 #2214 [Verbose] >
00:00:35 #2215 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:35 #2216 [Verbose] > inl round forall t {float}. (x : t) : t =
00:00:35 #2217 [Verbose] >     $"round !x"
00:00:35 #2218 [Verbose] >
00:00:35 #2219 [Verbose] > ╭─[ 473.94ms - stdout ]────────────────────────────────────────────────────────╮
00:00:35 #2220 [Verbose] > │ let rec closure0 () () : System.Guid =                                       │
00:00:35 #2221 [Verbose] > │     let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210"                 │
00:00:35 #2222 [Verbose] > │     let v1 : System.Guid = System.Guid v0                                    │
00:00:35 #2223 [Verbose] > │     v1                                                                       │
00:00:35 #2224 [Verbose] > │ and method1 (v0 : bool) : bool =                                             │
00:00:35 #2225 [Verbose] > │     v0                                                                       │
00:00:35 #2226 [Verbose] > │ and method0 () : unit =                                                      │
00:00:35 #2227 [Verbose] > │     let v0 : (unit -> System.Guid) = closure0()                              │
00:00:35 #2228 [Verbose] > │     let v1 : string = $"99999999-9999-9999-99{(v0 () |> string).[^14..]}"    │
00:00:35 #2229 [Verbose] > │     let v2 : System.Guid = System.Guid v1                                    │
00:00:35 #2230 [Verbose] > │     let v3 : string = v2.ToString ()                                         │
00:00:35 #2231 [Verbose] > │     let v4 : int64 = int64 $"{v3.[0..7]}{v3.[9..12]}{v3.[14..17]}{v3.[       │
00:00:35 #2232 [Verbose] > │ 19..20]}"                                                                    │
00:00:35 #2233 [Verbose] > │     let v5 : string = $"%A{v4}"                                              │
00:00:35 #2234 [Verbose] > │     System.Console.WriteLine v5                                              │
00:00:35 #2235 [Verbose] > │     let v6 : bool = v4 = 999999999999999999L                                 │
00:00:35 #2236 [Verbose] > │     let v8 : bool =                                                          │
00:00:35 #2237 [Verbose] > │         if v6 then                                                           │
00:00:35 #2238 [Verbose] > │             true                                                             │
00:00:35 #2239 [Verbose] > │         else                                                                 │
00:00:35 #2240 [Verbose] > │             method1(v6)                                                      │
00:00:35 #2241 [Verbose] > │     let v9 : string = $"__expect / actual: %A{v4} / expected:                │
00:00:35 #2242 [Verbose] > │ %A{999999999999999999L}"                                                     │
00:00:35 #2243 [Verbose] > │     let v10 : bool = v8 = false                                              │
00:00:35 #2244 [Verbose] > │     if v10 then                                                              │
00:00:35 #2245 [Verbose] > │         failwith<unit> v9                                                    │
00:00:35 #2246 [Verbose] > │ method0()                                                                    │
00:00:35 #2247 [Verbose] > │                                                                              │
00:00:35 #2248 [Verbose] > │ 999999999999999999L                                                          │
00:00:35 #2249 [Verbose] > │                                                                              │
00:00:35 #2250 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:35 #2251 [Verbose] >
00:00:35 #2252 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:35 #2253 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:35 #2254 [Verbose] > │ ## new_guid_from_date_time                                                   │
00:00:35 #2255 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:35 #2256 [Verbose] >
00:00:35 #2257 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:35 #2258 [Verbose] > inl new_guid_from_date_time (date_time : date_time) =
00:00:35 #2259 [Verbose] >     inl guid = guid.new_raw_guid ()
00:00:35 #2260 [Verbose] >     date_time_guid_from_date_time guid date_time
00:00:35 #2261 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-0474-7479-7dffb0fa278d/main.spi
00:00:35 #2262 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-0482-8260-8ac702dea53c/main.spi
00:00:35 #2263 [Verbose] >
00:00:35 #2264 [Verbose] > ╭─[ 259.50ms - stdout ]────────────────────────────────────────────────────────╮
00:00:35 #2265 [Verbose] > │ ()                                                                           │
00:00:35 #2266 [Verbose] > │                                                                              │
00:00:35 #2267 [Verbose] > │                                                                              │
00:00:35 #2268 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:35 #2269 [Verbose] >
00:00:35 #2270 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:35 #2271 [Verbose] > // // test
00:00:35 #2272 [Verbose] >
00:00:35 #2273 [Verbose] > 0.5 |> round
00:00:35 #2274 [Verbose] > |> _assert_eq 0f64
00:00:35 #2275 [Verbose] >
00:00:35 #2276 [Verbose] > ╭─[ 240.11ms - stdout ]────────────────────────────────────────────────────────╮
00:00:35 #2277 [Verbose] > │ ()                                                                           │
00:00:35 #2278 [Verbose] > │                                                                              │
00:00:35 #2279 [Verbose] > │                                                                              │
00:00:35 #2280 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:35 #2281 [Verbose] >
00:00:35 #2282 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:35 #2283 [Verbose] > // // test
00:00:35 #2284 [Verbose] >
00:00:35 #2285 [Verbose] > new_guid_from_date_time $'System.DateTime.UtcNow'
00:00:35 #2286 [Verbose] > |> date_time_from_guid
00:00:35 #2287 [Verbose] > |> fun date_time => $'(!date_time - System.DateTime.UtcNow).TotalSeconds' : f64
00:00:35 #2288 [Verbose] > |> i32
00:00:35 #2289 [Verbose] > |> _assert_eq 0
00:00:36 #2290 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-0506-0661-0f01a2b10b1b/main.spi
00:00:36 #2291 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-0500-0076-0b864baef98f/main.spi
00:00:36 #2292 [Verbose] >
00:00:36 #2293 [Verbose] > ╭─[ 410.97ms - stdout ]────────────────────────────────────────────────────────╮
00:00:36 #2294 [Verbose] > │ let rec closure2 (v0 : string, v1 : string) (v2 : string) : string =         │
00:00:36 #2295 [Verbose] > │     let v3 : string = v2.Replace (v0, v1)                                    │
00:00:36 #2296 [Verbose] > │     v3                                                                       │
00:00:36 #2297 [Verbose] > │ and closure1 (v0 : string) (v1 : string) : (string -> string) =              │
00:00:36 #2298 [Verbose] > │     closure2(v0, v1)                                                         │
00:00:36 #2299 [Verbose] > │ and closure0 () (v0 : string) : (string -> (string -> string)) =             │
00:00:36 #2300 [Verbose] > │     closure1(v0)                                                             │
00:00:36 #2301 [Verbose] > │ and method1 () : (string -> (string -> (string -> string))) =                │
00:00:36 #2302 [Verbose] > │     closure0()                                                               │
00:00:36 #2303 [Verbose] > │ and method2 (v0 : bool) : bool =                                             │
00:00:36 #2304 [Verbose] > │     v0                                                                       │
00:00:36 #2305 [Verbose] > │ and method0 () : unit =                                                      │
00:00:36 #2306 [Verbose] > │     let v0 : System.DateTime = System.DateTime.UtcNow                        │
00:00:36 #2307 [Verbose] > │     let v1 : System.Guid = System.Guid.NewGuid ()                            │
00:00:36 #2308 [Verbose] > │     let v2 : string = v1.ToString ()                                         │
00:00:36 #2309 [Verbose] > │     let v3 : string = v0.ToString "yyyyMMdd-HHmm-ssff-ffff-f"                │
00:00:36 #2310 [Verbose] > │     let v4 : System.Guid = System.Guid $"{v3}{v2.[v3.Length..]}"             │
00:00:36 #2311 [Verbose] > │     let v5 : string = v4.ToString ()                                         │
00:00:36 #2312 [Verbose] > │     let v6 : (string -> (string -> (string -> string))) = method1()          │
00:00:36 #2313 [Verbose] > │     let mutable result = None                                                │
00:00:36 #2314 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM                                         │
00:00:36 #2315 [Verbose] > │     let v7 : System.DateTime = System.DateTime.Parse (v5.[..24] |> v6 "-"    │
00:00:36 #2316 [Verbose] > │ "")                                                                          │
00:00:36 #2317 [Verbose] > │     v7                                                                       │
00:00:36 #2318 [Verbose] > │     #endif                                                                   │
00:00:36 #2319 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │
00:00:36 #2320 [Verbose] > │     let v8 : System.DateTime = System.DateTime.Parse (v5.[..24] |> v6 "-"    │
00:00:36 #2321 [Verbose] > │ "")                                                                          │
00:00:36 #2322 [Verbose] > │     v8                                                                       │
00:00:36 #2323 [Verbose] > │     #endif                                                                   │
00:00:36 #2324 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │
00:00:36 #2325 [Verbose] > │     let v9 : System.DateTime = System.DateTime.ParseExact (v5.[..24] |> v6   │
00:00:36 #2326 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null)                                       │
00:00:36 #2327 [Verbose] > │     v9                                                                       │
00:00:36 #2328 [Verbose] > │     #endif                                                                   │
00:00:36 #2329 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │
00:00:36 #2330 [Verbose] > │     let v10 : System.DateTime = System.DateTime.ParseExact (v5.[..24] |> v6  │
00:00:36 #2331 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null)                                       │
00:00:36 #2332 [Verbose] > │     v10                                                                      │
00:00:36 #2333 [Verbose] > │     #endif                                                                   │
00:00:36 #2334 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │
00:00:36 #2335 [Verbose] > │     let v11 : System.DateTime = System.DateTime.ParseExact (v5.[..24] |> v6  │
00:00:36 #2336 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null)                                       │
00:00:36 #2337 [Verbose] > │     v11                                                                      │
00:00:36 #2338 [Verbose] > │     #endif                                                                   │
00:00:36 #2339 [Verbose] > │     |> fun x -> result <- Some x                                             │
00:00:36 #2340 [Verbose] > │     let v12 : System.DateTime = result |> Option.get                         │
00:00:36 #2341 [Verbose] > │     let v13 : float = (v12 - System.DateTime.UtcNow).TotalSeconds            │
00:00:36 #2342 [Verbose] > │     let v14 : int32 = int32 v13                                              │
00:00:36 #2343 [Verbose] > │     let v15 : string = $"%A{v14}"                                            │
00:00:36 #2344 [Verbose] > │     System.Console.WriteLine v15                                             │
00:00:36 #2345 [Verbose] > │     let v16 : bool = v14 = 0                                                 │
00:00:36 #2346 [Verbose] > │     let v18 : bool =                                                         │
00:00:36 #2347 [Verbose] > │         if v16 then                                                          │
00:00:36 #2348 [Verbose] > │             true                                                             │
00:00:36 #2349 [Verbose] > │         else                                                                 │
00:00:36 #2350 [Verbose] > │             method2(v16)                                                     │
00:00:36 #2351 [Verbose] > │     let v19 : string = $"__expect / actual: %A{v14} / expected: %A{0}"       │
00:00:36 #2352 [Verbose] > │     let v20 : bool = v18 = false                                             │
00:00:36 #2353 [Verbose] > │     if v20 then                                                              │
00:00:36 #2354 [Verbose] > │         failwith<unit> v19                                                   │
00:00:36 #2355 [Verbose] > │ method0()                                                                    │
00:00:36 #2356 [Verbose] > │                                                                              │
00:00:36 #2357 [Verbose] > │ 0                                                                            │
00:00:36 #2358 [Verbose] > │                                                                              │
00:00:36 #2359 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:36 #2360 [Verbose] >
00:00:36 #2361 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:36 #2362 [Verbose] >
00:00:36 #2363 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:36 #2364 [Verbose] > │ ## new_guid_from_ticks                                                       │
00:00:36 #2365 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:36 #2367 [Verbose] >
00:00:36 #2366 [Verbose] > ╭─[ 498.51ms - stdout ]────────────────────────────────────────────────────────╮
00:00:36 #2368 [Verbose] > │ let rec method1 (v0 : bool) : bool =                                         │
00:00:36 #2369 [Verbose] > │     v0                                                                       │
00:00:36 #2370 [Verbose] > │ and method0 () : unit =                                                      │
00:00:36 #2371 [Verbose] > │     let v0 : float = round 0.5                                               │
00:00:36 #2372 [Verbose] > │     let v1 : string = $"%A{v0}"                                              │
00:00:36 #2373 [Verbose] > │     System.Console.WriteLine v1                                              │
00:00:36 #2374 [Verbose] > │     let v2 : bool = v0 = 0.0                                                 │
00:00:36 #2375 [Verbose] > │     let v4 : bool =                                                          │
00:00:36 #2376 [Verbose] > │         if v2 then                                                           │
00:00:36 #2377 [Verbose] > │             true                                                             │
00:00:36 #2378 [Verbose] > │         else                                                                 │
00:00:36 #2379 [Verbose] > │             method1(v2)                                                      │
00:00:36 #2380 [Verbose] > │     let v5 : string = $"__expect / actual: %A{v0} / expected: %A{0.0}"       │
00:00:36 #2381 [Verbose] > │     let v6 : bool = v4 = false                                               │
00:00:36 #2382 [Verbose] > │     if v6 then                                                               │
00:00:36 #2383 [Verbose] > │         failwith<unit> v5                                                    │
00:00:36 #2384 [Verbose] > │ method0()                                                                    │
00:00:36 #2385 [Verbose] > │                                                                              │
00:00:36 #2386 [Verbose] > │ 0.0                                                                          │
00:00:36 #2387 [Verbose] > │                                                                              │
00:00:36 #2388 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:36 #2389 [Verbose] >
00:00:36 #2390 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:36 #2391 [Verbose] > // // test
00:00:36 #2392 [Verbose] >
00:00:36 #2393 [Verbose] > 0.6 |> round
00:00:36 #2394 [Verbose] > |> _assert_eq 1f64
00:00:36 #2395 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:36 #2396 [Verbose] > inl new_guid_from_ticks (ticks : ticks) =
00:00:36 #2397 [Verbose] >     inl guid = guid.new_raw_guid ()
00:00:36 #2398 [Verbose] >     ticks_guid_from_ticks guid ticks
00:00:36 #2399 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-0550-5069-5d18448ff2fd/main.spi
00:00:36 #2400 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-0550-5074-55935fa3ba57/main.spi
00:00:36 #2401 [Verbose] >
00:00:36 #2402 [Verbose] > ╭─[ 330.14ms - stdout ]────────────────────────────────────────────────────────╮
00:00:36 #2403 [Verbose] > │ ()                                                                           │
00:00:36 #2404 [Verbose] > │                                                                              │
00:00:36 #2405 [Verbose] > │                                                                              │
00:00:36 #2406 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:36 #2407 [Verbose] >
00:00:36 #2408 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:36 #2409 [Verbose] > // // test
00:00:36 #2410 [Verbose] >
00:00:36 #2411 [Verbose] > new_guid_from_ticks $'System.DateTime.UtcNow.Ticks'
00:00:36 #2412 [Verbose] > |> ticks_from_guid
00:00:36 #2413 [Verbose] > |> fun ticks => $'(!ticks - System.DateTime.UtcNow.Ticks) / 100000L'
00:00:36 #2414 [Verbose] > |> _assert_eq 0i64
00:00:36 #2415 [Verbose] >
00:00:36 #2416 [Verbose] > ╭─[ 385.27ms - stdout ]────────────────────────────────────────────────────────╮
00:00:36 #2417 [Verbose] > │ let rec method1 (v0 : bool) : bool =                                         │
00:00:36 #2418 [Verbose] > │     v0                                                                       │
00:00:36 #2419 [Verbose] > │ and method0 () : unit =                                                      │
00:00:36 #2420 [Verbose] > │     let v0 : float = round 0.6                                               │
00:00:36 #2421 [Verbose] > │     let v1 : string = $"%A{v0}"                                              │
00:00:36 #2422 [Verbose] > │     System.Console.WriteLine v1                                              │
00:00:36 #2423 [Verbose] > │     let v2 : bool = v0 = 1.0                                                 │
00:00:36 #2424 [Verbose] > │     let v4 : bool =                                                          │
00:00:36 #2425 [Verbose] > │         if v2 then                                                           │
00:00:36 #2426 [Verbose] > │             true                                                             │
00:00:36 #2427 [Verbose] > │         else                                                                 │
00:00:36 #2428 [Verbose] > │             method1(v2)                                                      │
00:00:36 #2429 [Verbose] > │     let v5 : string = $"__expect / actual: %A{v0} / expected: %A{1.0}"       │
00:00:36 #2430 [Verbose] > │     let v6 : bool = v4 = false                                               │
00:00:36 #2431 [Verbose] > │     if v6 then                                                               │
00:00:36 #2432 [Verbose] > │         failwith<unit> v5                                                    │
00:00:36 #2433 [Verbose] > │ method0()                                                                    │
00:00:36 #2434 [Verbose] > │                                                                              │
00:00:36 #2435 [Verbose] > │ 1.0                                                                          │
00:00:36 #2436 [Verbose] > │                                                                              │
00:00:36 #2437 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:36 #2438 [Verbose] >
00:00:36 #2439 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:36 #2440 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:36 #2441 [Verbose] > │ ## square                                                                    │
00:00:36 #2442 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:36 #2443 [Verbose] >
00:00:36 #2444 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:36 #2445 [Verbose] > inl square x =
00:00:36 #2446 [Verbose] >     x ** 2
00:00:36 #2447 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-0583-8380-8aaaefd0f533/main.spi
00:00:36 #2448 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-0589-8944-8806e0e57d97/main.spi
00:00:36 #2449 [Verbose] >
00:00:36 #2450 [Verbose] > ╭─[ 240.23ms - stdout ]────────────────────────────────────────────────────────╮
00:00:36 #2451 [Verbose] > │ ()                                                                           │
00:00:36 #2452 [Verbose] > │                                                                              │
00:00:36 #2453 [Verbose] > │                                                                              │
00:00:36 #2454 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:36 #2455 [Verbose] >
00:00:36 #2456 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:36 #2457 [Verbose] > // // test
00:00:36 #2458 [Verbose] >
00:00:36 #2459 [Verbose] > 5f64
00:00:36 #2460 [Verbose] > |> sqrt
00:00:36 #2461 [Verbose] > |> square
00:00:36 #2462 [Verbose] > |> _assert_approx_eq None 5
00:00:37 #2463 [Verbose] >
00:00:37 #2464 [Verbose] > ╭─[ 342.32ms - stdout ]────────────────────────────────────────────────────────╮
00:00:37 #2465 [Verbose] > │ let rec method1 (v0 : bool) : bool =                                         │
00:00:37 #2466 [Verbose] > │     v0                                                                       │
00:00:37 #2467 [Verbose] > │ and method0 () : unit =                                                      │
00:00:37 #2468 [Verbose] > │     let v0 : int64 = System.DateTime.UtcNow.Ticks                            │
00:00:37 #2469 [Verbose] > │     let v1 : System.Guid = System.Guid.NewGuid ()                            │
00:00:37 #2470 [Verbose] > │     let v2 : string = v1.ToString ()                                         │
00:00:37 #2471 [Verbose] > │     let v3 : string = v0.ToString ()                                         │
00:00:37 #2472 [Verbose] > │     let v4 : string = v3.PadLeft (18, '0')                                   │
00:00:37 #2473 [Verbose] > │     let v5 : System.Guid = System.Guid $"{v4.[0..7]}-{v4.[8..11]}-{v4.[      │
00:00:37 #2474 [Verbose] > │ 12..15]}-{v4.[16..17]}{v2.[21..]}"                                           │
00:00:37 #2475 [Verbose] > │     let v6 : string = v5.ToString ()                                         │
00:00:37 #2476 [Verbose] > │     let v7 : int64 = int64 $"{v6.[0..7]}{v6.[9..12]}{v6.[14..17]}{v6.[       │
00:00:37 #2477 [Verbose] > │ 19..20]}"                                                                    │
00:00:37 #2478 [Verbose] > │     let v8 : int64 = (v7 - System.DateTime.UtcNow.Ticks) / 100000L           │
00:00:37 #2479 [Verbose] > │     let v9 : string = $"%A{v8}"                                              │
00:00:37 #2480 [Verbose] > │     System.Console.WriteLine v9                                              │
00:00:37 #2481 [Verbose] > │     let v10 : bool = v8 = 0L                                                 │
00:00:37 #2482 [Verbose] > │     let v12 : bool =                                                         │
00:00:37 #2483 [Verbose] > │         if v10 then                                                          │
00:00:37 #2484 [Verbose] > │             true                                                             │
00:00:37 #2485 [Verbose] > │         else                                                                 │
00:00:37 #2486 [Verbose] > │             method1(v10)                                                     │
00:00:37 #2487 [Verbose] > │     let v13 : string = $"__expect / actual: %A{v8} / expected: %A{0L}"       │
00:00:37 #2488 [Verbose] > │     let v14 : bool = v12 = false                                             │
00:00:37 #2489 [Verbose] > │     if v14 then                                                              │
00:00:37 #2490 [Verbose] > │         failwith<unit> v13                                                   │
00:00:37 #2491 [Verbose] > │ method0()                                                                    │
00:00:37 #2492 [Verbose] > │                                                                              │
00:00:37 #2493 [Verbose] > │ 0L                                                                           │
00:00:37 #2494 [Verbose] > │                                                                              │
00:00:37 #2495 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:37 #2496 [Verbose] >
00:00:37 #2497 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:37 #2498 [Verbose] > //// test
00:00:37 #2499 [Verbose] >
00:00:37 #2500 [Verbose] > type DateTimeWithZone = {
00:00:37 #2501 [Verbose] >     DateTime: System.DateTimeOffset
00:00:37 #2502 [Verbose] >     TimeZone: System.TimeZoneInfo
00:00:37 #2503 [Verbose] > }
00:00:37 #2504 [Verbose] >
00:00:37 #2505 [Verbose] > try
00:00:37 #2506 [Verbose] >     let now = System.DateTimeOffset.Now
00:00:37 #2507 [Verbose] >     let timeZoneInfo = System.TimeZoneInfo.Local
00:00:37 #2508 [Verbose] >     let dateTimeWithZone = { DateTime = now; TimeZone = timeZoneInfo }
00:00:37 #2509 [Verbose] >
00:00:37 #2510 [Verbose] >     printfn "DateTime: %O" dateTimeWithZone.DateTime
00:00:37 #2511 [Verbose] >     printfn "Time Zone: %s" dateTimeWithZone.TimeZone.DisplayName
00:00:37 #2512 [Verbose] >     printfn "Is DST: %b"
00:00:37 #2513 [Verbose] > (timeZoneInfo.IsDaylightSavingTime(dateTimeWithZone.DateTime.DateTime))
00:00:37 #2514 [Verbose] >     printfn "v1: %s" (dateTimeWithZone.TimeZone.GetUtcOffset(now) |> string)
00:00:37 #2515 [Verbose] >     printfn "v2: %s" (dateTimeWithZone.TimeZone |> string)
00:00:37 #2516 [Verbose] > with ex ->
00:00:37 #2517 [Verbose] >     printfn "error: %A" ex
00:00:37 #2518 [Verbose] >
00:00:37 #2519 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:37 #2520 [Verbose] > #r
00:00:37 #2521 [Verbose] > "/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Asp
00:00:37 #2522 [Verbose] > NetCore.Html.Abstractions.dll"
00:00:37 #2523 [Verbose] > #r
00:00:37 #2524 [Verbose] > "/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
00:00:37 #2525 [Verbose] > Net.Interactive.dll"
00:00:37 #2526 [Verbose] > #r
00:00:37 #2527 [Verbose] > "/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
00:00:37 #2528 [Verbose] > Net.Interactive.FSharp.dll"
00:00:37 #2529 [Verbose] > #r
00:00:37 #2530 [Verbose] > "/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
00:00:37 #2531 [Verbose] > Net.Interactive.Formatting.dll"
00:00:37 #2532 [Verbose] > open System
00:00:37 #2533 [Verbose] > open System.IO
00:00:37 #2534 [Verbose] > open System.Text
00:00:37 #2535 [Verbose] > open Microsoft.DotNet.Interactive.Formatting
00:00:37 #2536 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-0613-1356-1db7c85ebb6b/main.spi
00:00:37 #2537 [Verbose] >
00:00:37 #2538 [Verbose] > ╭─[ 632.08ms - stdout ]────────────────────────────────────────────────────────╮
00:00:37 #2539 [Verbose] > │ let rec method0 () : unit =                                                  │
00:00:37 #2540 [Verbose] > │     let v0 : string = $"%A{5.000000000000001}"                               │
00:00:37 #2541 [Verbose] > │     System.Console.WriteLine v0                                              │
00:00:37 #2542 [Verbose] > │     let v1 : string = $"__expect / actual: %A{5.000000000000001} / expected: │
00:00:37 #2543 [Verbose] > │ %A{5.0}"                                                                     │
00:00:37 #2544 [Verbose] > │     ()                                                                       │
00:00:37 #2545 [Verbose] > │ method0()                                                                    │
00:00:37 #2546 [Verbose] > │                                                                              │
00:00:37 #2547 [Verbose] > │ 5.0                                                                          │
00:00:37 #2548 [Verbose] > │                                                                              │
00:00:37 #2549 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:37 #2550 [Verbose] >
00:00:37 #2551 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:37 #2552 [Verbose] > // // test
00:00:37 #2553 [Verbose] >
00:00:37 #2554 [Verbose] > e () |> square
00:00:37 #2555 [Verbose] > |> _assert_approx_eq None 7.3890560989306495
00:00:37 #2556 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-0676-7676-70009e728a4f/main.spi
00:00:37 #2557 [Verbose] >
00:00:37 #2558 [Verbose] > ╭─[ 299.16ms - stdout ]────────────────────────────────────────────────────────╮
00:00:37 #2559 [Verbose] > │ let rec method0 () : unit =                                                  │
00:00:37 #2560 [Verbose] > │     let v0 : string = $"%A{7.3890560989306495}"                              │
00:00:37 #2561 [Verbose] > │     System.Console.WriteLine v0                                              │
00:00:37 #2562 [Verbose] > │     let v1 : string = $"__expect / actual: %A{7.3890560989306495} /          │
00:00:37 #2563 [Verbose] > │ expected: %A{7.3890560989306495}"                                            │
00:00:37 #2564 [Verbose] > │     ()                                                                       │
00:00:37 #2565 [Verbose] > │ method0()                                                                    │
00:00:37 #2566 [Verbose] > │                                                                              │
00:00:37 #2567 [Verbose] > │ 7.389056099                                                                  │
00:00:37 #2568 [Verbose] > │                                                                              │
00:00:37 #2569 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:38 #2570 [Verbose] >
00:00:38 #2571 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:38 #2572 [Verbose] > #r
00:00:38 #2573 [Verbose] > "/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
00:00:38 #2574 [Verbose] > Net.Interactive.FSharp.dll"
00:00:38 #2575 [Verbose] > open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
00:00:38 #2576 [Verbose] > #r
00:00:38 #2577 [Verbose] > "/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
00:00:38 #2578 [Verbose] > Net.Interactive.dll"
00:00:38 #2579 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel
00:00:39 #2580 [Verbose] >
00:00:39 #2581 [Verbose] > ╭─[ 2.24s - stdout ]───────────────────────────────────────────────────────────╮
00:00:39 #2582 [Verbose] > │ DateTime: 03/29/2024 22:07:08 +00:00                                         │
00:00:39 #2583 [Verbose] > │ Time Zone: (UTC) Coordinated Universal Time                                  │
00:00:39 #2584 [Verbose] > │ Is DST: false                                                                │
00:00:39 #2585 [Verbose] > │ v1: 00:00:00                                                                 │
00:00:39 #2586 [Verbose] > │ v2: (UTC) Coordinated Universal Time                                         │
00:00:39 #2587 [Verbose] > │                                                                              │
00:00:39 #2588 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:39 #2589 [Verbose] >
00:00:39 #2590 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:39 #2591 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:39 #2592 [Verbose] > │ ## main                                                                      │
00:00:39 #2593 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:39 #2594 [Verbose] >
00:00:39 #2595 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:39 #2596 [Verbose] > inl main () =
00:00:39 #2597 [Verbose] >     $"let date_time_guid_from_date_time x = !date_time_guid_from_date_time x" :
00:00:39 #2598 [Verbose] > ()
00:00:39 #2599 [Verbose] >     $"let date_time_from_guid x = !date_time_from_guid x" : ()
00:00:39 #2600 [Verbose] >     $"let ticks_guid_from_ticks x = !ticks_guid_from_ticks x" : ()
00:00:39 #2601 [Verbose] >     $"let ticks_from_guid x = !ticks_from_guid x" : ()
00:00:39 #2602 [Verbose] >     $"let new_guid_from_date_time x = !new_guid_from_date_time x" : ()
00:00:39 #2603 [Verbose] >     $"let new_guid_from_ticks x = !new_guid_from_ticks x" : ()
00:00:39 #2604 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-0842-4287-4905d206641f/main.spi
00:00:39 #2605 [Verbose] >
00:00:39 #2606 [Verbose] > ╭─[ 404.43ms - stdout ]────────────────────────────────────────────────────────╮
00:00:39 #2607 [Verbose] > │ let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =   │
00:00:39 #2608 [Verbose] > │     let v2 : string = v0.ToString ()                                         │
00:00:39 #2609 [Verbose] > │     let v3 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"                │
00:00:39 #2610 [Verbose] > │     let v4 : System.Guid = System.Guid $"{v3}{v2.[v3.Length..]}"             │
00:00:39 #2611 [Verbose] > │     v4                                                                       │
00:00:39 #2612 [Verbose] > │ and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =      │
00:00:39 #2613 [Verbose] > │     closure1(v0)                                                             │
00:00:39 #2614 [Verbose] > │ and closure5 (v0 : string, v1 : string) (v2 : string) : string =             │
00:00:39 #2615 [Verbose] > │     let v3 : string = v2.Replace (v0, v1)                                    │
00:00:39 #2616 [Verbose] > │     v3                                                                       │
00:00:39 #2617 [Verbose] > │ and closure4 (v0 : string) (v1 : string) : (string -> string) =              │
00:00:39 #2618 [Verbose] > │     closure5(v0, v1)                                                         │
00:00:39 #2619 [Verbose] > │ and closure3 () (v0 : string) : (string -> (string -> string)) =             │
00:00:39 #2620 [Verbose] > │     closure4(v0)                                                             │
00:00:39 #2621 [Verbose] > │ and method0 () : (string -> (string -> (string -> string))) =                │
00:00:39 #2622 [Verbose] > │     closure3()                                                               │
00:00:39 #2623 [Verbose] > │ and closure2 () (v0 : System.Guid) : System.DateTime =                       │
00:00:39 #2624 [Verbose] > │     let v1 : string = v0.ToString ()                                         │
00:00:39 #2625 [Verbose] > │     let v2 : (string -> (string -> (string -> string))) = method0()          │
00:00:39 #2626 [Verbose] > │     let mutable result = None                                                │
00:00:39 #2627 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM                                         │
00:00:39 #2628 [Verbose] > │     let v3 : System.DateTime = System.DateTime.Parse (v1.[..24] |> v2 "-"    │
00:00:39 #2629 [Verbose] > │ "")                                                                          │
00:00:39 #2630 [Verbose] > │     v3                                                                       │
00:00:39 #2631 [Verbose] > │     #endif                                                                   │
00:00:39 #2632 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │
00:00:39 #2633 [Verbose] > │     let v4 : System.DateTime = System.DateTime.Parse (v1.[..24] |> v2 "-"    │
00:00:39 #2634 [Verbose] > │ "")                                                                          │
00:00:39 #2635 [Verbose] > │     v4                                                                       │
00:00:39 #2636 [Verbose] > │     #endif                                                                   │
00:00:39 #2637 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │
00:00:39 #2638 [Verbose] > │     let v5 : System.DateTime = System.DateTime.ParseExact (v1.[..24] |> v2   │
00:00:39 #2639 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null)                                       │
00:00:39 #2640 [Verbose] > │     v5                                                                       │
00:00:39 #2641 [Verbose] > │     #endif                                                                   │
00:00:39 #2642 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │
00:00:39 #2643 [Verbose] > │     let v6 : System.DateTime = System.DateTime.ParseExact (v1.[..24] |> v2   │
00:00:39 #2644 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null)                                       │
00:00:39 #2645 [Verbose] > │     v6                                                                       │
00:00:39 #2646 [Verbose] > │     #endif                                                                   │
00:00:39 #2647 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │
00:00:39 #2648 [Verbose] > │     let v7 : System.DateTime = System.DateTime.ParseExact (v1.[..24] |> v2   │
00:00:39 #2649 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null)                                       │
00:00:39 #2650 [Verbose] > │     v7                                                                       │
00:00:39 #2651 [Verbose] > │     #endif                                                                   │
00:00:39 #2652 [Verbose] > │     |> fun x -> result <- Some x                                             │
00:00:39 #2653 [Verbose] > │     let v8 : System.DateTime = result |> Option.get                          │
00:00:39 #2654 [Verbose] > │     v8                                                                       │
00:00:39 #2655 [Verbose] > │ and closure7 (v0 : System.Guid) (v1 : int64) : System.Guid =                 │
00:00:39 #2656 [Verbose] > │     let v2 : string = v0.ToString ()                                         │
00:00:39 #2657 [Verbose] > │     let v3 : string = v1.ToString ()                                         │
00:00:39 #2658 [Verbose] > │     let v4 : string = v3.PadLeft (18, '0')                                   │
00:00:39 #2659 [Verbose] > │     let v5 : System.Guid = System.Guid $"{v4.[0..7]}-{v4.[8..11]}-{v4.[      │
00:00:39 #2660 [Verbose] > │ 12..15]}-{v4.[16..17]}{v2.[21..]}"                                           │
00:00:39 #2661 [Verbose] > │     v5                                                                       │
00:00:39 #2662 [Verbose] > │ and closure6 () (v0 : System.Guid) : (int64 -> System.Guid) =                │
00:00:39 #2663 [Verbose] > │     closure7(v0)                                                             │
00:00:39 #2664 [Verbose] > │ and closure8 () (v0 : System.Guid) : int64 =                                 │
00:00:39 #2665 [Verbose] > │     let v1 : string = v0.ToString ()                                         │
00:00:39 #2666 [Verbose] > │     let v2 : int64 = int64 $"{v1.[0..7]}{v1.[9..12]}{v1.[14..17]}{v1.[       │
00:00:39 #2667 [Verbose] > │ 19..20]}"                                                                    │
00:00:39 #2668 [Verbose] > │     v2                                                                       │
00:00:39 #2669 [Verbose] > │ and closure9 () (v0 : System.DateTime) : System.Guid =                       │
00:00:39 #2670 [Verbose] > │     let v1 : System.Guid = System.Guid.NewGuid ()                            │
00:00:39 #2671 [Verbose] > │     let v2 : string = v1.ToString ()                                         │
00:00:39 #2672 [Verbose] > │     let v3 : string = v0.ToString "yyyyMMdd-HHmm-ssff-ffff-f"                │
00:00:39 #2673 [Verbose] > │     let v4 : System.Guid = System.Guid $"{v3}{v2.[v3.Length..]}"             │
00:00:39 #2674 [Verbose] > │     v4                                                                       │
00:00:39 #2675 [Verbose] > │ and closure10 () (v0 : int64) : System.Guid =                                │
00:00:39 #2676 [Verbose] > │     let v1 : System.Guid = System.Guid.NewGuid ()                            │
00:00:39 #2677 [Verbose] > │     let v2 : string = v1.ToString ()                                         │
00:00:39 #2678 [Verbose] > │     let v3 : string = v0.ToString ()                                         │
00:00:39 #2679 [Verbose] > │     let v4 : string = v3.PadLeft (18, '0')                                   │
00:00:39 #2680 [Verbose] > │     let v5 : System.Guid = System.Guid $"{v4.[0..7]}-{v4.[8..11]}-{v4.[      │
00:00:39 #2681 [Verbose] > │ 12..15]}-{v4.[16..17]}{v2.[21..]}"                                           │
00:00:39 #2682 [Verbose] > │     v5                                                                       │
00:00:39 #2683 [Verbose] > │ let v0 : (System.Guid -> (System.DateTime -> System.Guid)) = closure0()      │
00:00:39 #2684 [Verbose] > │ let date_time_guid_from_date_time x = v0 x                                   │
00:00:39 #2685 [Verbose] > │ let v1 : (System.Guid -> System.DateTime) = closure2()                       │
00:00:39 #2686 [Verbose] > │ let date_time_from_guid x = v1 x                                             │
00:00:39 #2687 [Verbose] > │ let v2 : (System.Guid -> (int64 -> System.Guid)) = closure6()                │
00:00:39 #2688 [Verbose] > │ let ticks_guid_from_ticks x = v2 x                                           │
00:00:39 #2689 [Verbose] > │ let v3 : (System.Guid -> int64) = closure8()                                 │
00:00:39 #2690 [Verbose] > │ let ticks_from_guid x = v3 x                                                 │
00:00:39 #2691 [Verbose] > │ let v4 : (System.DateTime -> System.Guid) = closure9()                       │
00:00:39 #2692 [Verbose] > │ let new_guid_from_date_time x = v4 x                                         │
00:00:39 #2693 [Verbose] > │ let v5 : (int64 -> System.Guid) = closure10()                                │
00:00:39 #2694 [Verbose] > │ let new_guid_from_ticks x = v5 x                                             │
00:00:39 #2695 [Verbose] > │ ()                                                                           │
00:00:39 #2696 [Verbose] > │                                                                              │
00:00:39 #2697 [Verbose] > │                                                                              │
00:00:39 #2698 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:40 #2699 [Verbose] > [NbConvertApp] Converting notebook math.dib.ipynb to html
00:00:40 #2700 [Verbose] > /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:00:40 #2701 [Verbose] >   validate(nb)
00:00:41 #2702 [Verbose] > [NbConvertApp] Converting notebook date_time.dib.ipynb to html
00:00:41 #2703 [Verbose] > /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:00:41 #2704 [Verbose] >   validate(nb)
00:00:41 #2705 [Verbose] > /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:00:41 #2706 [Verbose] >   return _pygments_highlight(
00:00:42 #2707 [Verbose] > [NbConvertApp] Writing 303991 bytes to math.dib.html
00:00:42 #2708 [Verbose] > /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:00:42 #2709 [Verbose] >   return _pygments_highlight(
00:00:42 #2710 [Debug] executeAsync / exitCode: 0 / output.Length: 32724
00:00:42 #2711 [Debug] main / executeCommand / exitCode: 0
00:00:42 #2712 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 \"optionm'.dib\"""
  WorkingDirectory = None
  CancellationToken = Some System.Threading.CancellationToken
  OnLine = None }
00:00:43 #2713 [Verbose] > [NbConvertApp] Writing 356564 bytes to date_time.dib.html
00:00:44 #2714 [Debug] executeAsync / exitCode: 0 / output.Length: 95520
00:00:44 #2715 [Debug] main / executeCommand / exitCode: 0
00:00:44 #2716 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 \"am'.dib\"""
  WorkingDirectory = None
  CancellationToken = Some System.Threading.CancellationToken
  OnLine = None }
00:00:47 #2717 [Verbose] >
00:00:47 #2718 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:47 #2719 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:47 #2720 [Verbose] > │ # optionm                                                                    │
00:00:47 #2721 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:47 #2722 [Verbose] >
00:00:47 #2723 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:47 #2724 [Verbose] > // // test
00:00:47 #2725 [Verbose] >
00:00:47 #2726 [Verbose] > open testing
00:00:49 #2727 [Verbose] >
00:00:49 #2728 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:49 #2729 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:49 #2730 [Verbose] > │ # am'                                                                        │
00:00:49 #2731 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:49 #2732 [Verbose] >
00:00:49 #2733 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:49 #2734 [Verbose] > // // test
00:00:49 #2735 [Verbose] >
00:00:49 #2736 [Verbose] > open testing
00:00:49 #2737 [Verbose] >
00:00:49 #2738 [Verbose] > prototype append t : t -> t -> t
00:00:51 #2739 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-2001-0179-01010ae30397/main.spi
00:00:53 #2740 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-2134-3407-34a7a4ebdd01/main.spi
00:00:53 #2741 [Verbose] >
00:00:53 #2742 [Verbose] > ╭─[ 6.18s - stdout ]───────────────────────────────────────────────────────────╮
00:00:53 #2743 [Verbose] > │ ()                                                                           │
00:00:53 #2744 [Verbose] > │                                                                              │
00:00:53 #2745 [Verbose] > │                                                                              │
00:00:53 #2746 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:53 #2747 [Verbose] >
00:00:53 #2748 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:53 #2749 [Verbose] > open rust_operators
00:00:53 #2750 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-2287-8792-8332f87104ab/main.spi
00:00:54 #2751 [Verbose] >
00:00:54 #2752 [Verbose] > ╭─[ 327.90ms - stdout ]────────────────────────────────────────────────────────╮
00:00:54 #2753 [Verbose] > │ ()                                                                           │
00:00:54 #2754 [Verbose] > │                                                                              │
00:00:54 #2755 [Verbose] > │                                                                              │
00:00:54 #2756 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:54 #2757 [Verbose] >
00:00:54 #2758 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:54 #2759 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:54 #2760 [Verbose] > │ ## default_value                                                             │
00:00:54 #2761 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:54 #2762 [Verbose] >
00:00:54 #2763 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:54 #2764 [Verbose] > inl default_value d =
00:00:54 #2765 [Verbose] >     optionm.defaultWith d
00:00:54 #2766 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-2320-2021-2edff5df95f0/main.spi
00:00:55 #2767 [Verbose] >
00:00:55 #2768 [Verbose] > ╭─[ 5.83s - stdout ]───────────────────────────────────────────────────────────╮
00:00:55 #2769 [Verbose] > │ ()                                                                           │
00:00:55 #2770 [Verbose] > │                                                                              │
00:00:55 #2771 [Verbose] > │                                                                              │
00:00:55 #2772 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:55 #2773 [Verbose] >
00:00:55 #2774 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:55 #2775 [Verbose] > open rust_operators
00:00:57 #2776 [Verbose] >
00:00:57 #2777 [Verbose] > ╭─[ 3.19s - stdout ]───────────────────────────────────────────────────────────╮
00:00:57 #2778 [Verbose] > │ ()                                                                           │
00:00:57 #2779 [Verbose] > │                                                                              │
00:00:57 #2780 [Verbose] > │                                                                              │
00:00:57 #2781 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:57 #2782 [Verbose] >
00:00:57 #2783 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:57 #2784 [Verbose] > // // test
00:00:57 #2785 [Verbose] >
00:00:57 #2786 [Verbose] > None
00:00:57 #2787 [Verbose] > |> default_value 3i32
00:00:57 #2788 [Verbose] > |> _assert_eq 3i32
00:00:57 #2789 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-2420-2017-2bc52ada5746/main.spi
00:00:57 #2790 [Verbose] >
00:00:57 #2791 [Verbose] > ╭─[ 2.32s - stdout ]───────────────────────────────────────────────────────────╮
00:00:57 #2792 [Verbose] > │ ()                                                                           │
00:00:57 #2793 [Verbose] > │                                                                              │
00:00:57 #2794 [Verbose] > │                                                                              │
00:00:57 #2795 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:57 #2796 [Verbose] >
00:00:57 #2797 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:57 #2798 [Verbose] > inl types () =
00:00:57 #2799 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"[[$0]]\")>]] type Slice<'T> =
00:00:57 #2800 [Verbose] > class end"
00:00:57 #2801 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"[[$0; $1]]\")>]] type
00:00:57 #2802 [Verbose] > Slice'<'T, 'U> = class end"
00:00:57 #2803 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"Vec<$0>\")>]] type Vec<'T> =
00:00:57 #2804 [Verbose] > class end"
00:00:57 #2805 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-2639-3904-3530a595ded3/main.spi
00:00:57 #2806 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-2652-5254-5926b72721b2/main.spi
00:00:57 #2807 [Verbose] >
00:00:57 #2808 [Verbose] > ╭─[ 197.33ms - stdout ]────────────────────────────────────────────────────────╮
00:00:57 #2809 [Verbose] > │ ()                                                                           │
00:00:57 #2810 [Verbose] > │                                                                              │
00:00:57 #2811 [Verbose] > │                                                                              │
00:00:57 #2812 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:57 #2813 [Verbose] >
00:00:57 #2814 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:57 #2815 [Verbose] > nominal slice t = $"Slice<`t>"
00:00:57 #2816 [Verbose] > nominal slice' t u = $"Slice'<`t, `u>"
00:00:57 #2817 [Verbose] > nominal vec t = $"Vec<`t>"
00:00:57 #2818 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-2672-7247-7e46e398969a/main.spi
00:00:57 #2819 [Verbose] >
00:00:57 #2820 [Verbose] > ╭─[ 237.79ms - stdout ]────────────────────────────────────────────────────────╮
00:00:57 #2821 [Verbose] > │ ()                                                                           │
00:00:57 #2822 [Verbose] > │                                                                              │
00:00:57 #2823 [Verbose] > │                                                                              │
00:00:57 #2824 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:57 #2825 [Verbose] >
00:00:57 #2826 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:57 #2827 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:57 #2828 [Verbose] > │ ## append                                                                    │
00:00:57 #2829 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:57 #2830 [Verbose] >
00:00:57 #2831 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:57 #2832 [Verbose] > instance append a dim {int; number} t =
00:00:57 #2833 [Verbose] >     am.append
00:00:57 #2834 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-2695-9582-9f7d67f072c2/main.spi
00:00:58 #2835 [Verbose] >
00:00:58 #2836 [Verbose] > ╭─[ 224.10ms - stdout ]────────────────────────────────────────────────────────╮
00:00:58 #2837 [Verbose] > │ ()                                                                           │
00:00:58 #2838 [Verbose] > │                                                                              │
00:00:58 #2839 [Verbose] > │                                                                              │
00:00:58 #2840 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:58 #2841 [Verbose] >
00:00:58 #2842 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:58 #2843 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:58 #2844 [Verbose] > │ ## /@                                                                        │
00:00:58 #2845 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:58 #2846 [Verbose] >
00:00:58 #2847 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:58 #2848 [Verbose] > inl (/@) a b =
00:00:58 #2849 [Verbose] >     b |> append a
00:00:58 #2850 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-2718-1843-1a5549d91d6b/main.spi
00:00:58 #2851 [Verbose] >
00:00:58 #2852 [Verbose] > ╭─[ 202.20ms - stdout ]────────────────────────────────────────────────────────╮
00:00:58 #2853 [Verbose] > │ ()                                                                           │
00:00:58 #2854 [Verbose] > │                                                                              │
00:00:58 #2855 [Verbose] > │                                                                              │
00:00:58 #2856 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:58 #2857 [Verbose] >
00:00:58 #2858 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:58 #2859 [Verbose] > // // test
00:00:58 #2860 [Verbose] >
00:00:58 #2861 [Verbose] > a ;[[ "a"; "b" ]] /@ a ;[[ "c"; "d" ]]
00:00:58 #2862 [Verbose] > |> _assert_eq (a ;[[ "a"; "b"; "c"; "d" ]] : _ i32 _)
00:00:58 #2863 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-2738-3874-36b27d1c84fe/main.spi
00:00:58 #2864 [Verbose] >
00:00:58 #2865 [Verbose] > ╭─[ 1.19s - stdout ]───────────────────────────────────────────────────────────╮
00:00:58 #2866 [Verbose] > │ let rec method0 () : unit =                                                  │
00:00:58 #2867 [Verbose] > │     let v0 : string = $"%A{3}"                                               │
00:00:58 #2868 [Verbose] > │     System.Console.WriteLine v0                                              │
00:00:58 #2869 [Verbose] > │     let v1 : string = $"__expect / actual: %A{3} / expected: %A{3}"          │
00:00:58 #2870 [Verbose] > │     ()                                                                       │
00:00:58 #2871 [Verbose] > │ method0()                                                                    │
00:00:58 #2872 [Verbose] > │                                                                              │
00:00:58 #2873 [Verbose] > │ 3                                                                            │
00:00:58 #2874 [Verbose] > │                                                                              │
00:00:58 #2875 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:58 #2876 [Verbose] >
00:00:58 #2877 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:58 #2878 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:58 #2879 [Verbose] > │ ## (/??)                                                                     │
00:00:58 #2880 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:58 #2881 [Verbose] >
00:00:58 #2882 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:58 #2883 [Verbose] > inl (/??) a b =
00:00:58 #2884 [Verbose] >     a |> default_value b
00:00:58 #2885 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-2759-5937-54fc14e39cf9/main.spi
00:00:58 #2886 [Verbose] >
00:00:58 #2887 [Verbose] > ╭─[ 229.56ms - stdout ]────────────────────────────────────────────────────────╮
00:00:58 #2888 [Verbose] > │ ()                                                                           │
00:00:58 #2889 [Verbose] > │                                                                              │
00:00:58 #2890 [Verbose] > │                                                                              │
00:00:58 #2891 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:58 #2892 [Verbose] >
00:00:58 #2893 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:58 #2894 [Verbose] > // // test
00:00:58 #2895 [Verbose] >
00:00:58 #2896 [Verbose] > None /?? 3i32
00:00:58 #2897 [Verbose] > |> _assert_eq 3i32
00:00:58 #2898 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-2782-8254-85bd5bf0819c/main.spi
00:00:58 #2899 [Verbose] >
00:00:58 #2900 [Verbose] > ╭─[ 250.46ms - stdout ]────────────────────────────────────────────────────────╮
00:00:58 #2901 [Verbose] > │ let rec method0 () : unit =                                                  │
00:00:58 #2902 [Verbose] > │     let v0 : string = $"%A{3}"                                               │
00:00:58 #2903 [Verbose] > │     System.Console.WriteLine v0                                              │
00:00:58 #2904 [Verbose] > │     let v1 : string = $"__expect / actual: %A{3} / expected: %A{3}"          │
00:00:58 #2905 [Verbose] > │     ()                                                                       │
00:00:58 #2906 [Verbose] > │ method0()                                                                    │
00:00:58 #2907 [Verbose] > │                                                                              │
00:00:58 #2908 [Verbose] > │ 3                                                                            │
00:00:58 #2909 [Verbose] > │                                                                              │
00:00:58 #2910 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:58 #2911 [Verbose] >
00:00:58 #2912 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:58 #2913 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:58 #2914 [Verbose] > │ ## default_with                                                              │
00:00:58 #2915 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:58 #2916 [Verbose] >
00:00:58 #2917 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:58 #2918 [Verbose] > inl default_with fn =
00:00:58 #2919 [Verbose] >     function Some x => x | None => fn ()
00:00:59 #2920 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-2808-0859-01fb091e76c4/main.spi
00:00:59 #2921 [Verbose] >
00:00:59 #2922 [Verbose] > ╭─[ 233.32ms - stdout ]────────────────────────────────────────────────────────╮
00:00:59 #2923 [Verbose] > │ ()                                                                           │
00:00:59 #2924 [Verbose] > │                                                                              │
00:00:59 #2925 [Verbose] > │                                                                              │
00:00:59 #2926 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:59 #2927 [Verbose] >
00:00:59 #2928 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:59 #2929 [Verbose] > // // test
00:00:59 #2930 [Verbose] >
00:00:59 #2931 [Verbose] > None
00:00:59 #2932 [Verbose] > |> default_with (fun () => 3i32)
00:00:59 #2933 [Verbose] > |> _assert_eq 3i32
00:00:59 #2934 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-2831-3194-38bc1c22a0b4/main.spi
00:00:59 #2935 [Verbose] >
00:00:59 #2936 [Verbose] > ╭─[ 240.69ms - stdout ]────────────────────────────────────────────────────────╮
00:00:59 #2937 [Verbose] > │ let rec method0 () : unit =                                                  │
00:00:59 #2938 [Verbose] > │     let v0 : string = $"%A{3}"                                               │
00:00:59 #2939 [Verbose] > │     System.Console.WriteLine v0                                              │
00:00:59 #2940 [Verbose] > │     let v1 : string = $"__expect / actual: %A{3} / expected: %A{3}"          │
00:00:59 #2941 [Verbose] > │     ()                                                                       │
00:00:59 #2942 [Verbose] > │ method0()                                                                    │
00:00:59 #2943 [Verbose] > │                                                                              │
00:00:59 #2944 [Verbose] > │ 3                                                                            │
00:00:59 #2945 [Verbose] > │                                                                              │
00:00:59 #2946 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:59 #2947 [Verbose] >
00:00:59 #2948 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:59 #2949 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:59 #2950 [Verbose] > │ ## choose                                                                    │
00:00:59 #2951 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:59 #2952 [Verbose] >
00:00:59 #2953 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:59 #2954 [Verbose] > inl choose fn a b =
00:00:59 #2955 [Verbose] >     match a, b with
00:00:59 #2956 [Verbose] >     | Some x, Some y => fn x y |> Some
00:00:59 #2957 [Verbose] >     | _ => None
00:00:59 #2958 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-2856-5618-5d4fef4fe72e/main.spi
00:00:59 #2959 [Verbose] >
00:00:59 #2960 [Verbose] > ╭─[ 244.05ms - stdout ]────────────────────────────────────────────────────────╮
00:00:59 #2961 [Verbose] > │ ()                                                                           │
00:00:59 #2962 [Verbose] > │                                                                              │
00:00:59 #2963 [Verbose] > │                                                                              │
00:00:59 #2964 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:59 #2965 [Verbose] >
00:00:59 #2966 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:59 #2967 [Verbose] > // // test
00:00:59 #2968 [Verbose] >
00:00:59 #2969 [Verbose] > (Some 2i32, Some 3)
00:00:59 #2970 [Verbose] > ||> choose (+)
00:00:59 #2971 [Verbose] > |> _assert_eq (Some 5)
00:00:59 #2972 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-2880-8074-87d5436a167d/main.spi
00:00:59 #2973 [Verbose] >
00:00:59 #2974 [Verbose] >
00:00:59 #2975 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:59 #2976 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:59 #2977 [Verbose] > │ ## iter                                                                      │
00:00:59 #2978 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:59 #2979 [Verbose] >
00:00:59 #2980 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:59 #2981 [Verbose] > inl iter fn = function
00:00:59 #2982 [Verbose] >     | Some x => fn x
00:00:59 #2983 [Verbose] >     | None => ()
00:00:59 #2984 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-2901-0106-07710c220a0a/main.spi
00:01:00 #2985 [Verbose] >
00:01:00 #2986 [Verbose] > ╭─[ 199.02ms - stdout ]────────────────────────────────────────────────────────╮
00:01:00 #2987 [Verbose] > │ ()                                                                           │
00:01:00 #2988 [Verbose] > │                                                                              │
00:01:00 #2989 [Verbose] > │                                                                              │
00:01:00 #2990 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:00 #2991 [Verbose] >
00:01:00 #2992 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:00 #2993 [Verbose] > // // test
00:01:00 #2994 [Verbose] >
00:01:00 #2995 [Verbose] > inl n = mut 1i32
00:01:00 #2996 [Verbose] > inl fn =
00:01:00 #2997 [Verbose] >     fun n' =>
00:01:00 #2998 [Verbose] >         n <- *n + n'
00:01:00 #2999 [Verbose] > Some 1i32 |> iter fn
00:01:00 #3000 [Verbose] > None |> iter fn
00:01:00 #3001 [Verbose] > *n
00:01:00 #3002 [Verbose] > |> _assert_eq 2i32
00:01:00 #3003 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-2921-2104-2448b534fdeb/main.spi
00:01:00 #3004 [Verbose] >
00:01:00 #3005 [Verbose] > ╭─[ 2.34s - stdout ]───────────────────────────────────────────────────────────╮
00:01:00 #3006 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │
00:01:00 #3007 [Verbose] > │ let rec method1 (v0 : (string [])) : (string []) =                           │
00:01:00 #3008 [Verbose] > │     v0                                                                       │
00:01:00 #3009 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool =                                 │
00:01:00 #3010 [Verbose] > │     let v2 : int32 = v1.l0                                                   │
00:01:00 #3011 [Verbose] > │     let v3 : bool = v2 < v0                                                  │
00:01:00 #3012 [Verbose] > │     v3                                                                       │
00:01:00 #3013 [Verbose] > │ and method3 (v0 : (string []), v1 : (string []), v2 : int32) : bool =        │
00:01:00 #3014 [Verbose] > │     let v3 : int32 = v0.Length                                               │
00:01:00 #3015 [Verbose] > │     let v4 : bool = v2 < v3                                                  │
00:01:00 #3016 [Verbose] > │     if v4 then                                                               │
00:01:00 #3017 [Verbose] > │         let v5 : string = v0.[int v2]                                        │
00:01:00 #3018 [Verbose] > │         let v6 : string = v1.[int v2]                                        │
00:01:00 #3019 [Verbose] > │         let v7 : bool = v5 = v6                                              │
00:01:00 #3020 [Verbose] > │         if v7 then                                                           │
00:01:00 #3021 [Verbose] > │             let v8 : int32 = v2 + 1                                          │
00:01:00 #3022 [Verbose] > │             method3(v0, v1, v8)                                              │
00:01:00 #3023 [Verbose] > │         else                                                                 │
00:01:00 #3024 [Verbose] > │             false                                                            │
00:01:00 #3025 [Verbose] > │     else                                                                     │
00:01:00 #3026 [Verbose] > │         true                                                                 │
00:01:00 #3027 [Verbose] > │ and method4 (v0 : bool) : bool =                                             │
00:01:00 #3028 [Verbose] > │     v0                                                                       │
00:01:00 #3029 [Verbose] > │ and method0 () : unit =                                                      │
00:01:00 #3030 [Verbose] > │     let v0 : string = "a"                                                    │
00:01:00 #3031 [Verbose] > │     let v1 : string = "b"                                                    │
00:01:00 #3032 [Verbose] > │     let v2 : (string []) = [|v0; v1|]                                        │
00:01:00 #3033 [Verbose] > │     let v3 : (string []) = method1(v2)                                       │
00:01:00 #3034 [Verbose] > │     let v4 : string = "c"                                                    │
00:01:00 #3035 [Verbose] > │     let v5 : string = "d"                                                    │
00:01:00 #3036 [Verbose] > │     let v6 : (string []) = [|v4; v5|]                                        │
00:01:00 #3037 [Verbose] > │     let v7 : (string []) = method1(v6)                                       │
00:01:00 #3038 [Verbose] > │     let v8 : int32 = v3.Length                                               │
00:01:00 #3039 [Verbose] > │     let v9 : int32 = v7.Length                                               │
00:01:00 #3040 [Verbose] > │     let v10 : int32 = v8 + v9                                                │
00:01:00 #3041 [Verbose] > │     let v11 : (string []) = Array.zeroCreate<string> (v10)                   │
00:01:00 #3042 [Verbose] > │     let v12 : Mut0 = {l0 = 0} : Mut0                                         │
00:01:00 #3043 [Verbose] > │     while method2(v10, v12) do                                               │
00:01:00 #3044 [Verbose] > │         let v14 : int32 = v12.l0                                             │
00:01:00 #3045 [Verbose] > │         let v15 : bool = v14 < v8                                            │
00:01:00 #3046 [Verbose] > │         let v19 : string =                                                   │
00:01:00 #3047 [Verbose] > │             if v15 then                                                      │
00:01:00 #3048 [Verbose] > │                 let v16 : string = v3.[int v14]                              │
00:01:00 #3049 [Verbose] > │                 v16                                                          │
00:01:00 #3050 [Verbose] > │             else                                                             │
00:01:00 #3051 [Verbose] > │                 let v17 : int32 = v14 - v8                                   │
00:01:00 #3052 [Verbose] > │                 let v18 : string = v7.[int v17]                              │
00:01:00 #3053 [Verbose] > │                 v18                                                          │
00:01:00 #3054 [Verbose] > │         v11.[int v14] <- v19                                                 │
00:01:00 #3055 [Verbose] > │         let v20 : int32 = v14 + 1                                            │
00:01:00 #3056 [Verbose] > │         v12.l0 <- v20                                                        │
00:01:00 #3057 [Verbose] > │         ()                                                                   │
00:01:00 #3058 [Verbose] > │     let v21 : (string []) = [|v0; v1; v4; v5|]                               │
00:01:00 #3059 [Verbose] > │     let v22 : (string []) = method1(v21)                                     │
00:01:00 #3060 [Verbose] > │     let v23 : string = $"%A{v11}"                                            │
00:01:00 #3061 [Verbose] > │     System.Console.WriteLine v23                                             │
00:01:00 #3062 [Verbose] > │     let v24 : int32 = v11.Length                                             │
00:01:00 #3063 [Verbose] > │     let v25 : int32 = v22.Length                                             │
00:01:00 #3064 [Verbose] > │     let v26 : bool = v24 = v25                                               │
00:01:00 #3065 [Verbose] > │     let v27 : bool = v26 <> true                                             │
00:01:00 #3066 [Verbose] > │     let v30 : bool =                                                         │
00:01:00 #3067 [Verbose] > │         if v27 then                                                          │
00:01:00 #3068 [Verbose] > │             false                                                            │
00:01:00 #3069 [Verbose] > │         else                                                                 │
00:01:00 #3070 [Verbose] > │             let v28 : int32 = 0                                              │
00:01:00 #3071 [Verbose] > │             method3(v11, v22, v28)                                           │
00:01:00 #3072 [Verbose] > │     let v32 : bool =                                                         │
00:01:00 #3073 [Verbose] > │         if v30 then                                                          │
00:01:00 #3074 [Verbose] > │             true                                                             │
00:01:00 #3075 [Verbose] > │         else                                                                 │
00:01:00 #3076 [Verbose] > │             method4(v30)                                                     │
00:01:00 #3077 [Verbose] > │     let v33 : string = $"__expect / actual: %A{v11} / expected: %A{v22}"     │
00:01:00 #3078 [Verbose] > │     let v34 : bool = v32 = false                                             │
00:01:00 #3079 [Verbose] > │     if v34 then                                                              │
00:01:00 #3080 [Verbose] > │         failwith<unit> v33                                                   │
00:01:00 #3081 [Verbose] > │ method0()                                                                    │
00:01:00 #3082 [Verbose] > │                                                                              │
00:01:00 #3083 [Verbose] > │ [|"a"; "b"; "c"; "d"|]                                                       │
00:01:00 #3084 [Verbose] > │                                                                              │
00:01:00 #3085 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:00 #3086 [Verbose] >
00:01:00 #3087 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:00 #3088 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:00 #3089 [Verbose] > │ ## collect                                                                   │
00:01:00 #3090 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:00 #3091 [Verbose] >
00:01:00 #3092 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:00 #3093 [Verbose] > inl collect forall t r. (fn : t -> a i32 r) (items : a i32 t) : a i32 r =
00:01:00 #3094 [Verbose] >     items
00:01:00 #3095 [Verbose] >     |> am.map fn
00:01:00 #3096 [Verbose] >     |> am.fold (/@) (a ;[[]])
00:01:00 #3097 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-2973-7356-70723e8866fe/main.spi
00:01:00 #3098 [Verbose] >
00:01:00 #3099 [Verbose] > ╭─[ 202.46ms - stdout ]────────────────────────────────────────────────────────╮
00:01:00 #3100 [Verbose] > │ ()                                                                           │
00:01:00 #3101 [Verbose] > │                                                                              │
00:01:00 #3102 [Verbose] > │                                                                              │
00:01:00 #3103 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:00 #3104 [Verbose] >
00:01:00 #3105 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:00 #3106 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:00 #3107 [Verbose] > │ ## choose                                                                    │
00:01:00 #3108 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:00 #3109 [Verbose] >
00:01:00 #3110 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:00 #3111 [Verbose] > inl choose f l =
00:01:00 #3112 [Verbose] >     (l, [[]])
00:01:00 #3113 [Verbose] >     ||> am.foldBack fun x acc =>
00:01:00 #3114 [Verbose] >         match f x with
00:01:00 #3115 [Verbose] >         | Some y => y :: acc
00:01:00 #3116 [Verbose] >         | None => acc
00:01:00 #3117 [Verbose] >     |> listm.toArray
00:01:00 #3118 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-2994-9420-97cd01501530/main.spi
00:01:00 #3119 [Verbose] >
00:01:00 #3120 [Verbose] > ╭─[ 204.30ms - stdout ]────────────────────────────────────────────────────────╮
00:01:00 #3121 [Verbose] > │ ()                                                                           │
00:01:00 #3122 [Verbose] > │                                                                              │
00:01:00 #3123 [Verbose] > │                                                                              │
00:01:00 #3124 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:00 #3125 [Verbose] >
00:01:00 #3126 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:00 #3127 [Verbose] > // // test
00:01:00 #3128 [Verbose] >
00:01:00 #3129 [Verbose] > (am.init 10i32 id : a _ _)
00:01:00 #3130 [Verbose] > |> choose (fun x => if x % 2 = 0 then Some x else None)
00:01:00 #3131 [Verbose] > |> _assert_eq (a ;[[ 0; 2; 4; 6; 8 ]] : _ i32 _)
00:01:01 #3132 [Verbose] >
00:01:01 #3133 [Verbose] > ╭─[ 954.44ms - stdout ]────────────────────────────────────────────────────────╮
00:01:01 #3134 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │
00:01:01 #3135 [Verbose] > │ let rec method1 (v0 : bool) : bool =                                         │
00:01:01 #3136 [Verbose] > │     v0                                                                       │
00:01:01 #3137 [Verbose] > │ and method0 () : unit =                                                      │
00:01:01 #3138 [Verbose] > │     let v0 : Mut0 = {l0 = 1} : Mut0                                          │
00:01:01 #3139 [Verbose] > │     let v1 : int32 = v0.l0                                                   │
00:01:01 #3140 [Verbose] > │     let v2 : int32 = v1 + 1                                                  │
00:01:01 #3141 [Verbose] > │     v0.l0 <- v2                                                              │
00:01:01 #3142 [Verbose] > │     let v3 : int32 = v0.l0                                                   │
00:01:01 #3143 [Verbose] > │     let v4 : string = $"%A{v3}"                                              │
00:01:01 #3144 [Verbose] > │     System.Console.WriteLine v4                                              │
00:01:01 #3145 [Verbose] > │     let v5 : bool = v3 = 2                                                   │
00:01:01 #3146 [Verbose] > │     let v7 : bool =                                                          │
00:01:01 #3147 [Verbose] > │         if v5 then                                                           │
00:01:01 #3148 [Verbose] > │             true                                                             │
00:01:01 #3149 [Verbose] > │         else                                                                 │
00:01:01 #3150 [Verbose] > │             method1(v5)                                                      │
00:01:01 #3151 [Verbose] > │     let v8 : string = $"__expect / actual: %A{v3} / expected: %A{2}"         │
00:01:01 #3152 [Verbose] > │     let v9 : bool = v7 = false                                               │
00:01:01 #3153 [Verbose] > │     if v9 then                                                               │
00:01:01 #3154 [Verbose] > │         failwith<unit> v8                                                    │
00:01:01 #3155 [Verbose] > │ method0()                                                                    │
00:01:01 #3156 [Verbose] > │                                                                              │
00:01:01 #3157 [Verbose] > │ 2                                                                            │
00:01:01 #3158 [Verbose] > │                                                                              │
00:01:01 #3159 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:01 #3160 [Verbose] >
00:01:01 #3161 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:01 #3162 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:01 #3163 [Verbose] > │ ## option'                                                                   │
00:01:01 #3164 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:01 #3165 [Verbose] >
00:01:01 #3166 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:01 #3167 [Verbose] > nominal option' t = $"`t option"
00:01:01 #3168 [Verbose] >
00:01:01 #3169 [Verbose] > inl unbox forall t. (x : option' t) : option t =
00:01:01 #3170 [Verbose] >     inl some x : option t = Some x
00:01:01 #3171 [Verbose] >     inl none : option t = None
00:01:01 #3172 [Verbose] >     $"!x |> Option.map !some |> Option.defaultValue !none"
00:01:01 #3173 [Verbose] >
00:01:01 #3174 [Verbose] > inl box forall t. (x : option t) : option' t =
00:01:01 #3175 [Verbose] >     match x with
00:01:01 #3176 [Verbose] >     | Some x => $"Some !x"
00:01:01 #3177 [Verbose] >     | None => $"None"
00:01:01 #3178 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-3014-1486-1f1c2e8ef0cb/main.spi
00:01:01 #3179 [Verbose] >
00:01:01 #3180 [Verbose] > ╭─[ 765.74ms - stdout ]────────────────────────────────────────────────────────╮
00:01:01 #3181 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │
00:01:01 #3182 [Verbose] > │ and UH0 =                                                                    │
00:01:01 #3183 [Verbose] > │     | UH0_0 of int32 * UH0                                                   │
00:01:01 #3184 [Verbose] > │     | UH0_1                                                                  │
00:01:01 #3185 [Verbose] > │ and Mut1 = {mutable l0 : int32; mutable l1 : UH0}                            │
00:01:01 #3186 [Verbose] > │ and [<Struct>] US0 =                                                         │
00:01:01 #3187 [Verbose] > │     | US0_0                                                                  │
00:01:01 #3188 [Verbose] > │     | US0_1 of f1_0 : int32                                                  │
00:01:01 #3189 [Verbose] > │ let rec method1 (v0 : Mut0) : bool =                                         │
00:01:01 #3190 [Verbose] > │     let v1 : int32 = v0.l0                                                   │
00:01:01 #3191 [Verbose] > │     let v2 : bool = v1 < 10                                                  │
00:01:01 #3192 [Verbose] > │     v2                                                                       │
00:01:01 #3193 [Verbose] > │ and method2 (v0 : int32, v1 : Mut1) : bool =                                 │
00:01:01 #3194 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-3016-1667-125677d9fa73/main.spi
00:01:01 #3195 [Verbose] > │     let v2 : int32 = v1.l0                                                   │
00:01:01 #3196 [Verbose] > │     let v3 : bool = v2 < v0                                                  │
00:01:01 #3197 [Verbose] > │     v3                                                                       │
00:01:01 #3198 [Verbose] > │ and method4 (v0 : UH0, v1 : int32) : int32 =                                 │
00:01:01 #3199 [Verbose] > │     match v0 with                                                            │
00:01:01 #3200 [Verbose] > │     | UH0_0(v2, v3) -> (* Cons *)                                            │
00:01:01 #3201 [Verbose] > │         let v4 : int32 = v1 + 1                                              │
00:01:01 #3202 [Verbose] > │         method4(v3, v4)                                                      │
00:01:01 #3203 [Verbose] > │     | UH0_1 -> (* Nil *)                                                     │
00:01:01 #3204 [Verbose] > │         v1                                                                   │
00:01:01 #3205 [Verbose] > │ and method5 (v0 : (int32 []), v1 : UH0, v2 : int32) : int32 =                │
00:01:01 #3206 [Verbose] > │     match v1 with                                                            │
00:01:01 #3207 [Verbose] > │     | UH0_0(v3, v4) -> (* Cons *)                                            │
00:01:01 #3208 [Verbose] > │         v0.[int v2] <- v3                                                    │
00:01:01 #3209 [Verbose] > │         let v5 : int32 = v2 + 1                                              │
00:01:01 #3210 [Verbose] > │         method5(v0, v4, v5)                                                  │
00:01:01 #3211 [Verbose] > │     | UH0_1 -> (* Nil *)                                                     │
00:01:01 #3212 [Verbose] > │         v2                                                                   │
00:01:01 #3213 [Verbose] > │ and method3 (v0 : UH0) : (int32 []) =                                        │
00:01:01 #3214 [Verbose] > │     let v1 : int32 = 0                                                       │
00:01:01 #3215 [Verbose] > │     let v2 : int32 = method4(v0, v1)                                         │
00:01:01 #3216 [Verbose] > │     let v3 : (int32 []) = Array.zeroCreate<int32> (v2)                       │
00:01:01 #3217 [Verbose] > │     let v4 : int32 = 0                                                       │
00:01:01 #3218 [Verbose] > │     let v5 : int32 = method5(v3, v0, v4)                                     │
00:01:01 #3219 [Verbose] > │     v3                                                                       │
00:01:01 #3220 [Verbose] > │ and method6 (v0 : (int32 [])) : (int32 []) =                                 │
00:01:01 #3221 [Verbose] > │     v0                                                                       │
00:01:01 #3222 [Verbose] > │ and method7 (v0 : (int32 []), v1 : (int32 []), v2 : int32) : bool =          │
00:01:01 #3223 [Verbose] > │     let v3 : int32 = v0.Length                                               │
00:01:01 #3224 [Verbose] > │     let v4 : bool = v2 < v3                                                  │
00:01:01 #3225 [Verbose] > │     if v4 then                                                               │
00:01:01 #3226 [Verbose] > │         let v5 : int32 = v0.[int v2]                                         │
00:01:01 #3227 [Verbose] > │         let v6 : int32 = v1.[int v2]                                         │
00:01:01 #3228 [Verbose] > │         let v7 : bool = v5 = v6                                              │
00:01:01 #3229 [Verbose] > │         if v7 then                                                           │
00:01:01 #3230 [Verbose] > │             let v8 : int32 = v2 + 1                                          │
00:01:01 #3231 [Verbose] > │             method7(v0, v1, v8)                                              │
00:01:01 #3232 [Verbose] > │         else                                                                 │
00:01:01 #3233 [Verbose] > │             false                                                            │
00:01:01 #3234 [Verbose] > │     else                                                                     │
00:01:01 #3235 [Verbose] > │         true                                                                 │
00:01:01 #3236 [Verbose] > │ and method8 (v0 : bool) : bool =                                             │
00:01:01 #3237 [Verbose] > │     v0                                                                       │
00:01:01 #3238 [Verbose] > │ and method0 () : unit =                                                      │
00:01:01 #3239 [Verbose] > │     let v0 : (int32 []) = Array.zeroCreate<int32> (10)                       │
00:01:01 #3240 [Verbose] > │     let v1 : Mut0 = {l0 = 0} : Mut0                                          │
00:01:01 #3241 [Verbose] > │     while method1(v1) do                                                     │
00:01:01 #3242 [Verbose] > │         let v3 : int32 = v1.l0                                               │
00:01:01 #3243 [Verbose] > │         v0.[int v3] <- v3                                                    │
00:01:01 #3244 [Verbose] > │         let v4 : int32 = v3 + 1                                              │
00:01:01 #3245 [Verbose] > │         v1.l0 <- v4                                                          │
00:01:01 #3246 [Verbose] > │         ()                                                                   │
00:01:01 #3247 [Verbose] > │     let v5 : int32 = v0.Length                                               │
00:01:01 #3248 [Verbose] > │     let v6 : UH0 = UH0_1                                                     │
00:01:01 #3249 [Verbose] > │     let v7 : Mut1 = {l0 = 0; l1 = v6} : Mut1                                 │
00:01:01 #3250 [Verbose] > │     while method2(v5, v7) do                                                 │
00:01:01 #3251 [Verbose] > │         let v9 : int32 = v7.l0                                               │
00:01:01 #3252 [Verbose] > │         let v10 : int32 =  -v9                                               │
00:01:01 #3253 [Verbose] > │         let v11 : int32 = v10 + v5                                           │
00:01:01 #3254 [Verbose] > │         let v12 : int32 = v11 - 1                                            │
00:01:01 #3255 [Verbose] > │         let v13 : UH0 = v7.l1                                                │
00:01:01 #3256 [Verbose] > │         let v14 : int32 = v0.[int v12]                                       │
00:01:01 #3257 [Verbose] > │         let v15 : int32 = v14 % 2                                            │
00:01:01 #3258 [Verbose] > │         let v16 : bool = v15 = 0                                             │
00:01:01 #3259 [Verbose] > │         let v19 : US0 =                                                      │
00:01:01 #3260 [Verbose] > │             if v16 then                                                      │
00:01:01 #3261 [Verbose] > │                 US0_1(v14)                                                   │
00:01:01 #3262 [Verbose] > │             else                                                             │
00:01:01 #3263 [Verbose] > │                 US0_0                                                        │
00:01:01 #3264 [Verbose] > │         let v23 : UH0 =                                                      │
00:01:01 #3265 [Verbose] > │             match v19 with                                                   │
00:01:01 #3266 [Verbose] > │             | US0_0 -> (* None *)                                            │
00:01:01 #3267 [Verbose] > │                 v13                                                          │
00:01:01 #3268 [Verbose] > │             | US0_1(v20) -> (* Some *)                                       │
00:01:01 #3269 [Verbose] > │                 UH0_0(v20, v13)                                              │
00:01:01 #3270 [Verbose] > │         let v24 : int32 = v9 + 1                                             │
00:01:01 #3271 [Verbose] > │         v7.l0 <- v24                                                         │
00:01:01 #3272 [Verbose] > │         v7.l1 <- v23                                                         │
00:01:01 #3273 [Verbose] > │         ()                                                                   │
00:01:01 #3274 [Verbose] > │     let v25 : UH0 = v7.l1                                                    │
00:01:01 #3275 [Verbose] > │     let v26 : (int32 []) = method3(v25)                                      │
00:01:01 #3276 [Verbose] > │     let v27 : (int32 []) = [|0; 2; 4; 6; 8|]                                 │
00:01:01 #3277 [Verbose] > │     let v28 : (int32 []) = method6(v27)                                      │
00:01:01 #3278 [Verbose] > │     let v29 : string = $"%A{v26}"                                            │
00:01:01 #3279 [Verbose] > │     System.Console.WriteLine v29                                             │
00:01:01 #3280 [Verbose] > │     let v30 : int32 = v26.Length                                             │
00:01:01 #3281 [Verbose] > │     let v31 : int32 = v28.Length                                             │
00:01:01 #3282 [Verbose] > │     let v32 : bool = v30 = v31                                               │
00:01:01 #3283 [Verbose] > │     let v33 : bool = v32 <> true                                             │
00:01:01 #3284 [Verbose] > │     let v36 : bool =                                                         │
00:01:01 #3285 [Verbose] > │         if v33 then                                                          │
00:01:01 #3286 [Verbose] > │             false                                                            │
00:01:01 #3287 [Verbose] > │         else                                                                 │
00:01:01 #3288 [Verbose] > │             let v34 : int32 = 0                                              │
00:01:01 #3289 [Verbose] > │             method7(v26, v28, v34)                                           │
00:01:01 #3290 [Verbose] > │     let v38 : bool =                                                         │
00:01:01 #3291 [Verbose] > │         if v36 then                                                          │
00:01:01 #3292 [Verbose] > │             true                                                             │
00:01:01 #3293 [Verbose] > │         else                                                                 │
00:01:01 #3294 [Verbose] > │             method8(v36)                                                     │
00:01:01 #3295 [Verbose] > │     let v39 : string = $"__expect / actual: %A{v26} / expected: %A{v28}"     │
00:01:01 #3296 [Verbose] > │     let v40 : bool = v38 = false                                             │
00:01:01 #3297 [Verbose] > │     if v40 then                                                              │
00:01:01 #3298 [Verbose] > │         failwith<unit> v39                                                   │
00:01:01 #3299 [Verbose] > │ method0()                                                                    │
00:01:01 #3300 [Verbose] > │                                                                              │
00:01:01 #3301 [Verbose] > │ [|0; 2; 4; 6; 8|]                                                            │
00:01:01 #3302 [Verbose] > │                                                                              │
00:01:01 #3303 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:01 #3304 [Verbose] >
00:01:01 #3305 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:01 #3306 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:01 #3307 [Verbose] > │ ## sum                                                                       │
00:01:01 #3308 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:01 #3309 [Verbose] >
00:01:01 #3310 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:01 #3311 [Verbose] > inl sum (a' : a _ _) =
00:01:01 #3312 [Verbose] >     a' |> am.fold (+) 0
00:01:01 #3313 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-3093-9307-9da1917e624f/main.spi
00:01:02 #3314 [Verbose] >
00:01:02 #3315 [Verbose] > ╭─[ 232.38ms - stdout ]────────────────────────────────────────────────────────╮
00:01:02 #3316 [Verbose] > │ ()                                                                           │
00:01:02 #3317 [Verbose] > │                                                                              │
00:01:02 #3318 [Verbose] > │                                                                              │
00:01:02 #3319 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:02 #3320 [Verbose] >
00:01:02 #3321 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:02 #3322 [Verbose] > // // test
00:01:02 #3323 [Verbose] >
00:01:02 #3324 [Verbose] > am.init 10i32 id
00:01:02 #3325 [Verbose] > |> sum
00:01:02 #3326 [Verbose] > |> _assert_eq 45
00:01:02 #3327 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-3116-1635-1cbc2748c451/main.spi
00:01:02 #3328 [Verbose] >
00:01:02 #3329 [Verbose] > ╭─[ 621.64ms - stdout ]────────────────────────────────────────────────────────╮
00:01:02 #3330 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │
00:01:02 #3331 [Verbose] > │ and Mut1 = {mutable l0 : int32; mutable l1 : int32}                          │
00:01:02 #3332 [Verbose] > │ let rec method1 (v0 : Mut0) : bool =                                         │
00:01:02 #3333 [Verbose] > │     let v1 : int32 = v0.l0                                                   │
00:01:02 #3334 [Verbose] > │     let v2 : bool = v1 < 10                                                  │
00:01:02 #3335 [Verbose] > │     v2                                                                       │
00:01:02 #3336 [Verbose] > │ and method2 (v0 : int32, v1 : Mut1) : bool =                                 │
00:01:02 #3337 [Verbose] > │     let v2 : int32 = v1.l0                                                   │
00:01:02 #3338 [Verbose] > │     let v3 : bool = v2 < v0                                                  │
00:01:02 #3339 [Verbose] > │     v3                                                                       │
00:01:02 #3340 [Verbose] > │ and method3 (v0 : bool) : bool =                                             │
00:01:02 #3341 [Verbose] > │     v0                                                                       │
00:01:02 #3342 [Verbose] > │ and method0 () : unit =                                                      │
00:01:02 #3343 [Verbose] > │     let v0 : (int32 []) = Array.zeroCreate<int32> (10)                       │
00:01:02 #3344 [Verbose] > │     let v1 : Mut0 = {l0 = 0} : Mut0                                          │
00:01:02 #3345 [Verbose] > │     while method1(v1) do                                                     │
00:01:02 #3346 [Verbose] > │         let v3 : int32 = v1.l0                                               │
00:01:02 #3347 [Verbose] > │         v0.[int v3] <- v3                                                    │
00:01:02 #3348 [Verbose] > │         let v4 : int32 = v3 + 1                                              │
00:01:02 #3349 [Verbose] > │         v1.l0 <- v4                                                          │
00:01:02 #3350 [Verbose] > │         ()                                                                   │
00:01:02 #3351 [Verbose] > │     let v5 : int32 = v0.Length                                               │
00:01:02 #3352 [Verbose] > │     let v6 : Mut1 = {l0 = 0; l1 = 0} : Mut1                                  │
00:01:02 #3353 [Verbose] > │     while method2(v5, v6) do                                                 │
00:01:02 #3354 [Verbose] > │         let v8 : int32 = v6.l0                                               │
00:01:02 #3355 [Verbose] > │         let v9 : int32 = v6.l1                                               │
00:01:02 #3356 [Verbose] > │         let v10 : int32 = v0.[int v8]                                        │
00:01:02 #3357 [Verbose] > │         let v11 : int32 = v9 + v10                                           │
00:01:02 #3358 [Verbose] > │         let v12 : int32 = v8 + 1                                             │
00:01:02 #3359 [Verbose] > │         v6.l0 <- v12                                                         │
00:01:02 #3360 [Verbose] > │         v6.l1 <- v11                                                         │
00:01:02 #3361 [Verbose] > │         ()                                                                   │
00:01:02 #3362 [Verbose] > │     let v13 : int32 = v6.l1                                                  │
00:01:02 #3363 [Verbose] > │     let v14 : string = $"%A{v13}"                                            │
00:01:02 #3364 [Verbose] > │     System.Console.WriteLine v14                                             │
00:01:02 #3365 [Verbose] > │     let v15 : bool = v13 = 45                                                │
00:01:02 #3366 [Verbose] > │     let v17 : bool =                                                         │
00:01:02 #3367 [Verbose] > │         if v15 then                                                          │
00:01:02 #3368 [Verbose] > │             true                                                             │
00:01:02 #3369 [Verbose] > │         else                                                                 │
00:01:02 #3370 [Verbose] > │             method3(v15)                                                     │
00:01:02 #3371 [Verbose] > │     let v18 : string = $"__expect / actual: %A{v13} / expected: %A{45}"      │
00:01:02 #3372 [Verbose] > │     let v19 : bool = v17 = false                                             │
00:01:02 #3373 [Verbose] > │     if v19 then                                                              │
00:01:02 #3374 [Verbose] > │         failwith<unit> v18                                                   │
00:01:02 #3375 [Verbose] > │ method0()                                                                    │
00:01:02 #3376 [Verbose] > │                                                                              │
00:01:02 #3377 [Verbose] > │ 45                                                                           │
00:01:02 #3378 [Verbose] > │                                                                              │
00:01:02 #3379 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:02 #3380 [Verbose] >
00:01:02 #3381 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:02 #3382 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:02 #3383 [Verbose] > │ ## init_series                                                               │
00:01:02 #3384 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:02 #3385 [Verbose] >
00:01:02 #3386 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:02 #3387 [Verbose] > inl init_series start end inc =
00:01:02 #3388 [Verbose] >     inl total = conv ((end - start) / inc) + 1
00:01:02 #3389 [Verbose] >     am.init total (conv >> (*) inc >> (+) start) : a i32 _
00:01:02 #3390 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-3179-7927-773ff1e02fd0/main.spi
00:01:02 #3391 [Verbose] >
00:01:02 #3392 [Verbose] > ╭─[ 179.81ms - stdout ]────────────────────────────────────────────────────────╮
00:01:02 #3393 [Verbose] > │ ()                                                                           │
00:01:02 #3394 [Verbose] > │                                                                              │
00:01:02 #3395 [Verbose] > │                                                                              │
00:01:02 #3396 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:02 #3397 [Verbose] >
00:01:02 #3398 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:02 #3399 [Verbose] > // // test
00:01:02 #3400 [Verbose] >
00:01:02 #3401 [Verbose] > init_series 0 1 0.5
00:01:02 #3402 [Verbose] > |> _assert_eq (a ;[[0f64; 0.5; 1]])
00:01:02 #3403 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-3197-9719-9319a4a7cb69/main.spi
00:01:03 #3404 [Verbose] >
00:01:03 #3405 [Verbose] > ╭─[ 321.41ms - stdout ]────────────────────────────────────────────────────────╮
00:01:03 #3406 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │
00:01:03 #3407 [Verbose] > │ let rec method1 (v0 : Mut0) : bool =                                         │
00:01:03 #3408 [Verbose] > │     let v1 : int32 = v0.l0                                                   │
00:01:03 #3409 [Verbose] > │     let v2 : bool = v1 < 3                                                   │
00:01:03 #3410 [Verbose] > │     v2                                                                       │
00:01:03 #3411 [Verbose] > │ and method2 (v0 : (float [])) : (float []) =                                 │
00:01:03 #3412 [Verbose] > │     v0                                                                       │
00:01:03 #3413 [Verbose] > │ and method3 (v0 : (float []), v1 : (float []), v2 : int32) : bool =          │
00:01:03 #3414 [Verbose] > │     let v3 : int32 = v0.Length                                               │
00:01:03 #3415 [Verbose] > │     let v4 : bool = v2 < v3                                                  │
00:01:03 #3416 [Verbose] > │     if v4 then                                                               │
00:01:03 #3417 [Verbose] > │         let v5 : float = v0.[int v2]                                         │
00:01:03 #3418 [Verbose] > │         let v6 : float = v1.[int v2]                                         │
00:01:03 #3419 [Verbose] > │         let v7 : bool = v5 = v6                                              │
00:01:03 #3420 [Verbose] > │         if v7 then                                                           │
00:01:03 #3421 [Verbose] > │             let v8 : int32 = v2 + 1                                          │
00:01:03 #3422 [Verbose] > │             method3(v0, v1, v8)                                              │
00:01:03 #3423 [Verbose] > │         else                                                                 │
00:01:03 #3424 [Verbose] > │             false                                                            │
00:01:03 #3425 [Verbose] > │     else                                                                     │
00:01:03 #3426 [Verbose] > │         true                                                                 │
00:01:03 #3427 [Verbose] > │ and method4 (v0 : bool) : bool =                                             │
00:01:03 #3428 [Verbose] > │     v0                                                                       │
00:01:03 #3429 [Verbose] > │ and method0 () : unit =                                                      │
00:01:03 #3430 [Verbose] > │     let v0 : (float []) = Array.zeroCreate<float> (3)                        │
00:01:03 #3431 [Verbose] > │     let v1 : Mut0 = {l0 = 0} : Mut0                                          │
00:01:03 #3432 [Verbose] > │     while method1(v1) do                                                     │
00:01:03 #3433 [Verbose] > │         let v3 : int32 = v1.l0                                               │
00:01:03 #3434 [Verbose] > │         let v4 : float = float v3                                            │
00:01:03 #3435 [Verbose] > │         let v5 : float = 0.5 * v4                                            │
00:01:03 #3436 [Verbose] > │         v0.[int v3] <- v5                                                    │
00:01:03 #3437 [Verbose] > │         let v6 : int32 = v3 + 1                                              │
00:01:03 #3438 [Verbose] > │         v1.l0 <- v6                                                          │
00:01:03 #3439 [Verbose] > │         ()                                                                   │
00:01:03 #3440 [Verbose] > │     let v7 : (float []) = [|0.0; 0.5; 1.0|]                                  │
00:01:03 #3441 [Verbose] > │     let v8 : (float []) = method2(v7)                                        │
00:01:03 #3442 [Verbose] > │     let v9 : string = $"%A{v0}"                                              │
00:01:03 #3443 [Verbose] > │     System.Console.WriteLine v9                                              │
00:01:03 #3444 [Verbose] > │     let v10 : int32 = v0.Length                                              │
00:01:03 #3445 [Verbose] > │     let v11 : int32 = v8.Length                                              │
00:01:03 #3446 [Verbose] > │     let v12 : bool = v10 = v11                                               │
00:01:03 #3447 [Verbose] > │     let v13 : bool = v12 <> true                                             │
00:01:03 #3448 [Verbose] > │     let v16 : bool =                                                         │
00:01:03 #3449 [Verbose] > │         if v13 then                                                          │
00:01:03 #3450 [Verbose] > │             false                                                            │
00:01:03 #3451 [Verbose] > │         else                                                                 │
00:01:03 #3452 [Verbose] > │             let v14 : int32 = 0                                              │
00:01:03 #3453 [Verbose] > │             method3(v0, v8, v14)                                             │
00:01:03 #3454 [Verbose] > │     let v18 : bool =                                                         │
00:01:03 #3455 [Verbose] > │         if v16 then                                                          │
00:01:03 #3456 [Verbose] > │             true                                                             │
00:01:03 #3457 [Verbose] > │         else                                                                 │
00:01:03 #3458 [Verbose] > │             method4(v16)                                                     │
00:01:03 #3459 [Verbose] > │     let v19 : string = $"__expect / actual: %A{v0} / expected: %A{v8}"       │
00:01:03 #3460 [Verbose] > │     let v20 : bool = v18 = false                                             │
00:01:03 #3461 [Verbose] > │     if v20 then                                                              │
00:01:03 #3462 [Verbose] > │         failwith<unit> v19                                                   │
00:01:03 #3463 [Verbose] > │ method0()                                                                    │
00:01:03 #3464 [Verbose] > │                                                                              │
00:01:03 #3465 [Verbose] > │ [|0.0; 0.5; 1.0|]                                                            │
00:01:03 #3466 [Verbose] > │                                                                              │
00:01:03 #3467 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:03 #3468 [Verbose] >
00:01:03 #3469 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:03 #3470 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:03 #3471 [Verbose] > │ ## head                                                                      │
00:01:03 #3472 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:03 #3473 [Verbose] >
00:01:03 #3474 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:03 #3475 [Verbose] > inl head (ar : a _ _) =
00:01:03 #3476 [Verbose] >     if var_is ar || length ar > 0
00:01:03 #3477 [Verbose] >     then index ar 0
00:01:03 #3478 [Verbose] >     else error_type "The length of the array should be greater than 0."
00:01:03 #3479 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-3230-3028-33ad428a1913/main.spi
00:01:03 #3480 [Verbose] >
00:01:03 #3481 [Verbose] > ╭─[ 204.68ms - stdout ]────────────────────────────────────────────────────────╮
00:01:03 #3482 [Verbose] > │ ()                                                                           │
00:01:03 #3483 [Verbose] > │                                                                              │
00:01:03 #3484 [Verbose] > │                                                                              │
00:01:03 #3485 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:03 #3486 [Verbose] >
00:01:03 #3487 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:03 #3488 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:03 #3489 [Verbose] > │ ## last                                                                      │
00:01:03 #3490 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:03 #3491 [Verbose] >
00:01:03 #3492 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:03 #3493 [Verbose] > inl last (ar : a _ _) =
00:01:03 #3494 [Verbose] >     inl len = length ar
00:01:03 #3495 [Verbose] >     if var_is ar || len > 0
00:01:03 #3496 [Verbose] >     then index ar (len - 1)
00:01:03 #3497 [Verbose] >     else error_type "The length of the array should be greater than 0."
00:01:03 #3498 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-3250-5040-5f3d4e3b0f3e/main.spi
00:01:03 #3499 [Verbose] >
00:01:03 #3500 [Verbose] > ╭─[ 215.40ms - stdout ]────────────────────────────────────────────────────────╮
00:01:03 #3501 [Verbose] > │ ()                                                                           │
00:01:03 #3502 [Verbose] > │                                                                              │
00:01:03 #3503 [Verbose] > │                                                                              │
00:01:03 #3504 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:03 #3505 [Verbose] >
00:01:03 #3506 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:03 #3507 [Verbose] > // // test
00:01:03 #3508 [Verbose] >
00:01:03 #3509 [Verbose] > am.init 10i32 id
00:01:03 #3510 [Verbose] > |> last
00:01:03 #3511 [Verbose] > |> _assert_eq 9
00:01:03 #3512 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-3271-7188-7bb58d7ae47b/main.spi
00:01:03 #3513 [Verbose] >
00:01:03 #3514 [Verbose] > ╭─[ 271.59ms - stdout ]────────────────────────────────────────────────────────╮
00:01:03 #3515 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │
00:01:03 #3516 [Verbose] > │ let rec method1 (v0 : Mut0) : bool =                                         │
00:01:03 #3517 [Verbose] > │     let v1 : int32 = v0.l0                                                   │
00:01:03 #3518 [Verbose] > │     let v2 : bool = v1 < 10                                                  │
00:01:03 #3519 [Verbose] > │     v2                                                                       │
00:01:03 #3520 [Verbose] > │ and method2 (v0 : bool) : bool =                                             │
00:01:03 #3521 [Verbose] > │     v0                                                                       │
00:01:03 #3522 [Verbose] > │ and method0 () : unit =                                                      │
00:01:03 #3523 [Verbose] > │     let v0 : (int32 []) = Array.zeroCreate<int32> (10)                       │
00:01:03 #3524 [Verbose] > │     let v1 : Mut0 = {l0 = 0} : Mut0                                          │
00:01:03 #3525 [Verbose] > │     while method1(v1) do                                                     │
00:01:03 #3526 [Verbose] > │         let v3 : int32 = v1.l0                                               │
00:01:03 #3527 [Verbose] > │         v0.[int v3] <- v3                                                    │
00:01:03 #3528 [Verbose] > │         let v4 : int32 = v3 + 1                                              │
00:01:03 #3529 [Verbose] > │         v1.l0 <- v4                                                          │
00:01:03 #3530 [Verbose] > │         ()                                                                   │
00:01:03 #3531 [Verbose] > │     let v5 : int32 = v0.Length                                               │
00:01:03 #3532 [Verbose] > │     let v6 : int32 = v5 - 1                                                  │
00:01:03 #3533 [Verbose] > │     let v7 : int32 = v0.[int v6]                                             │
00:01:03 #3534 [Verbose] > │     let v8 : string = $"%A{v7}"                                              │
00:01:03 #3535 [Verbose] > │     System.Console.WriteLine v8                                              │
00:01:03 #3536 [Verbose] > │     let v9 : bool = v7 = 9                                                   │
00:01:03 #3537 [Verbose] > │     let v11 : bool =                                                         │
00:01:03 #3538 [Verbose] > │         if v9 then                                                           │
00:01:03 #3539 [Verbose] > │             true                                                             │
00:01:03 #3540 [Verbose] > │         else                                                                 │
00:01:03 #3541 [Verbose] > │             method2(v9)                                                      │
00:01:03 #3542 [Verbose] > │     let v12 : string = $"__expect / actual: %A{v7} / expected: %A{9}"        │
00:01:03 #3543 [Verbose] > │     let v13 : bool = v11 = false                                             │
00:01:03 #3544 [Verbose] > │     if v13 then                                                              │
00:01:03 #3545 [Verbose] > │         failwith<unit> v12                                                   │
00:01:03 #3546 [Verbose] > │ method0()                                                                    │
00:01:03 #3547 [Verbose] > │                                                                              │
00:01:03 #3548 [Verbose] > │ 9                                                                            │
00:01:03 #3549 [Verbose] > │                                                                              │
00:01:03 #3550 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:03 #3551 [Verbose] >
00:01:03 #3552 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:03 #3553 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:03 #3554 [Verbose] > │ ## try_pick                                                                  │
00:01:03 #3555 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:03 #3556 [Verbose] >
00:01:03 #3557 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:03 #3558 [Verbose] > inl try_pick forall t u. (fn : t -> option u) (array : a _ t) : option u =
00:01:03 #3559 [Verbose] >     (array, None)
00:01:03 #3560 [Verbose] >     ||> am.foldBack fun x acc =>
00:01:03 #3561 [Verbose] >         match acc with
00:01:03 #3562 [Verbose] >         | Some _ => acc
00:01:03 #3563 [Verbose] >         | None => x |> fn
00:01:03 #3564 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-3299-9946-919d4df78626/main.spi
00:01:04 #3565 [Verbose] >
00:01:04 #3566 [Verbose] > ╭─[ 175.27ms - stdout ]────────────────────────────────────────────────────────╮
00:01:04 #3567 [Verbose] > │ ()                                                                           │
00:01:04 #3568 [Verbose] > │                                                                              │
00:01:04 #3569 [Verbose] > │                                                                              │
00:01:04 #3570 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:04 #3571 [Verbose] >
00:01:04 #3572 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:04 #3573 [Verbose] > // // test
00:01:04 #3574 [Verbose] >
00:01:04 #3575 [Verbose] > am.init 10i32 id
00:01:04 #3576 [Verbose] > |> try_pick (fun x => if x = 5i32 then Some x else None)
00:01:04 #3577 [Verbose] > |> _assert_eq (Some 5i32)
00:01:04 #3578 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-3316-1697-1ff4660acaed/main.spi
00:01:04 #3579 [Verbose] >
00:01:04 #3580 [Verbose] > ╭─[ 413.06ms - stdout ]────────────────────────────────────────────────────────╮
00:01:04 #3581 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │
00:01:04 #3582 [Verbose] > │ and [<Struct>] US0 =                                                         │
00:01:04 #3583 [Verbose] > │     | US0_0                                                                  │
00:01:04 #3584 [Verbose] > │     | US0_1 of f1_0 : int32                                                  │
00:01:04 #3585 [Verbose] > │ and Mut1 = {mutable l0 : int32; mutable l1 : US0}                            │
00:01:04 #3586 [Verbose] > │ let rec method1 (v0 : Mut0) : bool =                                         │
00:01:04 #3587 [Verbose] > │     let v1 : int32 = v0.l0                                                   │
00:01:04 #3588 [Verbose] > │     let v2 : bool = v1 < 10                                                  │
00:01:04 #3589 [Verbose] > │     v2                                                                       │
00:01:04 #3590 [Verbose] > │ and method2 (v0 : int32, v1 : Mut1) : bool =                                 │
00:01:04 #3591 [Verbose] > │     let v2 : int32 = v1.l0                                                   │
00:01:04 #3592 [Verbose] > │     let v3 : bool = v2 < v0                                                  │
00:01:04 #3593 [Verbose] > │     v3                                                                       │
00:01:04 #3594 [Verbose] > │ and method3 (v0 : bool) : bool =                                             │
00:01:04 #3595 [Verbose] > │     v0                                                                       │
00:01:04 #3596 [Verbose] > │ and method0 () : unit =                                                      │
00:01:04 #3597 [Verbose] > │     let v0 : (int32 []) = Array.zeroCreate<int32> (10)                       │
00:01:04 #3598 [Verbose] > │     let v1 : Mut0 = {l0 = 0} : Mut0                                          │
00:01:04 #3599 [Verbose] > │     while method1(v1) do                                                     │
00:01:04 #3600 [Verbose] > │         let v3 : int32 = v1.l0                                               │
00:01:04 #3601 [Verbose] > │         v0.[int v3] <- v3                                                    │
00:01:04 #3602 [Verbose] > │         let v4 : int32 = v3 + 1                                              │
00:01:04 #3603 [Verbose] > │         v1.l0 <- v4                                                          │
00:01:04 #3604 [Verbose] > │         ()                                                                   │
00:01:04 #3605 [Verbose] > │     let v5 : int32 = v0.Length                                               │
00:01:04 #3606 [Verbose] > │     let v6 : US0 = US0_0                                                     │
00:01:04 #3607 [Verbose] > │     let v7 : Mut1 = {l0 = 0; l1 = v6} : Mut1                                 │
00:01:04 #3608 [Verbose] > │     while method2(v5, v7) do                                                 │
00:01:04 #3609 [Verbose] > │         let v9 : int32 = v7.l0                                               │
00:01:04 #3610 [Verbose] > │         let v10 : int32 =  -v9                                               │
00:01:04 #3611 [Verbose] > │         let v11 : int32 = v10 + v5                                           │
00:01:04 #3612 [Verbose] > │         let v12 : int32 = v11 - 1                                            │
00:01:04 #3613 [Verbose] > │         let v13 : US0 = v7.l1                                                │
00:01:04 #3614 [Verbose] > │         let v14 : int32 = v0.[int v12]                                       │
00:01:04 #3615 [Verbose] > │         let v21 : US0 =                                                      │
00:01:04 #3616 [Verbose] > │             match v13 with                                                   │
00:01:04 #3617 [Verbose] > │             | US0_0 -> (* None *)                                            │
00:01:04 #3618 [Verbose] > │                 let v16 : bool = v14 = 5                                     │
00:01:04 #3619 [Verbose] > │                 if v16 then                                                  │
00:01:04 #3620 [Verbose] > │                     US0_1(v14)                                               │
00:01:04 #3621 [Verbose] > │                 else                                                         │
00:01:04 #3622 [Verbose] > │                     US0_0                                                    │
00:01:04 #3623 [Verbose] > │             | US0_1(v15) -> (* Some *)                                       │
00:01:04 #3624 [Verbose] > │                 v13                                                          │
00:01:04 #3625 [Verbose] > │         let v22 : int32 = v9 + 1                                             │
00:01:04 #3626 [Verbose] > │         v7.l0 <- v22                                                         │
00:01:04 #3627 [Verbose] > │         v7.l1 <- v21                                                         │
00:01:04 #3628 [Verbose] > │         ()                                                                   │
00:01:04 #3629 [Verbose] > │     let v23 : US0 = v7.l1                                                    │
00:01:04 #3630 [Verbose] > │     let v24 : string = $"%A{v23}"                                            │
00:01:04 #3631 [Verbose] > │     System.Console.WriteLine v24                                             │
00:01:04 #3632 [Verbose] > │     let v28 : bool =                                                         │
00:01:04 #3633 [Verbose] > │         match v23 with                                                       │
00:01:04 #3634 [Verbose] > │         | US0_1(v26) -> (* Some *)                                           │
00:01:04 #3635 [Verbose] > │             let v27 : bool = v26 = 5                                         │
00:01:04 #3636 [Verbose] > │             v27                                                              │
00:01:04 #3637 [Verbose] > │         | _ ->                                                               │
00:01:04 #3638 [Verbose] > │             false                                                            │
00:01:04 #3639 [Verbose] > │     let v30 : bool =                                                         │
00:01:04 #3640 [Verbose] > │         if v28 then                                                          │
00:01:04 #3641 [Verbose] > │             true                                                             │
00:01:04 #3642 [Verbose] > │         else                                                                 │
00:01:04 #3643 [Verbose] > │             method3(v28)                                                     │
00:01:04 #3644 [Verbose] > │     let v31 : US0 = US0_1(5)                                                 │
00:01:04 #3645 [Verbose] > │     let v32 : string = $"__expect / actual: %A{v23} / expected: %A{v31}"     │
00:01:04 #3646 [Verbose] > │     let v33 : bool = v30 = false                                             │
00:01:04 #3647 [Verbose] > │     if v33 then                                                              │
00:01:04 #3648 [Verbose] > │         failwith<unit> v32                                                   │
00:01:04 #3649 [Verbose] > │ method0()                                                                    │
00:01:04 #3650 [Verbose] > │                                                                              │
00:01:04 #3651 [Verbose] > │ US0_1 5                                                                      │
00:01:04 #3652 [Verbose] > │                                                                              │
00:01:04 #3653 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:04 #3654 [Verbose] >
00:01:04 #3655 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:04 #3656 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:04 #3657 [Verbose] > │ ## indexed'                                                                  │
00:01:04 #3658 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:04 #3659 [Verbose] >
00:01:04 #3660 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:04 #3661 [Verbose] > inl indexed' forall t dim {int; number} dim' {int; number} u {number}. (ar : a
00:01:04 #3662 [Verbose] > dim t) : a dim' (u * t) =
00:01:04 #3663 [Verbose] >     ((0, a ;[[]]), ar)
00:01:04 #3664 [Verbose] >     ||> am.fold fun (i, acc) x =>
00:01:04 #3665 [Verbose] >         i + 1, acc /@ a ;[[i, x]]
00:01:04 #3666 [Verbose] >     |> snd
00:01:04 #3667 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-3359-5943-5ac02e18a14f/main.spi
00:01:04 #3668 [Verbose] >
00:01:04 #3669 [Verbose] > ╭─[ 268.75ms - stdout ]────────────────────────────────────────────────────────╮
00:01:04 #3670 [Verbose] > │ ()                                                                           │
00:01:04 #3671 [Verbose] > │                                                                              │
00:01:04 #3672 [Verbose] > │                                                                              │
00:01:04 #3673 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:04 #3674 [Verbose] >
00:01:04 #3675 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:04 #3676 [Verbose] > // // test
00:01:04 #3677 [Verbose] >
00:01:04 #3678 [Verbose] > am.init 3i32 ((*) 2)
00:01:04 #3679 [Verbose] > |> indexed'
00:01:04 #3680 [Verbose] > |> _assert_eq (a ;[[0i32, 0; 1, 2; 2, 4]] : a i32 _)
00:01:04 #3681 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-3386-8634-8c567bbdcf35/main.spi
00:01:05 #3682 [Verbose] >
00:01:05 #3683 [Verbose] > ╭─[ 481.02ms - stdout ]────────────────────────────────────────────────────────╮
00:01:05 #3684 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │
00:01:05 #3685 [Verbose] > │ and Mut1 = {mutable l0 : int32; mutable l1 : int32; mutable l2 : (struct     │
00:01:05 #3686 [Verbose] > │ (int32 * int32) [])}                                                         │
00:01:05 #3687 [Verbose] > │ let rec method1 (v0 : Mut0) : bool =                                         │
00:01:05 #3688 [Verbose] > │     let v1 : int32 = v0.l0                                                   │
00:01:05 #3689 [Verbose] > │     let v2 : bool = v1 < 3                                                   │
00:01:05 #3690 [Verbose] > │     v2                                                                       │
00:01:05 #3691 [Verbose] > │ and method2 (v0 : (struct (int32 * int32) [])) : (struct (int32 * int32) []) │
00:01:05 #3692 [Verbose] > │ =                                                                            │
00:01:05 #3693 [Verbose] > │     v0                                                                       │
00:01:05 #3694 [Verbose] > │ and method3 (v0 : int32, v1 : Mut1) : bool =                                 │
00:01:05 #3695 [Verbose] > │     let v2 : int32 = v1.l0                                                   │
00:01:05 #3696 [Verbose] > │     let v3 : bool = v2 < v0                                                  │
00:01:05 #3697 [Verbose] > │     v3                                                                       │
00:01:05 #3698 [Verbose] > │ and method4 (v0 : int32, v1 : Mut0) : bool =                                 │
00:01:05 #3699 [Verbose] > │     let v2 : int32 = v1.l0                                                   │
00:01:05 #3700 [Verbose] > │     let v3 : bool = v2 < v0                                                  │
00:01:05 #3701 [Verbose] > │     v3                                                                       │
00:01:05 #3702 [Verbose] > │ and method5 (v0 : (struct (int32 * int32) []), v1 : (struct (int32 * int32)  │
00:01:05 #3703 [Verbose] > │ []), v2 : int32) : bool =                                                    │
00:01:05 #3704 [Verbose] > │     let v3 : int32 = v0.Length                                               │
00:01:05 #3705 [Verbose] > │     let v4 : bool = v2 < v3                                                  │
00:01:05 #3706 [Verbose] > │     if v4 then                                                               │
00:01:05 #3707 [Verbose] > │         let struct (v5 : int32, v6 : int32) = v0.[int v2]                    │
00:01:05 #3708 [Verbose] > │         let struct (v7 : int32, v8 : int32) = v1.[int v2]                    │
00:01:05 #3709 [Verbose] > │         let v9 : bool = v5 = v7                                              │
00:01:05 #3710 [Verbose] > │         let v11 : bool =                                                     │
00:01:05 #3711 [Verbose] > │             if v9 then                                                       │
00:01:05 #3712 [Verbose] > │                 let v10 : bool = v6 = v8                                     │
00:01:05 #3713 [Verbose] > │                 v10                                                          │
00:01:05 #3714 [Verbose] > │             else                                                             │
00:01:05 #3715 [Verbose] > │                 false                                                        │
00:01:05 #3716 [Verbose] > │         if v11 then                                                          │
00:01:05 #3717 [Verbose] > │             let v12 : int32 = v2 + 1                                         │
00:01:05 #3718 [Verbose] > │             method5(v0, v1, v12)                                             │
00:01:05 #3719 [Verbose] > │         else                                                                 │
00:01:05 #3720 [Verbose] > │             false                                                            │
00:01:05 #3721 [Verbose] > │     else                                                                     │
00:01:05 #3722 [Verbose] > │         true                                                                 │
00:01:05 #3723 [Verbose] > │ and method6 (v0 : bool) : bool =                                             │
00:01:05 #3724 [Verbose] > │     v0                                                                       │
00:01:05 #3725 [Verbose] > │ and method0 () : unit =                                                      │
00:01:05 #3726 [Verbose] > │     let v0 : (int32 []) = Array.zeroCreate<int32> (3)                        │
00:01:05 #3727 [Verbose] > │     let v1 : Mut0 = {l0 = 0} : Mut0                                          │
00:01:05 #3728 [Verbose] > │     while method1(v1) do                                                     │
00:01:05 #3729 [Verbose] > │         let v3 : int32 = v1.l0                                               │
00:01:05 #3730 [Verbose] > │         let v4 : int32 = 2 * v3                                              │
00:01:05 #3731 [Verbose] > │         v0.[int v3] <- v4                                                    │
00:01:05 #3732 [Verbose] > │         let v5 : int32 = v3 + 1                                              │
00:01:05 #3733 [Verbose] > │         v1.l0 <- v5                                                          │
00:01:05 #3734 [Verbose] > │         ()                                                                   │
00:01:05 #3735 [Verbose] > │     let v6 : (struct (int32 * int32) []) = [||]                              │
00:01:05 #3736 [Verbose] > │     let v7 : (struct (int32 * int32) []) = method2(v6)                       │
00:01:05 #3737 [Verbose] > │     let v8 : int32 = v0.Length                                               │
00:01:05 #3738 [Verbose] > │     let v9 : Mut1 = {l0 = 0; l1 = 0; l2 = v7} : Mut1                         │
00:01:05 #3739 [Verbose] > │     while method3(v8, v9) do                                                 │
00:01:05 #3740 [Verbose] > │         let v11 : int32 = v9.l0                                              │
00:01:05 #3741 [Verbose] > │         let struct (v12 : int32, v13 : (struct (int32 * int32) [])) = v9.l1, │
00:01:05 #3742 [Verbose] > │ v9.l2                                                                        │
00:01:05 #3743 [Verbose] > │         let v14 : int32 = v0.[int v11]                                       │
00:01:05 #3744 [Verbose] > │         let v15 : int32 = v12 + 1                                            │
00:01:05 #3745 [Verbose] > │         let v16 : (struct (int32 * int32) []) = [|struct (v12, v14)|]        │
00:01:05 #3746 [Verbose] > │         let v17 : (struct (int32 * int32) []) = method2(v16)                 │
00:01:05 #3747 [Verbose] > │         let v18 : int32 = v13.Length                                         │
00:01:05 #3748 [Verbose] > │         let v19 : int32 = v17.Length                                         │
00:01:05 #3749 [Verbose] > │         let v20 : int32 = v18 + v19                                          │
00:01:05 #3750 [Verbose] > │         let v21 : (struct (int32 * int32) []) = Array.zeroCreate<struct      │
00:01:05 #3751 [Verbose] > │ (int32 * int32)> (v20)                                                       │
00:01:05 #3752 [Verbose] > │         let v22 : Mut0 = {l0 = 0} : Mut0                                     │
00:01:05 #3753 [Verbose] > │         while method4(v20, v22) do                                           │
00:01:05 #3754 [Verbose] > │             let v24 : int32 = v22.l0                                         │
00:01:05 #3755 [Verbose] > │             let v25 : bool = v24 < v18                                       │
00:01:05 #3756 [Verbose] > │             let struct (v31 : int32, v32 : int32) =                          │
00:01:05 #3757 [Verbose] > │                 if v25 then                                                  │
00:01:05 #3758 [Verbose] > │                     let struct (v26 : int32, v27 : int32) = v13.[int v24]    │
00:01:05 #3759 [Verbose] > │                     struct (v26, v27)                                        │
00:01:05 #3760 [Verbose] > │                 else                                                         │
00:01:05 #3761 [Verbose] > │                     let v28 : int32 = v24 - v18                              │
00:01:05 #3762 [Verbose] > │                     let struct (v29 : int32, v30 : int32) = v17.[int v28]    │
00:01:05 #3763 [Verbose] > │                     struct (v29, v30)                                        │
00:01:05 #3764 [Verbose] > │             v21.[int v24] <- struct (v31, v32)                               │
00:01:05 #3765 [Verbose] > │             let v33 : int32 = v24 + 1                                        │
00:01:05 #3766 [Verbose] > │             v22.l0 <- v33                                                    │
00:01:05 #3767 [Verbose] > │             ()                                                               │
00:01:05 #3768 [Verbose] > │         let v34 : int32 = v11 + 1                                            │
00:01:05 #3769 [Verbose] > │         v9.l0 <- v34                                                         │
00:01:05 #3770 [Verbose] > │         v9.l1 <- v15                                                         │
00:01:05 #3771 [Verbose] > │         v9.l2 <- v21                                                         │
00:01:05 #3772 [Verbose] > │         ()                                                                   │
00:01:05 #3773 [Verbose] > │     let struct (v35 : int32, v36 : (struct (int32 * int32) [])) = v9.l1,     │
00:01:05 #3774 [Verbose] > │ v9.l2                                                                        │
00:01:05 #3775 [Verbose] > │     let v37 : (struct (int32 * int32) []) = [|struct (0, 0); struct (1, 2);  │
00:01:05 #3776 [Verbose] > │ struct (2, 4)|]                                                              │
00:01:05 #3777 [Verbose] > │     let v38 : (struct (int32 * int32) []) = method2(v37)                     │
00:01:05 #3778 [Verbose] > │     let v39 : string = $"%A{v36}"                                            │
00:01:05 #3779 [Verbose] > │     System.Console.WriteLine v39                                             │
00:01:05 #3780 [Verbose] > │     let v40 : int32 = v36.Length                                             │
00:01:05 #3781 [Verbose] > │     let v41 : int32 = v38.Length                                             │
00:01:05 #3782 [Verbose] > │     let v42 : bool = v40 = v41                                               │
00:01:05 #3783 [Verbose] > │     let v43 : bool = v42 <> true                                             │
00:01:05 #3784 [Verbose] > │     let v46 : bool =                                                         │
00:01:05 #3785 [Verbose] > │         if v43 then                                                          │
00:01:05 #3786 [Verbose] > │             false                                                            │
00:01:05 #3787 [Verbose] > │         else                                                                 │
00:01:05 #3788 [Verbose] > │             let v44 : int32 = 0                                              │
00:01:05 #3789 [Verbose] > │             method5(v36, v38, v44)                                           │
00:01:05 #3790 [Verbose] > │     let v48 : bool =                                                         │
00:01:05 #3791 [Verbose] > │         if v46 then                                                          │
00:01:05 #3792 [Verbose] > │             true                                                             │
00:01:05 #3793 [Verbose] > │         else                                                                 │
00:01:05 #3794 [Verbose] > │             method6(v46)                                                     │
00:01:05 #3795 [Verbose] > │     let v49 : string = $"__expect / actual: %A{v36} / expected: %A{v38}"     │
00:01:05 #3796 [Verbose] > │     let v50 : bool = v48 = false                                             │
00:01:05 #3797 [Verbose] > │     if v50 then                                                              │
00:01:05 #3798 [Verbose] > │         failwith<unit> v49                                                   │
00:01:05 #3799 [Verbose] > │ method0()                                                                    │
00:01:05 #3800 [Verbose] > │                                                                              │
00:01:05 #3801 [Verbose] > │ [|struct (0, 0); struct (1, 2); struct (2, 4)|]                              │
00:01:05 #3802 [Verbose] > │                                                                              │
00:01:05 #3803 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:05 #3804 [Verbose] >
00:01:05 #3805 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:05 #3806 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:05 #3807 [Verbose] > │ ## map_base                                                                  │
00:01:05 #3808 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:05 #3809 [Verbose] >
00:01:05 #3810 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:05 #3811 [Verbose] > inl map_base forall t u. (fn : t -> u) (x : array_base t) : array_base u =
00:01:05 #3812 [Verbose] >     a x
00:01:05 #3813 [Verbose] >     |> am.map fn
00:01:05 #3814 [Verbose] >     |> fun (a x : _ i64 _) => x
00:01:05 #3815 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-3449-4949-4ed0f9a08035/main.spi
00:01:05 #3816 [Verbose] >
00:01:05 #3817 [Verbose] > ╭─[ 256.18ms - stdout ]────────────────────────────────────────────────────────╮
00:01:05 #3818 [Verbose] > │ ()                                                                           │
00:01:05 #3819 [Verbose] > │                                                                              │
00:01:05 #3820 [Verbose] > │                                                                              │
00:01:05 #3821 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:05 #3822 [Verbose] >
00:01:05 #3823 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:05 #3824 [Verbose] > inl average forall el {number}. (array : a _ el) : el =
00:01:05 #3825 [Verbose] >     $"!array |> Array.average"
00:01:05 #3826 [Verbose] >
00:01:05 #3827 [Verbose] > inl length forall dim el {number}. (array : a dim el) : dim =
00:01:05 #3828 [Verbose] >     $"!array |> Array.length"
00:01:05 #3829 [Verbose] >
00:01:05 #3830 [Verbose] > inl parallel_map forall dim el el'. (fn : el -> el') (array : a dim el) : a dim
00:01:05 #3831 [Verbose] > el' =
00:01:05 #3832 [Verbose] >     $"!array |> Array.Parallel.map !fn"
00:01:05 #3833 [Verbose] >
00:01:05 #3834 [Verbose] > inl sort_by forall dim el. (fn : el -> _) (array : a dim el) : a dim el =
00:01:05 #3835 [Verbose] >     $"!array |> Array.sortBy !fn"
00:01:05 #3836 [Verbose] >
00:01:05 #3837 [Verbose] > inl sort_descending forall dim el. (array : a dim el) : a dim el =
00:01:05 #3838 [Verbose] >     $"!array |> Array.sortDescending"
00:01:05 #3839 [Verbose] >
00:01:05 #3840 [Verbose] > inl transpose forall dim el. (array : a dim (a dim el)) : a dim (a dim el) =
00:01:05 #3841 [Verbose] >     $"!array |> Array.transpose"
00:01:05 #3842 [Verbose] >
00:01:05 #3843 [Verbose] > inl try_item forall dim el. (i : i32) (array : a dim el) : option el =
00:01:05 #3844 [Verbose] >     $"!array |> Array.tryItem !i" |> optionm'.unbox
00:01:05 #3845 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-3475-7516-7100e5da506a/main.spi
00:01:05 #3846 [Verbose] >
00:01:05 #3847 [Verbose] > ╭─[ 207.58ms - stdout ]────────────────────────────────────────────────────────╮
00:01:05 #3848 [Verbose] > │ ()                                                                           │
00:01:05 #3849 [Verbose] > │                                                                              │
00:01:05 #3850 [Verbose] > │                                                                              │
00:01:05 #3851 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:05 #3852 [Verbose] >
00:01:05 #3853 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:05 #3854 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:05 #3855 [Verbose] > │ ## indexed                                                                   │
00:01:05 #3856 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:05 #3857 [Verbose] >
00:01:05 #3858 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:05 #3859 [Verbose] > inl indexed (array : a _ _) =
00:01:05 #3860 [Verbose] >     (([[]], 0), array)
00:01:05 #3861 [Verbose] >     ||> am.fold fun (acc, i) x =>
00:01:05 #3862 [Verbose] >         (i, x) :: acc, i + 1
00:01:05 #3863 [Verbose] >     |> fst
00:01:05 #3864 [Verbose] >     |> listm.rev
00:01:05 #3865 [Verbose] >     |> listm.toArray
00:01:05 #3866 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-3496-9607-96a7dedad181/main.spi
00:01:06 #3867 [Verbose] >
00:01:06 #3868 [Verbose] > ╭─[ 256.67ms - stdout ]────────────────────────────────────────────────────────╮
00:01:06 #3869 [Verbose] > │ ()                                                                           │
00:01:06 #3870 [Verbose] > │                                                                              │
00:01:06 #3871 [Verbose] > │                                                                              │
00:01:06 #3872 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:06 #3873 [Verbose] >
00:01:06 #3874 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:06 #3875 [Verbose] > // // test
00:01:06 #3876 [Verbose] >
00:01:06 #3877 [Verbose] > am.init 3i32 ((*) 2)
00:01:06 #3878 [Verbose] > |> indexed
00:01:06 #3879 [Verbose] > |> _assert_eq (a ;[[0i32, 0; 1, 2; 2, 4]] : a i32 _)
00:01:06 #3880 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-3521-2179-230fcc8cdc97/main.spi
00:01:06 #3881 [Verbose] >
00:01:06 #3882 [Verbose] > ╭─[ 505.41ms - stdout ]────────────────────────────────────────────────────────╮
00:01:06 #3883 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │
00:01:06 #3884 [Verbose] > │ and UH0 =                                                                    │
00:01:06 #3885 [Verbose] > │     | UH0_0 of int32 * int32 * UH0                                           │
00:01:06 #3886 [Verbose] > │     | UH0_1                                                                  │
00:01:06 #3887 [Verbose] > │ and Mut1 = {mutable l0 : int32; mutable l1 : UH0; mutable l2 : int32}        │
00:01:06 #3888 [Verbose] > │ let rec method1 (v0 : Mut0) : bool =                                         │
00:01:06 #3889 [Verbose] > │     let v1 : int32 = v0.l0                                                   │
00:01:06 #3890 [Verbose] > │     let v2 : bool = v1 < 3                                                   │
00:01:06 #3891 [Verbose] > │     v2                                                                       │
00:01:06 #3892 [Verbose] > │ and method2 (v0 : int32, v1 : Mut1) : bool =                                 │
00:01:06 #3893 [Verbose] > │     let v2 : int32 = v1.l0                                                   │
00:01:06 #3894 [Verbose] > │     let v3 : bool = v2 < v0                                                  │
00:01:06 #3895 [Verbose] > │     v3                                                                       │
00:01:06 #3896 [Verbose] > │ and method3 (v0 : UH0, v1 : UH0) : UH0 =                                     │
00:01:06 #3897 [Verbose] > │     match v0 with                                                            │
00:01:06 #3898 [Verbose] > │     | UH0_0(v2, v3, v4) -> (* Cons *)                                        │
00:01:06 #3899 [Verbose] > │         let v5 : UH0 = UH0_0(v2, v3, v1)                                     │
00:01:06 #3900 [Verbose] > │         method3(v4, v5)                                                      │
00:01:06 #3901 [Verbose] > │     | UH0_1 -> (* Nil *)                                                     │
00:01:06 #3902 [Verbose] > │         v1                                                                   │
00:01:06 #3903 [Verbose] > │ and method5 (v0 : UH0, v1 : int32) : int32 =                                 │
00:01:06 #3904 [Verbose] > │     match v0 with                                                            │
00:01:06 #3905 [Verbose] > │     | UH0_0(v2, v3, v4) -> (* Cons *)                                        │
00:01:06 #3906 [Verbose] > │         let v5 : int32 = v1 + 1                                              │
00:01:06 #3907 [Verbose] > │         method5(v4, v5)                                                      │
00:01:06 #3908 [Verbose] > │     | UH0_1 -> (* Nil *)                                                     │
00:01:06 #3909 [Verbose] > │         v1                                                                   │
00:01:06 #3910 [Verbose] > │ and method6 (v0 : (struct (int32 * int32) []), v1 : UH0, v2 : int32) : int32 │
00:01:06 #3911 [Verbose] > │ =                                                                            │
00:01:06 #3912 [Verbose] > │     match v1 with                                                            │
00:01:06 #3913 [Verbose] > │     | UH0_0(v3, v4, v5) -> (* Cons *)                                        │
00:01:06 #3914 [Verbose] > │         v0.[int v2] <- struct (v3, v4)                                       │
00:01:06 #3915 [Verbose] > │         let v6 : int32 = v2 + 1                                              │
00:01:06 #3916 [Verbose] > │         method6(v0, v5, v6)                                                  │
00:01:06 #3917 [Verbose] > │     | UH0_1 -> (* Nil *)                                                     │
00:01:06 #3918 [Verbose] > │         v2                                                                   │
00:01:06 #3919 [Verbose] > │ and method4 (v0 : UH0) : (struct (int32 * int32) []) =                       │
00:01:06 #3920 [Verbose] > │     let v1 : int32 = 0                                                       │
00:01:06 #3921 [Verbose] > │     let v2 : int32 = method5(v0, v1)                                         │
00:01:06 #3922 [Verbose] > │     let v3 : (struct (int32 * int32) []) = Array.zeroCreate<struct (int32 *  │
00:01:06 #3923 [Verbose] > │ int32)> (v2)                                                                 │
00:01:06 #3924 [Verbose] > │     let v4 : int32 = 0                                                       │
00:01:06 #3925 [Verbose] > │     let v5 : int32 = method6(v3, v0, v4)                                     │
00:01:06 #3926 [Verbose] > │     v3                                                                       │
00:01:06 #3927 [Verbose] > │ and method7 (v0 : (struct (int32 * int32) [])) : (struct (int32 * int32) []) │
00:01:06 #3928 [Verbose] > │ =                                                                            │
00:01:06 #3929 [Verbose] > │     v0                                                                       │
00:01:06 #3930 [Verbose] > │ and method8 (v0 : (struct (int32 * int32) []), v1 : (struct (int32 * int32)  │
00:01:06 #3931 [Verbose] > │ []), v2 : int32) : bool =                                                    │
00:01:06 #3932 [Verbose] > │     let v3 : int32 = v0.Length                                               │
00:01:06 #3933 [Verbose] > │     let v4 : bool = v2 < v3                                                  │
00:01:06 #3934 [Verbose] > │     if v4 then                                                               │
00:01:06 #3935 [Verbose] > │         let struct (v5 : int32, v6 : int32) = v0.[int v2]                    │
00:01:06 #3936 [Verbose] > │         let struct (v7 : int32, v8 : int32) = v1.[int v2]                    │
00:01:06 #3937 [Verbose] > │         let v9 : bool = v5 = v7                                              │
00:01:06 #3938 [Verbose] > │         let v11 : bool =                                                     │
00:01:06 #3939 [Verbose] > │             if v9 then                                                       │
00:01:06 #3940 [Verbose] > │                 let v10 : bool = v6 = v8                                     │
00:01:06 #3941 [Verbose] > │                 v10                                                          │
00:01:06 #3942 [Verbose] > │             else                                                             │
00:01:06 #3943 [Verbose] > │                 false                                                        │
00:01:06 #3944 [Verbose] > │         if v11 then                                                          │
00:01:06 #3945 [Verbose] > │             let v12 : int32 = v2 + 1                                         │
00:01:06 #3946 [Verbose] > │             method8(v0, v1, v12)                                             │
00:01:06 #3947 [Verbose] > │         else                                                                 │
00:01:06 #3948 [Verbose] > │             false                                                            │
00:01:06 #3949 [Verbose] > │     else                                                                     │
00:01:06 #3950 [Verbose] > │         true                                                                 │
00:01:06 #3951 [Verbose] > │ and method9 (v0 : bool) : bool =                                             │
00:01:06 #3952 [Verbose] > │     v0                                                                       │
00:01:06 #3953 [Verbose] > │ and method0 () : unit =                                                      │
00:01:06 #3954 [Verbose] > │     let v0 : (int32 []) = Array.zeroCreate<int32> (3)                        │
00:01:06 #3955 [Verbose] > │     let v1 : Mut0 = {l0 = 0} : Mut0                                          │
00:01:06 #3956 [Verbose] > │     while method1(v1) do                                                     │
00:01:06 #3957 [Verbose] > │         let v3 : int32 = v1.l0                                               │
00:01:06 #3958 [Verbose] > │         let v4 : int32 = 2 * v3                                              │
00:01:06 #3959 [Verbose] > │         v0.[int v3] <- v4                                                    │
00:01:06 #3960 [Verbose] > │         let v5 : int32 = v3 + 1                                              │
00:01:06 #3961 [Verbose] > │         v1.l0 <- v5                                                          │
00:01:06 #3962 [Verbose] > │         ()                                                                   │
00:01:06 #3963 [Verbose] > │     let v6 : int32 = v0.Length                                               │
00:01:06 #3964 [Verbose] > │     let v7 : UH0 = UH0_1                                                     │
00:01:06 #3965 [Verbose] > │     let v8 : Mut1 = {l0 = 0; l1 = v7; l2 = 0} : Mut1                         │
00:01:06 #3966 [Verbose] > │     while method2(v6, v8) do                                                 │
00:01:06 #3967 [Verbose] > │         let v10 : int32 = v8.l0                                              │
00:01:06 #3968 [Verbose] > │         let struct (v11 : UH0, v12 : int32) = v8.l1, v8.l2                   │
00:01:06 #3969 [Verbose] > │         let v13 : int32 = v0.[int v10]                                       │
00:01:06 #3970 [Verbose] > │         let v14 : int32 = v12 + 1                                            │
00:01:06 #3971 [Verbose] > │         let v15 : int32 = v10 + 1                                            │
00:01:06 #3972 [Verbose] > │         let v16 : UH0 = UH0_0(v12, v13, v11)                                 │
00:01:06 #3973 [Verbose] > │         v8.l0 <- v15                                                         │
00:01:06 #3974 [Verbose] > │         v8.l1 <- v16                                                         │
00:01:06 #3975 [Verbose] > │         v8.l2 <- v14                                                         │
00:01:06 #3976 [Verbose] > │         ()                                                                   │
00:01:06 #3977 [Verbose] > │     let struct (v17 : UH0, v18 : int32) = v8.l1, v8.l2                       │
00:01:06 #3978 [Verbose] > │     let v19 : UH0 = UH0_1                                                    │
00:01:06 #3979 [Verbose] > │     let v20 : UH0 = method3(v17, v19)                                        │
00:01:06 #3980 [Verbose] > │     let v21 : (struct (int32 * int32) []) = method4(v20)                     │
00:01:06 #3981 [Verbose] > │     let v22 : (struct (int32 * int32) []) = [|struct (0, 0); struct (1, 2);  │
00:01:06 #3982 [Verbose] > │ struct (2, 4)|]                                                              │
00:01:06 #3983 [Verbose] > │     let v23 : (struct (int32 * int32) []) = method7(v22)                     │
00:01:06 #3984 [Verbose] > │     let v24 : string = $"%A{v21}"                                            │
00:01:06 #3985 [Verbose] > │     System.Console.WriteLine v24                                             │
00:01:06 #3986 [Verbose] > │     let v25 : int32 = v21.Length                                             │
00:01:06 #3987 [Verbose] > │     let v26 : int32 = v23.Length                                             │
00:01:06 #3988 [Verbose] > │     let v27 : bool = v25 = v26                                               │
00:01:06 #3989 [Verbose] > │     let v28 : bool = v27 <> true                                             │
00:01:06 #3990 [Verbose] > │     let v31 : bool =                                                         │
00:01:06 #3991 [Verbose] > │         if v28 then                                                          │
00:01:06 #3992 [Verbose] > │             false                                                            │
00:01:06 #3993 [Verbose] > │         else                                                                 │
00:01:06 #3994 [Verbose] > │             let v29 : int32 = 0                                              │
00:01:06 #3995 [Verbose] > │             method8(v21, v23, v29)                                           │
00:01:06 #3996 [Verbose] > │     let v33 : bool =                                                         │
00:01:06 #3997 [Verbose] > │         if v31 then                                                          │
00:01:06 #3998 [Verbose] > │             true                                                             │
00:01:06 #3999 [Verbose] > │         else                                                                 │
00:01:06 #4000 [Verbose] > │             method9(v31)                                                     │
00:01:06 #4001 [Verbose] > │     let v34 : string = $"__expect / actual: %A{v21} / expected: %A{v23}"     │
00:01:06 #4002 [Verbose] > │     let v35 : bool = v33 = false                                             │
00:01:06 #4003 [Verbose] > │     if v35 then                                                              │
00:01:06 #4004 [Verbose] > │         failwith<unit> v34                                                   │
00:01:06 #4005 [Verbose] > │ method0()                                                                    │
00:01:06 #4006 [Verbose] > │                                                                              │
00:01:06 #4007 [Verbose] > │ [|struct (0, 0); struct (1, 2); struct (2, 4)|]                              │
00:01:06 #4008 [Verbose] > │                                                                              │
00:01:06 #4009 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:06 #4010 [Verbose] >
00:01:06 #4011 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:06 #4012 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:06 #4013 [Verbose] > │ ## from_vec                                                                  │
00:01:06 #4014 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:06 #4015 [Verbose] >
00:01:06 #4016 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:06 #4017 [Verbose] > inl from_vec forall dim el. (vec : vec el) : a dim el =
00:01:06 #4018 [Verbose] >     inl vec = join vec
00:01:06 #4019 [Verbose] >     !\($'"fable_library_rust::NativeArray_::array_from(!vec)"')
00:01:06 #4020 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-3573-7378-7a33813c2115/main.spi
00:01:06 #4021 [Verbose] >
00:01:06 #4022 [Verbose] > ╭─[ 226.57ms - stdout ]────────────────────────────────────────────────────────╮
00:01:06 #4023 [Verbose] > │ ()                                                                           │
00:01:06 #4024 [Verbose] > │                                                                              │
00:01:06 #4025 [Verbose] > │                                                                              │
00:01:06 #4026 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:06 #4027 [Verbose] >
00:01:06 #4028 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:06 #4029 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:06 #4030 [Verbose] > │ ## to_vec                                                                    │
00:01:06 #4031 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:06 #4032 [Verbose] >
00:01:06 #4033 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:06 #4034 [Verbose] > inl to_vec forall t. (ar : array_base t) : vec t =
00:01:06 #4035 [Verbose] >     inl ar = join ar
00:01:06 #4036 [Verbose] >     !\($'"!ar.to_vec()"')
00:01:06 #4037 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-3596-9661-941629289c07/main.spi
00:01:07 #4038 [Verbose] >
00:01:07 #4039 [Verbose] > ╭─[ 215.00ms - stdout ]────────────────────────────────────────────────────────╮
00:01:07 #4040 [Verbose] > │ ()                                                                           │
00:01:07 #4041 [Verbose] > │                                                                              │
00:01:07 #4042 [Verbose] > │                                                                              │
00:01:07 #4043 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:07 #4044 [Verbose] >
00:01:07 #4045 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:07 #4046 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:07 #4047 [Verbose] > │ ## vec_push                                                                  │
00:01:07 #4048 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:07 #4049 [Verbose] >
00:01:07 #4050 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:07 #4051 [Verbose] > inl vec_push forall el. (el : el) (vec : vec el) : vec el =
00:01:07 #4052 [Verbose] >     inl el = join el
00:01:07 #4053 [Verbose] >     inl vec = join vec
00:01:07 #4054 [Verbose] >     !\($'"let mut !vec = !vec"')
00:01:07 #4055 [Verbose] >     // inl vec = vec |> rust.to_mut
00:01:07 #4056 [Verbose] >     !\($'"!vec.push(!el)"')
00:01:07 #4057 [Verbose] >     !\($'"!vec"')
00:01:07 #4058 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-3618-1844-14719fca28b0/main.spi
00:01:07 #4059 [Verbose] >
00:01:07 #4060 [Verbose] > ╭─[ 188.84ms - stdout ]────────────────────────────────────────────────────────╮
00:01:07 #4061 [Verbose] > │ ()                                                                           │
00:01:07 #4062 [Verbose] > │                                                                              │
00:01:07 #4063 [Verbose] > │                                                                              │
00:01:07 #4064 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:07 #4065 [Verbose] >
00:01:07 #4066 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:07 #4067 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:07 #4068 [Verbose] > │ ## vec_reverse                                                               │
00:01:07 #4069 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:07 #4070 [Verbose] >
00:01:07 #4071 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:07 #4072 [Verbose] > inl vec_reverse forall el. (vec : vec el) : vec el =
00:01:07 #4073 [Verbose] >     inl vec = join vec
00:01:07 #4074 [Verbose] >     !\($'"let mut !vec = !vec"')
00:01:07 #4075 [Verbose] >     !\($'"!vec.reverse()"')
00:01:07 #4076 [Verbose] >     !\($'"!vec"')
00:01:07 #4077 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-3637-3752-37147ee630b5/main.spi
00:01:07 #4078 [Verbose] >
00:01:07 #4079 [Verbose] > ╭─[ 169.62ms - stdout ]────────────────────────────────────────────────────────╮
00:01:07 #4080 [Verbose] > │ ()                                                                           │
00:01:07 #4081 [Verbose] > │                                                                              │
00:01:07 #4082 [Verbose] > │                                                                              │
00:01:07 #4083 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:07 #4084 [Verbose] >
00:01:07 #4085 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:07 #4086 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:07 #4087 [Verbose] > │ ## vec_retain                                                                │
00:01:07 #4088 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:07 #4089 [Verbose] >
00:01:07 #4090 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:07 #4091 [Verbose] > inl vec_retain forall el. (fn : el -> bool) (vec : vec el) : vec el =
00:01:07 #4092 [Verbose] >     inl vec = join vec
00:01:07 #4093 [Verbose] >     inl fn = join fn
00:01:07 #4094 [Verbose] >     !\($'"let mut !vec = !vec"')
00:01:07 #4095 [Verbose] >     // inl vec = vec |> rust.to_mut
00:01:07 #4096 [Verbose] >     !\($'"!vec.retain(|x| !fn(x.clone()))"')
00:01:07 #4097 [Verbose] >     !\($'"!vec"')
00:01:07 #4098 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-3655-5501-599653301c41/main.spi
00:01:07 #4099 [Verbose] >
00:01:07 #4100 [Verbose] > ╭─[ 190.88ms - stdout ]────────────────────────────────────────────────────────╮
00:01:07 #4101 [Verbose] > │ ()                                                                           │
00:01:07 #4102 [Verbose] > │                                                                              │
00:01:07 #4103 [Verbose] > │                                                                              │
00:01:07 #4104 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:07 #4105 [Verbose] >
00:01:07 #4106 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:07 #4107 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:07 #4108 [Verbose] > │ ## vec_sort_by_key                                                           │
00:01:07 #4109 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:07 #4110 [Verbose] >
00:01:07 #4111 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:07 #4112 [Verbose] > inl vec_sort_by_key forall el t. (fn : el -> t) (vec : vec el) : vec el =
00:01:07 #4113 [Verbose] >     inl vec = join vec
00:01:07 #4114 [Verbose] >     inl fn = join fn
00:01:07 #4115 [Verbose] >     !\($'"let mut !vec = !vec"')
00:01:07 #4116 [Verbose] >     // inl vec = vec |> rust.to_mut
00:01:07 #4117 [Verbose] >     !\($'"!vec.sort_by_key(|x| !fn(x.clone()))"')
00:01:07 #4118 [Verbose] >     !\($'"!vec"')
00:01:07 #4119 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-3674-7430-737cbc832901/main.spi
00:01:07 #4120 [Verbose] >
00:01:07 #4121 [Verbose] > ╭─[ 187.15ms - stdout ]────────────────────────────────────────────────────────╮
00:01:07 #4122 [Verbose] > │ ()                                                                           │
00:01:07 #4123 [Verbose] > │                                                                              │
00:01:07 #4124 [Verbose] > │                                                                              │
00:01:07 #4125 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:07 #4126 [Verbose] >
00:01:07 #4127 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:07 #4128 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:07 #4129 [Verbose] > │ ## vec_extend                                                                │
00:01:07 #4130 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:07 #4131 [Verbose] >
00:01:07 #4132 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:07 #4133 [Verbose] > inl vec_extend forall el. (el : vec el) (vec : vec el) : vec el =
00:01:07 #4134 [Verbose] >     inl el = join el
00:01:07 #4135 [Verbose] >     inl vec = join vec
00:01:07 #4136 [Verbose] >     !\($'"let mut !vec = !vec"')
00:01:07 #4137 [Verbose] >     // inl vec = vec |> rust.to_mut
00:01:07 #4138 [Verbose] >     !\($'"!vec.extend(!el)"')
00:01:07 #4139 [Verbose] >     !\($'"!vec"')
00:01:07 #4140 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-3693-9332-95a6f16c5179/main.spi
00:01:07 #4141 [Verbose] >
00:01:07 #4142 [Verbose] > ╭─[ 201.86ms - stdout ]────────────────────────────────────────────────────────╮
00:01:07 #4143 [Verbose] > │ ()                                                                           │
00:01:07 #4144 [Verbose] > │                                                                              │
00:01:07 #4145 [Verbose] > │                                                                              │
00:01:07 #4146 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:07 #4147 [Verbose] >
00:01:07 #4148 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:07 #4149 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:07 #4150 [Verbose] > │ ## vec_collect                                                               │
00:01:07 #4151 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:07 #4152 [Verbose] >
00:01:07 #4153 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:07 #4154 [Verbose] > inl vec_collect fn vec =
00:01:07 #4155 [Verbose] >     ((;[[]] |> to_vec), (vec |> from_vec : _ i32 _))
00:01:07 #4156 [Verbose] >     ||> am.fold fun acc x =>
00:01:07 #4157 [Verbose] >         acc |> vec_extend (fn x)
00:01:08 #4158 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-3713-1374-1c293fe82689/main.spi
00:01:08 #4159 [Verbose] >
00:01:08 #4160 [Verbose] > ╭─[ 221.09ms - stdout ]────────────────────────────────────────────────────────╮
00:01:08 #4161 [Verbose] > │ ()                                                                           │
00:01:08 #4162 [Verbose] > │                                                                              │
00:01:08 #4163 [Verbose] > │                                                                              │
00:01:08 #4164 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:08 #4165 [Verbose] >
00:01:08 #4166 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:08 #4167 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:08 #4168 [Verbose] > │ ## vec_collect_option                                                        │
00:01:08 #4169 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:08 #4170 [Verbose] >
00:01:08 #4171 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:08 #4172 [Verbose] > inl vec_collect_option vec =
00:01:08 #4173 [Verbose] >     ((;[[]] |> to_vec |> Ok), (vec |> from_vec : _ i32 _))
00:01:08 #4174 [Verbose] >     ||> am.fold fun acc x =>
00:01:08 #4175 [Verbose] >         x
00:01:08 #4176 [Verbose] >         |> resultm.unbox
00:01:08 #4177 [Verbose] >         |> fun x =>
00:01:08 #4178 [Verbose] >             match acc, x |> resultm.map optionm'.unbox with
00:01:08 #4179 [Verbose] >             | Ok acc, Ok (Some x) => acc |> vec_extend x |> Ok
00:01:08 #4180 [Verbose] >             | _, Error error => error |> Error
00:01:08 #4181 [Verbose] >             | _ => acc
00:01:08 #4182 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-3736-3609-317c4bdb23d8/main.spi
00:01:08 #4183 [Verbose] >
00:01:08 #4184 [Verbose] > ╭─[ 262.20ms - stdout ]────────────────────────────────────────────────────────╮
00:01:08 #4185 [Verbose] > │ ()                                                                           │
00:01:08 #4186 [Verbose] > │                                                                              │
00:01:08 #4187 [Verbose] > │                                                                              │
00:01:08 #4188 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:08 #4189 [Verbose] >
00:01:08 #4190 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:08 #4191 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:08 #4192 [Verbose] > │ ## vec_collect_into                                                          │
00:01:08 #4193 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:08 #4194 [Verbose] >
00:01:08 #4195 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:08 #4196 [Verbose] > inl vec_collect_into forall (c : * -> * -> *) t e.
00:01:08 #4197 [Verbose] >     (x : vec (c t e))
00:01:08 #4198 [Verbose] >     : c (vec t) e
00:01:08 #4199 [Verbose] >     =
00:01:08 #4200 [Verbose] >     !\($'"!x.into_iter().collect()"')
00:01:08 #4201 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-3762-6256-676fa6bb3882/main.spi
00:01:08 #4202 [Verbose] >
00:01:08 #4203 [Verbose] > ╭─[ 211.55ms - stdout ]────────────────────────────────────────────────────────╮
00:01:08 #4204 [Verbose] > │ ()                                                                           │
00:01:08 #4205 [Verbose] > │                                                                              │
00:01:08 #4206 [Verbose] > │                                                                              │
00:01:08 #4207 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:08 #4208 [Verbose] >
00:01:08 #4209 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:08 #4210 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:08 #4211 [Verbose] > │ ## vec_mapi                                                                  │
00:01:08 #4212 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:08 #4213 [Verbose] >
00:01:08 #4214 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:08 #4215 [Verbose] > inl vec_mapi forall dim t u. (fn : dim -> t -> u) (ar : vec t) : vec u =
00:01:08 #4216 [Verbose] >     inl fn = join fn
00:01:08 #4217 [Verbose] >     inl ar = join ar
00:01:08 #4218 [Verbose] >     !\($'"!ar.iter().enumerate().map(|(i, x)|
00:01:08 #4219 [Verbose] > !fn(i.try_into().unwrap())(x.clone())).collect()"')
00:01:08 #4220 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-3783-8370-80e066fc1125/main.spi
00:01:08 #4221 [Verbose] >
00:01:08 #4222 [Verbose] > ╭─[ 173.25ms - stdout ]────────────────────────────────────────────────────────╮
00:01:08 #4223 [Verbose] > │ ()                                                                           │
00:01:08 #4224 [Verbose] > │                                                                              │
00:01:08 #4225 [Verbose] > │                                                                              │
00:01:08 #4226 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:08 #4227 [Verbose] >
00:01:08 #4228 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:08 #4229 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:08 #4230 [Verbose] > │ ## vec_map                                                                   │
00:01:08 #4231 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:08 #4232 [Verbose] >
00:01:08 #4233 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:08 #4234 [Verbose] > inl vec_map forall t u. (fn : t -> u) (ar : vec t) : vec u =
00:01:08 #4235 [Verbose] >     inl fn = join fn
00:01:08 #4236 [Verbose] >     inl ar = join ar
00:01:08 #4237 [Verbose] >     !\($'"!ar.iter().map(|x| !fn(x.clone())).collect()"')
00:01:08 #4238 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-3801-0119-0a6ae57535b8/main.spi
00:01:09 #4239 [Verbose] >
00:01:09 #4240 [Verbose] > ╭─[ 173.33ms - stdout ]────────────────────────────────────────────────────────╮
00:01:09 #4241 [Verbose] > │ ()                                                                           │
00:01:09 #4242 [Verbose] > │                                                                              │
00:01:09 #4243 [Verbose] > │                                                                              │
00:01:09 #4244 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:09 #4245 [Verbose] >
00:01:09 #4246 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:09 #4247 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:09 #4248 [Verbose] > │ ## vec_filter                                                                │
00:01:09 #4249 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:09 #4250 [Verbose] >
00:01:09 #4251 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:09 #4252 [Verbose] > inl vec_filter forall t. (fn : t -> bool) (ar : vec t) : vec t =
00:01:09 #4253 [Verbose] >     inl fn = join fn
00:01:09 #4254 [Verbose] >     inl ar = join ar
00:01:09 #4255 [Verbose] >     !\($'"!ar.into_iter().filter(|x| !fn(x.clone().clone())).collect()"')
00:01:09 #4256 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-3818-1855-104f2d7c2036/main.spi
00:01:09 #4257 [Verbose] >
00:01:09 #4258 [Verbose] > ╭─[ 187.95ms - stdout ]────────────────────────────────────────────────────────╮
00:01:09 #4259 [Verbose] > │ ()                                                                           │
00:01:09 #4260 [Verbose] > │                                                                              │
00:01:09 #4261 [Verbose] > │                                                                              │
00:01:09 #4262 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:09 #4263 [Verbose] >
00:01:09 #4264 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:09 #4265 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:09 #4266 [Verbose] > │ ## enumerate                                                                 │
00:01:09 #4267 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:09 #4268 [Verbose] >
00:01:09 #4269 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:09 #4270 [Verbose] > inl enumerate forall dim {int; number} t. (ar : a dim t) : a dim (unativeint *
00:01:09 #4271 [Verbose] > t) =
00:01:09 #4272 [Verbose] >     inl (a ar) = ar
00:01:09 #4273 [Verbose] >     inl ar = ar |> to_vec
00:01:09 #4274 [Verbose] >     !\($'"!ar.into_iter().enumerate().map(std::rc::Rc::new).collect()"')
00:01:09 #4275 [Verbose] >     |> vec_map from_pair
00:01:09 #4276 [Verbose] >     |> from_vec
00:01:09 #4277 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-3837-3744-33f311298835/main.spi
00:01:09 #4278 [Verbose] >
00:01:09 #4279 [Verbose] > ╭─[ 203.14ms - stdout ]────────────────────────────────────────────────────────╮
00:01:09 #4280 [Verbose] > │ ()                                                                           │
00:01:09 #4281 [Verbose] > │                                                                              │
00:01:09 #4282 [Verbose] > │                                                                              │
00:01:09 #4283 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:09 #4284 [Verbose] >
00:01:09 #4285 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:09 #4286 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:09 #4287 [Verbose] > │ ## slice'                                                                    │
00:01:09 #4288 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:09 #4289 [Verbose] >
00:01:09 #4290 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:09 #4291 [Verbose] > inl slice' forall dim el. (x : option el) : slice' el dim =
00:01:09 #4292 [Verbose] >     match x with
00:01:09 #4293 [Verbose] >     | Some x => !\($'"[[!x]]"')
00:01:09 #4294 [Verbose] >     | None =>
00:01:09 #4295 [Verbose] >         !\($'"[[\\\"\\\".to_string()]]"') : slice' el dim
00:01:09 #4296 [Verbose] >             // emit_expr `(()) `(slice' el dim) () ($'"[[@dim]]"' : string) :
00:01:09 #4297 [Verbose] > slice' el 10
00:01:09 #4298 [Verbose] >             // !\( : string) : slice' el i32 // !\($'"[[]]"')
00:01:09 #4299 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-3858-5807-5b608048ca46/main.spi
00:01:09 #4300 [Verbose] >
00:01:09 #4301 [Verbose] > ╭─[ 171.37ms - stdout ]────────────────────────────────────────────────────────╮
00:01:09 #4302 [Verbose] > │ ()                                                                           │
00:01:09 #4303 [Verbose] > │                                                                              │
00:01:09 #4304 [Verbose] > │                                                                              │
00:01:09 #4305 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:09 #4306 [Verbose] >
00:01:09 #4307 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:09 #4308 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:09 #4309 [Verbose] > │ ## as_slice                                                                  │
00:01:09 #4310 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:09 #4311 [Verbose] >
00:01:09 #4312 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:09 #4313 [Verbose] > inl as_slice forall t. (x : array_base t) : rust.ref' (slice t) =
00:01:09 #4314 [Verbose] >     inl x = x |> to_vec
00:01:09 #4315 [Verbose] >     !\($'"!x.as_slice()"')
00:01:09 #4316 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-3875-7563-715ae7ea0f78/main.spi
00:01:09 #4317 [Verbose] >
00:01:09 #4318 [Verbose] > ╭─[ 164.19ms - stdout ]────────────────────────────────────────────────────────╮
00:01:09 #4319 [Verbose] > │ ()                                                                           │
00:01:09 #4320 [Verbose] > │                                                                              │
00:01:09 #4321 [Verbose] > │                                                                              │
00:01:09 #4322 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:11 #4323 [Verbose] > [NbConvertApp] Converting notebook am'.dib.ipynb to html
00:01:11 #4324 [Verbose] > /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:01:11 #4325 [Verbose] >   validate(nb)
00:01:11 #4326 [Verbose] >
00:01:11 #4327 [Verbose] > ╭─[ 10.83s - stdout ]──────────────────────────────────────────────────────────╮
00:01:11 #4328 [Verbose] > │ ()                                                                           │
00:01:11 #4329 [Verbose] > │                                                                              │
00:01:11 #4330 [Verbose] > │                                                                              │
00:01:11 #4331 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:11 #4332 [Verbose] >
00:01:11 #4333 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:11 #4334 [Verbose] > // // test
00:01:11 #4335 [Verbose] >
00:01:11 #4336 [Verbose] > inl x = Some 3i32
00:01:11 #4337 [Verbose] > inl y : option i32 = None
00:01:11 #4338 [Verbose] > inl x' = x |> box |> unbox
00:01:11 #4339 [Verbose] > inl y' = y |> box |> unbox
00:01:11 #4340 [Verbose] > (x', y') |> _assert_eq (x, y)
00:01:11 #4341 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-4100-0064-029d9e846c7c/main.spi
00:01:12 #4342 [Verbose] >
00:01:12 #4343 [Verbose] > ╭─[ 754.40ms - stdout ]────────────────────────────────────────────────────────╮
00:01:12 #4344 [Verbose] > │ type [<Struct>] US0 =                                                        │
00:01:12 #4345 [Verbose] > │     | US0_0                                                                  │
00:01:12 #4346 [Verbose] > │     | US0_1 of f1_0 : int32                                                  │
00:01:12 #4347 [Verbose] > │ let rec closure0 () (v0 : int32) : US0 =                                     │
00:01:12 #4348 [Verbose] > │     US0_1(v0)                                                                │
00:01:12 #4349 [Verbose] > │ and method1 (v0 : bool) : bool =                                             │
00:01:12 #4350 [Verbose] > │     v0                                                                       │
00:01:12 #4351 [Verbose] > │ and method0 () : unit =                                                      │
00:01:12 #4352 [Verbose] > │     let v0 : int32 option = Some 3                                           │
00:01:12 #4353 [Verbose] > │     let v1 : (int32 -> US0) = closure0()                                     │
00:01:12 #4354 [Verbose] > │     let v2 : US0 = US0_0                                                     │
00:01:12 #4355 [Verbose] > │     let v3 : US0 = v0 |> Option.map v1 |> Option.defaultValue v2             │
00:01:12 #4356 [Verbose] > │     let v4 : int32 option = None                                             │
00:01:12 #4357 [Verbose] > │     let v5 : US0 = US0_0                                                     │
00:01:12 #4358 [Verbose] > │     let v6 : US0 = v4 |> Option.map v1 |> Option.defaultValue v5             │
00:01:12 #4359 [Verbose] > │     let v7 : string = $"%A{struct (v3, v6)}"                                 │
00:01:12 #4360 [Verbose] > │     System.Console.WriteLine v7                                              │
00:01:12 #4361 [Verbose] > │     let v12 : bool =                                                         │
00:01:12 #4362 [Verbose] > │         match v3 with                                                        │
00:01:12 #4363 [Verbose] > │         | US0_1(v10) -> (* Some *)                                           │
00:01:12 #4364 [Verbose] > │             let v11 : bool = v10 = 3                                         │
00:01:12 #4365 [Verbose] > │             v11                                                              │
00:01:12 #4366 [Verbose] > │         | _ ->                                                               │
00:01:12 #4367 [Verbose] > │             false                                                            │
00:01:12 #4368 [Verbose] > │     let v14 : bool =                                                         │
00:01:12 #4369 [Verbose] > │         if v12 then                                                          │
00:01:12 #4370 [Verbose] > │             match v6 with                                                    │
00:01:12 #4371 [Verbose] > │             | US0_0 -> (* None *)                                            │
00:01:12 #4372 [Verbose] > │                 true                                                         │
00:01:12 #4373 [Verbose] > │             | _ ->                                                           │
00:01:12 #4374 [Verbose] > │                 false                                                        │
00:01:12 #4375 [Verbose] > │         else                                                                 │
00:01:12 #4376 [Verbose] > │             false                                                            │
00:01:12 #4377 [Verbose] > │     let v16 : bool =                                                         │
00:01:12 #4378 [Verbose] > │         if v14 then                                                          │
00:01:12 #4379 [Verbose] > │             true                                                             │
00:01:12 #4380 [Verbose] > │         else                                                                 │
00:01:12 #4381 [Verbose] > │             method1(v14)                                                     │
00:01:12 #4382 [Verbose] > │     let v17 : US0 = US0_1(3)                                                 │
00:01:12 #4383 [Verbose] > │     let v18 : US0 = US0_0                                                    │
00:01:12 #4384 [Verbose] > │     let v19 : string = $"__expect / actual: %A{struct (v3, v6)} / expected:  │
00:01:12 #4385 [Verbose] > │ %A{struct (v17, v18)}"                                                       │
00:01:12 #4386 [Verbose] > │     let v20 : bool = v16 = false                                             │
00:01:12 #4387 [Verbose] > │     if v20 then                                                              │
00:01:12 #4388 [Verbose] > │         failwith<unit> v19                                                   │
00:01:12 #4389 [Verbose] > │ method0()                                                                    │
00:01:12 #4390 [Verbose] > │                                                                              │
00:01:12 #4391 [Verbose] > │ struct (US0_1 3, US0_0)                                                      │
00:01:12 #4392 [Verbose] > │                                                                              │
00:01:12 #4393 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:12 #4394 [Verbose] >
00:01:12 #4395 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:12 #4396 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:12 #4397 [Verbose] > │ ## map                                                                       │
00:01:12 #4398 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:12 #4399 [Verbose] >
00:01:12 #4400 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:12 #4401 [Verbose] > inl map forall t u. (fn : t -> u) (x : option' t) : option' u =
00:01:12 #4402 [Verbose] >     inl x = join x
00:01:12 #4403 [Verbose] >     inl fn = join fn
00:01:12 #4404 [Verbose] >     !\($'"!x.map(|x| !fn(x))"')
00:01:12 #4405 [Verbose] > /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:01:12 #4406 [Verbose] >   return _pygments_highlight(
00:01:12 #4407 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-4177-7711-756924f98120/main.spi
00:01:12 #4408 [Verbose] >
00:01:12 #4409 [Verbose] > ╭─[ 196.24ms - stdout ]────────────────────────────────────────────────────────╮
00:01:12 #4410 [Verbose] > │ ()                                                                           │
00:01:12 #4411 [Verbose] > │                                                                              │
00:01:12 #4412 [Verbose] > │                                                                              │
00:01:12 #4413 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:12 #4414 [Verbose] >
00:01:12 #4415 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:12 #4416 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:12 #4417 [Verbose] > │ ## flatten                                                                   │
00:01:12 #4418 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:12 #4419 [Verbose] >
00:01:12 #4420 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:12 #4421 [Verbose] > inl flatten x =
00:01:12 #4422 [Verbose] >     match x with
00:01:12 #4423 [Verbose] >     | Some (Some x) => Some x
00:01:12 #4424 [Verbose] >     | _ => None
00:01:12 #4425 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-4196-9673-9378cc4824d3/main.spi
00:01:12 #4426 [Verbose] >
00:01:12 #4427 [Verbose] > ╭─[ 187.72ms - stdout ]────────────────────────────────────────────────────────╮
00:01:12 #4428 [Verbose] > │ ()                                                                           │
00:01:12 #4429 [Verbose] > │                                                                              │
00:01:12 #4430 [Verbose] > │                                                                              │
00:01:12 #4431 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:12 #4432 [Verbose] >
00:01:12 #4433 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:12 #4434 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:12 #4435 [Verbose] > │ ## unwrap                                                                    │
00:01:12 #4436 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:12 #4437 [Verbose] >
00:01:12 #4438 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:12 #4439 [Verbose] > inl unwrap forall t. (x : option' t) : t =
00:01:12 #4440 [Verbose] >     !\($'"!x.unwrap()"')
00:01:13 #4441 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-4215-1558-12f03711db2e/main.spi
00:01:13 #4442 [Verbose] >
00:01:13 #4443 [Verbose] > ╭─[ 186.54ms - stdout ]────────────────────────────────────────────────────────╮
00:01:13 #4444 [Verbose] > │ ()                                                                           │
00:01:13 #4445 [Verbose] > │                                                                              │
00:01:13 #4446 [Verbose] > │                                                                              │
00:01:13 #4447 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:13 #4448 [Verbose] >
00:01:13 #4449 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:13 #4450 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:13 #4451 [Verbose] > │ ## unwrap_or                                                                 │
00:01:13 #4452 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:13 #4453 [Verbose] >
00:01:13 #4454 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:13 #4455 [Verbose] > inl unwrap_or forall t. (def : t) (x : option' t) : t =
00:01:13 #4456 [Verbose] >     !\($'"!x.unwrap_or(!def)"')
00:01:13 #4457 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-4234-3430-3654a096788f/main.spi
00:01:13 #4458 [Verbose] >
00:01:13 #4459 [Verbose] > ╭─[ 239.12ms - stdout ]────────────────────────────────────────────────────────╮
00:01:13 #4460 [Verbose] > │ ()                                                                           │
00:01:13 #4461 [Verbose] > │                                                                              │
00:01:13 #4462 [Verbose] > │                                                                              │
00:01:13 #4463 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:13 #4464 [Verbose] >
00:01:13 #4465 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:13 #4466 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:13 #4467 [Verbose] > │ ## rc_upgrade                                                                │
00:01:13 #4468 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:13 #4469 [Verbose] >
00:01:13 #4470 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:13 #4471 [Verbose] > inl rc_upgrade forall t. (x : rust.weak_rc t) : option (rust.rc t) =
00:01:13 #4472 [Verbose] >     inl x = join x
00:01:13 #4473 [Verbose] >     !\($'"std::rc::Weak::upgrade(&!x)"')
00:01:13 #4474 [Verbose] >     |> unbox
00:01:13 #4475 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-4258-5828-55afb30821a3/main.spi
00:01:13 #4476 [Verbose] >
00:01:13 #4477 [Verbose] > ╭─[ 183.41ms - stdout ]────────────────────────────────────────────────────────╮
00:01:13 #4478 [Verbose] > │ ()                                                                           │
00:01:13 #4479 [Verbose] > │                                                                              │
00:01:13 #4480 [Verbose] > │                                                                              │
00:01:13 #4481 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:13 #4482 [Verbose] > [NbConvertApp] Writing 384901 bytes to am'.dib.html
00:01:14 #4483 [Debug] executeAsync / exitCode: 0 / output.Length: 112296
00:01:14 #4484 [Debug] main / executeCommand / exitCode: 0
00:01:14 #4485 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 \"sm'.dib\"""
  WorkingDirectory = None
  CancellationToken = Some System.Threading.CancellationToken
  OnLine = None }
00:01:15 #4486 [Verbose] > [NbConvertApp] Converting notebook optionm'.dib.ipynb to html
00:01:15 #4487 [Verbose] > /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:01:15 #4488 [Verbose] >   validate(nb)
00:01:15 #4489 [Verbose] >
00:01:15 #4490 [Verbose] > ╭─[ 59.51s - return value ]────────────────────────────────────────────────────╮
00:01:15 #4491 [Verbose] > │ .rs output:                                                                  │
00:01:15 #4492 [Verbose] > │ true                                                                         │
00:01:15 #4493 [Verbose] > │                                                                              │
00:01:15 #4494 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:15 #4495 [Verbose] >
00:01:15 #4496 [Verbose] > ╭─[ 59.51s - stdout ]──────────────────────────────────────────────────────────╮
00:01:15 #4497 [Verbose] > │                                                                              │
00:01:15 #4498 [Verbose] > │ .fsx:                                                                        │
00:01:15 #4499 [Verbose] > │ let rec method1 (v0 : bool) : bool =                                         │
00:01:15 #4500 [Verbose] > │     v0                                                                       │
00:01:15 #4501 [Verbose] > │ and method0 () : unit =                                                      │
00:01:15 #4502 [Verbose] > │     let mutable result = None                                                │
00:01:15 #4503 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM                                         │
00:01:15 #4504 [Verbose] > │     let v0 : uint8 = 1uy                                                     │
00:01:15 #4505 [Verbose] > │     v0                                                                       │
00:01:15 #4506 [Verbose] > │     #endif                                                                   │
00:01:15 #4507 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │
00:01:15 #4508 [Verbose] > │     let v1 : uint8 = 2uy                                                     │
00:01:15 #4509 [Verbose] > │     v1                                                                       │
00:01:15 #4510 [Verbose] > │     #endif                                                                   │
00:01:15 #4511 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │
00:01:15 #4512 [Verbose] > │     let v2 : uint8 = 2uy                                                     │
00:01:15 #4513 [Verbose] > │     v2                                                                       │
00:01:15 #4514 [Verbose] > │     #endif                                                                   │
00:01:15 #4515 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │
00:01:15 #4516 [Verbose] > │     let v3 : uint8 = 2uy                                                     │
00:01:15 #4517 [Verbose] > │     v3                                                                       │
00:01:15 #4518 [Verbose] > │     #endif                                                                   │
00:01:15 #4519 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │
00:01:15 #4520 [Verbose] > │     let v4 : uint8 = 2uy                                                     │
00:01:15 #4521 [Verbose] > │     v4                                                                       │
00:01:15 #4522 [Verbose] > │     #endif                                                                   │
00:01:15 #4523 [Verbose] > │     |> fun x -> result <- Some x                                             │
00:01:15 #4524 [Verbose] > │     let v5 : uint8 = result |> Option.get                                    │
00:01:15 #4525 [Verbose] > │     let v6 : bool = 1uy = v5                                                 │
00:01:15 #4526 [Verbose] > │     let v7 : string = $"%A{v6}"                                              │
00:01:15 #4527 [Verbose] > │     System.Console.WriteLine v7                                              │
00:01:15 #4528 [Verbose] > │     let v9 : bool =                                                          │
00:01:15 #4529 [Verbose] > │         if v6 then                                                           │
00:01:15 #4530 [Verbose] > │             true                                                             │
00:01:15 #4531 [Verbose] > │         else                                                                 │
00:01:15 #4532 [Verbose] > │             method1(v6)                                                      │
00:01:15 #4533 [Verbose] > │     let v10 : string = $"__expect / actual: %A{v6} / expected: %A{true}"     │
00:01:15 #4534 [Verbose] > │     let v11 : bool = v9 = false                                              │
00:01:15 #4535 [Verbose] > │     if v11 then                                                              │
00:01:15 #4536 [Verbose] > │         failwith<unit> v10                                                   │
00:01:15 #4537 [Verbose] > │ method0()                                                                    │
00:01:15 #4538 [Verbose] > │                                                                              │
00:01:15 #4539 [Verbose] > │                                                                              │
00:01:15 #4540 [Verbose] > │ .rs:                                                                         │
00:01:15 #4541 [Verbose] > │ #![allow(dead_code,)]                                                        │
00:01:15 #4542 [Verbose] > │ #![allow(non_camel_case_types,)]                                             │
00:01:15 #4543 [Verbose] > │ #![allow(non_snake_case,)]                                                   │
00:01:15 #4544 [Verbose] > │ #![allow(non_upper_case_globals,)]                                           │
00:01:15 #4545 [Verbose] > │ #![allow(unreachable_code,)]                                                 │
00:01:15 #4546 [Verbose] > │ #![allow(unused_attributes,)]                                                │
00:01:15 #4547 [Verbose] > │ #![allow(unused_imports,)]                                                   │
00:01:15 #4548 [Verbose] > │ #![allow(unused_macros,)]                                                    │
00:01:15 #4549 [Verbose] > │ #![allow(unused_parens,)]                                                    │
00:01:15 #4550 [Verbose] > │ #![allow(unused_variables,)]                                                 │
00:01:15 #4551 [Verbose] > │ mod module_ccfa04bf {                                                        │
00:01:15 #4552 [Verbose] > │     pub mod Spiral_eval {                                                    │
00:01:15 #4553 [Verbose] > │         use super::*;                                                        │
00:01:15 #4554 [Verbose] > │         use fable_library_rust::Native_::MutCell;                            │
00:01:15 #4555 [Verbose] > │         use fable_library_rust::Native_::on_startup;                         │
00:01:15 #4556 [Verbose] > │         use fable_library_rust::Option_::getValue;                           │
00:01:15 #4557 [Verbose] > │         use fable_library_rust::String_::printfn;                            │
00:01:15 #4558 [Verbose] > │         use fable_library_rust::String_::sprintf;                            │
00:01:15 #4559 [Verbose] > │         use fable_library_rust::String_::string;                             │
00:01:15 #4560 [Verbose] > │         pub fn method1(v0: bool) -> bool { v0 }                              │
00:01:15 #4561 [Verbose] > │         pub fn method0() {                                                   │
00:01:15 #4562 [Verbose] > │             let result: MutCell<Option<u8>> = MutCell::new(None::<u8>);      │
00:01:15 #4563 [Verbose] > │             result.set(Some(1_u8));                                          │
00:01:15 #4564 [Verbose] > │             {                                                                │
00:01:15 #4565 [Verbose] > │                 let v6: bool = 1_u8 == getValue(result.get().clone());       │
00:01:15 #4566 [Verbose] > │                 let v7: string = sprintf!("{:?}", v6);                       │
00:01:15 #4567 [Verbose] > │                 printfn!("{0}", v7);                                         │
00:01:15 #4568 [Verbose] > │                 if (if v6 { true } else { Spiral_eval::method1(v6) }) ==     │
00:01:15 #4569 [Verbose] > │ false                                                                        │
00:01:15 #4570 [Verbose] > │                    {                                                         │
00:01:15 #4571 [Verbose] > │                     panic!("{}",                                             │
00:01:15 #4572 [Verbose] > │                            sprintf!("__expect / actual: {:?} / expected:     │
00:01:15 #4573 [Verbose] > │ {:?}", v6, true));                                                           │
00:01:15 #4574 [Verbose] > │                 }                                                            │
00:01:15 #4575 [Verbose] > │             }                                                                │
00:01:15 #4576 [Verbose] > │         }                                                                    │
00:01:15 #4577 [Verbose] > │         on_startup!(Spiral_eval::method0());                                 │
00:01:15 #4578 [Verbose] > │     }                                                                        │
00:01:15 #4579 [Verbose] > │ }                                                                            │
00:01:15 #4580 [Verbose] > │ pub use module_ccfa04bf::*;                                                  │
00:01:15 #4581 [Verbose] > │                                                                              │
00:01:15 #4582 [Verbose] > │                                                                              │
00:01:15 #4583 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:15 #4584 [Verbose] >
00:01:15 #4585 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:15 #4586 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:15 #4587 [Verbose] > │ ## nameof                                                                    │
00:01:15 #4588 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:15 #4589 [Verbose] >
00:01:15 #4590 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:15 #4591 [Verbose] > inl nameof x : string =
00:01:15 #4592 [Verbose] >     $"nameof !x"
00:01:15 #4593 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-4468-6831-6813ce7c02ef/main.spi
00:01:15 #4594 [Verbose] >
00:01:15 #4595 [Verbose] > ╭─[ 138.86ms - stdout ]────────────────────────────────────────────────────────╮
00:01:15 #4596 [Verbose] > │ ()                                                                           │
00:01:15 #4597 [Verbose] > │                                                                              │
00:01:15 #4598 [Verbose] > │                                                                              │
00:01:15 #4599 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:15 #4600 [Verbose] >
00:01:15 #4601 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:15 #4602 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:15 #4603 [Verbose] > │ ## get_environment_variable                                                  │
00:01:15 #4604 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:15 #4605 [Verbose] >
00:01:15 #4606 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:15 #4607 [Verbose] > inl get_environment_variable (var : string) : string =
00:01:15 #4608 [Verbose] >     $"System.Environment.GetEnvironmentVariable !var"
00:01:15 #4609 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-4482-8221-8e4d722b45a5/main.spi
00:01:15 #4610 [Verbose] >
00:01:15 #4611 [Verbose] > ╭─[ 135.43ms - stdout ]────────────────────────────────────────────────────────╮
00:01:15 #4612 [Verbose] > │ ()                                                                           │
00:01:15 #4613 [Verbose] > │                                                                              │
00:01:15 #4614 [Verbose] > │                                                                              │
00:01:15 #4615 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:15 #4616 [Verbose] >
00:01:15 #4617 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:15 #4618 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:15 #4619 [Verbose] > │ ## memoize                                                                   │
00:01:15 #4620 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:15 #4621 [Verbose] >
00:01:15 #4622 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:15 #4623 [Verbose] > nominal lazy t = $'Lazy<`t>'
00:01:15 #4624 [Verbose] >
00:01:15 #4625 [Verbose] > inl memoize forall t. (fn : () -> t) : () -> t =
00:01:15 #4626 [Verbose] >     inl result : lazy t = $'lazy !fn ()'
00:01:15 #4627 [Verbose] >     fun () => $'!result.Value'
00:01:15 #4628 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-4496-9608-95e43622f892/main.spi
00:01:15 #4629 [Verbose] >
00:01:15 #4630 [Verbose] > ╭─[ 169.53ms - stdout ]────────────────────────────────────────────────────────╮
00:01:15 #4631 [Verbose] > │ ()                                                                           │
00:01:15 #4632 [Verbose] > │                                                                              │
00:01:15 #4633 [Verbose] > │                                                                              │
00:01:15 #4634 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:15 #4635 [Verbose] >
00:01:15 #4636 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:15 #4637 [Verbose] > // // test
00:01:15 #4638 [Verbose] >
00:01:15 #4639 [Verbose] > inl count = mut 0i32
00:01:15 #4640 [Verbose] > inl add =
00:01:15 #4641 [Verbose] >     fun () => count <- *count + 1
00:01:15 #4642 [Verbose] >     |> memoize
00:01:15 #4643 [Verbose] >
00:01:15 #4644 [Verbose] > add ()
00:01:15 #4645 [Verbose] > add ()
00:01:15 #4646 [Verbose] > add ()
00:01:15 #4647 [Verbose] >
00:01:15 #4648 [Verbose] > *count
00:01:15 #4649 [Verbose] > |> _assert_eq 1
00:01:16 #4650 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-4513-1313-143c6c5d6028/main.spi
00:01:16 #4651 [Verbose] > /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:01:16 #4652 [Verbose] >   return _pygments_highlight(
00:01:16 #4653 [Verbose] > [NbConvertApp] Writing 306791 bytes to optionm'.dib.html
00:01:16 #4654 [Verbose] >
00:01:16 #4655 [Verbose] > ╭─[ 484.76ms - stdout ]────────────────────────────────────────────────────────╮
00:01:16 #4656 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │
00:01:16 #4657 [Verbose] > │ let rec closure0 (v0 : Mut0) () : unit =                                     │
00:01:16 #4658 [Verbose] > │     let v1 : int32 = v0.l0                                                   │
00:01:16 #4659 [Verbose] > │     let v2 : int32 = v1 + 1                                                  │
00:01:16 #4660 [Verbose] > │     v0.l0 <- v2                                                              │
00:01:16 #4661 [Verbose] > │     ()                                                                       │
00:01:16 #4662 [Verbose] > │ and method1 (v0 : bool) : bool =                                             │
00:01:16 #4663 [Verbose] > │     v0                                                                       │
00:01:16 #4664 [Verbose] > │ and method0 () : unit =                                                      │
00:01:16 #4665 [Verbose] > │     let v0 : Mut0 = {l0 = 0} : Mut0                                          │
00:01:16 #4666 [Verbose] > │     let v1 : (unit -> unit) = closure0(v0)                                   │
00:01:16 #4667 [Verbose] > │     let v2 : Lazy<unit> = lazy v1 ()                                         │
00:01:16 #4668 [Verbose] > │     v2.Value                                                                 │
00:01:16 #4669 [Verbose] > │     v2.Value                                                                 │
00:01:16 #4670 [Verbose] > │     v2.Value                                                                 │
00:01:16 #4671 [Verbose] > │     let v3 : int32 = v0.l0                                                   │
00:01:16 #4672 [Verbose] > │     let v4 : string = $"%A{v3}"                                              │
00:01:16 #4673 [Verbose] > │     System.Console.WriteLine v4                                              │
00:01:16 #4674 [Verbose] > │     let v5 : bool = v3 = 1                                                   │
00:01:16 #4675 [Verbose] > │     let v7 : bool =                                                          │
00:01:16 #4676 [Verbose] > │         if v5 then                                                           │
00:01:16 #4677 [Verbose] > │             true                                                             │
00:01:16 #4678 [Verbose] > │         else                                                                 │
00:01:16 #4679 [Verbose] > │             method1(v5)                                                      │
00:01:16 #4680 [Verbose] > │     let v8 : string = $"__expect / actual: %A{v3} / expected: %A{1}"         │
00:01:16 #4681 [Verbose] > │     let v9 : bool = v7 = false                                               │
00:01:16 #4682 [Verbose] > │     if v9 then                                                               │
00:01:16 #4683 [Verbose] > │         failwith<unit> v8                                                    │
00:01:16 #4684 [Verbose] > │ method0()                                                                    │
00:01:16 #4685 [Verbose] > │                                                                              │
00:01:16 #4686 [Verbose] > │ 1                                                                            │
00:01:16 #4687 [Verbose] > │                                                                              │
00:01:16 #4688 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:16 #4689 [Verbose] >
00:01:16 #4690 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:16 #4691 [Verbose] > // // test
00:01:16 #4692 [Verbose] >
00:01:16 #4693 [Verbose] > fun () => failwith "test"
00:01:16 #4694 [Verbose] > |> _throws
00:01:16 #4695 [Verbose] > |> optionm.map sm'.format_exception
00:01:16 #4696 [Verbose] > |> _assert_eq (Some "System.Exception: test")
00:01:16 #4697 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-4561-6141-6a9a8522a2d3/main.spi
00:01:16 #4698 [Debug] executeAsync / exitCode: 0 / output.Length: 27488
00:01:16 #4699 [Debug] main / executeCommand / exitCode: 0
00:01:16 #4700 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 \"listm'.dib\"""
  WorkingDirectory = None
  CancellationToken = Some System.Threading.CancellationToken
  OnLine = None }
00:01:16 #4701 [Verbose] >
00:01:16 #4702 [Verbose] > ╭─[ 355.20ms - stdout ]────────────────────────────────────────────────────────╮
00:01:16 #4703 [Verbose] > │ type [<Struct>] US0 =                                                        │
00:01:16 #4704 [Verbose] > │     | US0_0                                                                  │
00:01:16 #4705 [Verbose] > │     | US0_1 of f1_0 : exn                                                    │
00:01:16 #4706 [Verbose] > │ and [<Struct>] US1 =                                                         │
00:01:16 #4707 [Verbose] > │     | US1_0                                                                  │
00:01:16 #4708 [Verbose] > │     | US1_1 of f1_0 : string                                                 │
00:01:16 #4709 [Verbose] > │ let rec closure0 () () : unit =                                              │
00:01:16 #4710 [Verbose] > │     failwith<unit> "test"                                                    │
00:01:16 #4711 [Verbose] > │ and closure1 () (v0 : exn) : US0 =                                           │
00:01:16 #4712 [Verbose] > │     US0_1(v0)                                                                │
00:01:16 #4713 [Verbose] > │ and method1 (v0 : bool) : bool =                                             │
00:01:16 #4714 [Verbose] > │     v0                                                                       │
00:01:16 #4715 [Verbose] > │ and method0 () : unit =                                                      │
00:01:16 #4716 [Verbose] > │     let v0 : (unit -> unit) = closure0()                                     │
00:01:16 #4717 [Verbose] > │     let v1 : US0 = US0_0                                                     │
00:01:16 #4718 [Verbose] > │     let v2 : (exn -> US0) = closure1()                                       │
00:01:16 #4719 [Verbose] > │     let v3 : US0 = try v0 (); v1 with ex -> ex |> v2                         │
00:01:16 #4720 [Verbose] > │     let v9 : US1 =                                                           │
00:01:16 #4721 [Verbose] > │         match v3 with                                                        │
00:01:16 #4722 [Verbose] > │         | US0_0 -> (* None *)                                                │
00:01:16 #4723 [Verbose] > │             US1_0                                                            │
00:01:16 #4724 [Verbose] > │         | US0_1(v4) -> (* Some *)                                            │
00:01:16 #4725 [Verbose] > │             let v5 : string = $"{v4.GetType ()}: {v4.Message}"               │
00:01:16 #4726 [Verbose] > │             US1_1(v5)                                                        │
00:01:16 #4727 [Verbose] > │     let v10 : string = $"%A{v9}"                                             │
00:01:16 #4728 [Verbose] > │     System.Console.WriteLine v10                                             │
00:01:16 #4729 [Verbose] > │     let v15 : bool =                                                         │
00:01:16 #4730 [Verbose] > │         match v9 with                                                        │
00:01:16 #4731 [Verbose] > │         | US1_1(v13) -> (* Some *)                                           │
00:01:16 #4732 [Verbose] > │             let v14 : bool = v13 = "System.Exception: test"                  │
00:01:16 #4733 [Verbose] > │             v14                                                              │
00:01:16 #4734 [Verbose] > │         | _ ->                                                               │
00:01:16 #4735 [Verbose] > │             false                                                            │
00:01:16 #4736 [Verbose] > │     let v17 : bool =                                                         │
00:01:16 #4737 [Verbose] > │         if v15 then                                                          │
00:01:16 #4738 [Verbose] > │             true                                                             │
00:01:16 #4739 [Verbose] > │         else                                                                 │
00:01:16 #4740 [Verbose] > │             method1(v15)                                                     │
00:01:16 #4741 [Verbose] > │     let v18 : string = "System.Exception: test"                              │
00:01:16 #4742 [Verbose] > │     let v19 : US1 = US1_1(v18)                                               │
00:01:16 #4743 [Verbose] > │     let v20 : string = $"__expect / actual: %A{v9} / expected: %A{v19}"      │
00:01:16 #4744 [Verbose] > │     let v21 : bool = v17 = false                                             │
00:01:16 #4745 [Verbose] > │     if v21 then                                                              │
00:01:16 #4746 [Verbose] > │         failwith<unit> v20                                                   │
00:01:16 #4747 [Verbose] > │ method0()                                                                    │
00:01:16 #4748 [Verbose] > │                                                                              │
00:01:16 #4749 [Verbose] > │ US1_1 "System.Exception: test"                                               │
00:01:16 #4750 [Verbose] > │                                                                              │
00:01:16 #4751 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:16 #4752 [Verbose] >
00:01:16 #4753 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:16 #4754 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:16 #4755 [Verbose] > │ ## use_disposable                                                            │
00:01:16 #4756 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:16 #4757 [Verbose] >
00:01:16 #4758 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:16 #4759 [Verbose] > inl use_disposable (disposable : disposable) : disposable =
00:01:16 #4760 [Verbose] >     $"use !disposable = !disposable" : ()
00:01:16 #4761 [Verbose] >     $"!disposable"
00:01:16 #4762 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-4597-9723-9d3561d5af25/main.spi
00:01:16 #4763 [Verbose] >
00:01:16 #4764 [Verbose] > ╭─[ 140.96ms - stdout ]────────────────────────────────────────────────────────╮
00:01:16 #4765 [Verbose] > │ ()                                                                           │
00:01:16 #4766 [Verbose] > │                                                                              │
00:01:16 #4767 [Verbose] > │                                                                              │
00:01:16 #4768 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:16 #4769 [Verbose] >
00:01:16 #4770 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:16 #4771 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:16 #4772 [Verbose] > │ ## new_disposable                                                            │
00:01:16 #4773 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:16 #4774 [Verbose] >
00:01:16 #4775 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:16 #4776 [Verbose] > inl new_disposable (fn : () -> ()) : disposable =
00:01:16 #4777 [Verbose] >     run_target function
00:01:16 #4778 [Verbose] >         | Fsharp _ => fun () => $'{ new System.IDisposable with member _.Dispose
00:01:16 #4779 [Verbose] > () = !fn () }'
00:01:16 #4780 [Verbose] >         | Rust _ =>
00:01:16 #4781 [Verbose] >             inl fn = join fn
00:01:16 #4782 [Verbose] >             fun () => $'{ new System.IDisposable with member _.Dispose () =
00:01:16 #4783 [Verbose] > Fable.Core.RustInterop.emitRustExpr () "!fn()" }'
00:01:17 #4784 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-4611-1127-1f6fff9274e7/main.spi
00:01:17 #4785 [Verbose] >
00:01:17 #4786 [Verbose] > ╭─[ 168.03ms - stdout ]────────────────────────────────────────────────────────╮
00:01:17 #4787 [Verbose] > │ ()                                                                           │
00:01:17 #4788 [Verbose] > │                                                                              │
00:01:17 #4789 [Verbose] > │                                                                              │
00:01:17 #4790 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:17 #4791 [Verbose] >
00:01:17 #4792 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:17 #4793 [Verbose] > // // test
00:01:17 #4794 [Verbose] >
00:01:17 #4795 [Verbose] > inl new_disposable_test = mut 0i32
00:01:17 #4796 [Verbose] > new_disposable (fun () => new_disposable_test <- *new_disposable_test + 1)
00:01:17 #4797 [Verbose] > |> $'_.Dispose()'
00:01:17 #4798 [Verbose] > *new_disposable_test |> _assert_eq 1
00:01:17 #4799 [Verbose] >
00:01:17 #4800 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:17 #4801 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-4628-2834-2308ca2bf660/main.spi
00:01:17 #4802 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:17 #4803 [Verbose] > │ # sm'                                                                        │
00:01:17 #4804 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:17 #4805 [Verbose] >
00:01:17 #4806 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:17 #4807 [Verbose] > // // test
00:01:17 #4808 [Verbose] >
00:01:17 #4809 [Verbose] > open testing
00:01:17 #4810 [Verbose] >
00:01:17 #4811 [Verbose] > ╭─[ 221.86ms - stdout ]────────────────────────────────────────────────────────╮
00:01:17 #4812 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │
00:01:17 #4813 [Verbose] > │ let rec closure0 (v0 : Mut0) () : unit =                                     │
00:01:17 #4814 [Verbose] > │     let v1 : int32 = v0.l0                                                   │
00:01:17 #4815 [Verbose] > │     let v2 : int32 = v1 + 1                                                  │
00:01:17 #4816 [Verbose] > │     v0.l0 <- v2                                                              │
00:01:17 #4817 [Verbose] > │     ()                                                                       │
00:01:17 #4818 [Verbose] > │ and method1 (v0 : Mut0) : (unit -> unit) =                                   │
00:01:17 #4819 [Verbose] > │     closure0(v0)                                                             │
00:01:17 #4820 [Verbose] > │ and method2 (v0 : bool) : bool =                                             │
00:01:17 #4821 [Verbose] > │     v0                                                                       │
00:01:17 #4822 [Verbose] > │ and method0 () : unit =                                                      │
00:01:17 #4823 [Verbose] > │     let v0 : Mut0 = {l0 = 0} : Mut0                                          │
00:01:17 #4824 [Verbose] > │     let mutable result = None                                                │
00:01:17 #4825 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM                                         │
00:01:17 #4826 [Verbose] > │     let v1 : (unit -> unit) = method1(v0)                                    │
00:01:17 #4827 [Verbose] > │     let v2 : System.IDisposable = { new System.IDisposable with member       │
00:01:17 #4828 [Verbose] > │ _.Dispose () = Fable.Core.RustInterop.emitRustExpr () "v1()" }               │
00:01:17 #4829 [Verbose] > │     v2                                                                       │
00:01:17 #4830 [Verbose] > │     #endif                                                                   │
00:01:17 #4831 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │
00:01:17 #4832 [Verbose] > │     let v3 : (unit -> unit) = method1(v0)                                    │
00:01:17 #4833 [Verbose] > │     let v4 : System.IDisposable = { new System.IDisposable with member       │
00:01:17 #4834 [Verbose] > │ _.Dispose () = Fable.Core.RustInterop.emitRustExpr () "v3()" }               │
00:01:17 #4835 [Verbose] > │     v4                                                                       │
00:01:17 #4836 [Verbose] > │     #endif                                                                   │
00:01:17 #4837 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │
00:01:17 #4838 [Verbose] > │     let v5 : (unit -> unit) = closure0(v0)                                   │
00:01:17 #4839 [Verbose] > │     let v6 : System.IDisposable = { new System.IDisposable with member       │
00:01:17 #4840 [Verbose] > │ _.Dispose () = v5 () }                                                       │
00:01:17 #4841 [Verbose] > │     v6                                                                       │
00:01:17 #4842 [Verbose] > │     #endif                                                                   │
00:01:17 #4843 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │
00:01:17 #4844 [Verbose] > │     let v7 : System.IDisposable = { new System.IDisposable with member       │
00:01:17 #4845 [Verbose] > │ _.Dispose () = v5 () }                                                       │
00:01:17 #4846 [Verbose] > │     v7                                                                       │
00:01:17 #4847 [Verbose] > │     #endif                                                                   │
00:01:17 #4848 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │
00:01:17 #4849 [Verbose] > │     let v8 : System.IDisposable = { new System.IDisposable with member       │
00:01:17 #4850 [Verbose] > │ _.Dispose () = v5 () }                                                       │
00:01:17 #4851 [Verbose] > │     v8                                                                       │
00:01:17 #4852 [Verbose] > │     #endif                                                                   │
00:01:17 #4853 [Verbose] > │     |> fun x -> result <- Some x                                             │
00:01:17 #4854 [Verbose] > │     let v9 : System.IDisposable = result |> Option.get                       │
00:01:17 #4855 [Verbose] > │     let v10 : (System.IDisposable -> unit) = _.Dispose()                     │
00:01:17 #4856 [Verbose] > │     v10 v9                                                                   │
00:01:17 #4857 [Verbose] > │     let v11 : int32 = v0.l0                                                  │
00:01:17 #4858 [Verbose] > │     let v12 : string = $"%A{v11}"                                            │
00:01:17 #4859 [Verbose] > │     System.Console.WriteLine v12                                             │
00:01:17 #4860 [Verbose] > │     let v13 : bool = v11 = 1                                                 │
00:01:17 #4861 [Verbose] > │     let v15 : bool =                                                         │
00:01:17 #4862 [Verbose] > │         if v13 then                                                          │
00:01:17 #4863 [Verbose] > │             true                                                             │
00:01:17 #4864 [Verbose] > │         else                                                                 │
00:01:17 #4865 [Verbose] > │             method2(v13)                                                     │
00:01:17 #4866 [Verbose] > │     let v16 : string = $"__expect / actual: %A{v11} / expected: %A{1}"       │
00:01:17 #4867 [Verbose] > │     let v17 : bool = v15 = false                                             │
00:01:17 #4868 [Verbose] > │     if v17 then                                                              │
00:01:17 #4869 [Verbose] > │         failwith<unit> v16                                                   │
00:01:17 #4870 [Verbose] > │ method0()                                                                    │
00:01:17 #4871 [Verbose] > │                                                                              │
00:01:17 #4872 [Verbose] > │ 1                                                                            │
00:01:17 #4873 [Verbose] > │                                                                              │
00:01:17 #4874 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:17 #4875 [Verbose] >
00:01:17 #4876 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:17 #4877 [Verbose] > // // test
00:01:17 #4878 [Verbose] >
00:01:17 #4879 [Verbose] > inl new_disposable_test = mut 0i32
00:01:17 #4880 [Verbose] > fun () =>
00:01:17 #4881 [Verbose] >     new_disposable fun () => new_disposable_test <- *new_disposable_test + 1
00:01:17 #4882 [Verbose] >     |> use_disposable
00:01:17 #4883 [Verbose] >     |> ignore
00:01:17 #4884 [Verbose] > |> async.new_task
00:01:17 #4885 [Verbose] > |> async.await_task
00:01:17 #4886 [Verbose] > |> async.run_synchronously
00:01:17 #4887 [Verbose] > *new_disposable_test |> _assert_eq 1
00:01:17 #4888 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-4652-5238-55b76529f920/main.spi
00:01:17 #4889 [Verbose] >
00:01:17 #4890 [Verbose] > ╭─[ 361.02ms - stdout ]────────────────────────────────────────────────────────╮
00:01:17 #4891 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │
00:01:17 #4892 [Verbose] > │ let rec closure0 (v0 : Mut0) () : unit =                                     │
00:01:17 #4893 [Verbose] > │     let v1 : int32 = v0.l0                                                   │
00:01:17 #4894 [Verbose] > │     let v2 : int32 = v1 + 1                                                  │
00:01:17 #4895 [Verbose] > │     v0.l0 <- v2                                                              │
00:01:17 #4896 [Verbose] > │     ()                                                                       │
00:01:17 #4897 [Verbose] > │ and method1 (v0 : Mut0) : (unit -> unit) =                                   │
00:01:17 #4898 [Verbose] > │     closure0(v0)                                                             │
00:01:17 #4899 [Verbose] > │ and method2 (v0 : bool) : bool =                                             │
00:01:17 #4900 [Verbose] > │     v0                                                                       │
00:01:17 #4901 [Verbose] > │ and method0 () : unit =                                                      │
00:01:17 #4902 [Verbose] > │     let v0 : Mut0 = {l0 = 0} : Mut0                                          │
00:01:17 #4903 [Verbose] > │     let mutable result = None                                                │
00:01:17 #4904 [Verbose] > │     task {                                                                   │
00:01:17 #4905 [Verbose] > │     let mutable result = None                                                │
00:01:17 #4906 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM                                         │
00:01:17 #4907 [Verbose] > │     let v1 : (unit -> unit) = method1(v0)                                    │
00:01:17 #4908 [Verbose] > │     let v2 : System.IDisposable = { new System.IDisposable with member       │
00:01:17 #4909 [Verbose] > │ _.Dispose () = Fable.Core.RustInterop.emitRustExpr () "v1()" }               │
00:01:17 #4910 [Verbose] > │     v2                                                                       │
00:01:17 #4911 [Verbose] > │     #endif                                                                   │
00:01:17 #4912 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │
00:01:17 #4913 [Verbose] > │     let v3 : (unit -> unit) = method1(v0)                                    │
00:01:17 #4914 [Verbose] > │     let v4 : System.IDisposable = { new System.IDisposable with member       │
00:01:17 #4915 [Verbose] > │ _.Dispose () = Fable.Core.RustInterop.emitRustExpr () "v3()" }               │
00:01:17 #4916 [Verbose] > │     v4                                                                       │
00:01:17 #4917 [Verbose] > │     #endif                                                                   │
00:01:17 #4918 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │
00:01:17 #4919 [Verbose] > │     let v5 : (unit -> unit) = closure0(v0)                                   │
00:01:17 #4920 [Verbose] > │     let v6 : System.IDisposable = { new System.IDisposable with member       │
00:01:17 #4921 [Verbose] > │ _.Dispose () = v5 () }                                                       │
00:01:17 #4922 [Verbose] > │     v6                                                                       │
00:01:17 #4923 [Verbose] > │     #endif                                                                   │
00:01:17 #4924 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │
00:01:17 #4925 [Verbose] > │     let v7 : System.IDisposable = { new System.IDisposable with member       │
00:01:17 #4926 [Verbose] > │ _.Dispose () = v5 () }                                                       │
00:01:17 #4927 [Verbose] > │     v7                                                                       │
00:01:17 #4928 [Verbose] > │     #endif                                                                   │
00:01:17 #4929 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │
00:01:17 #4930 [Verbose] > │     let v8 : System.IDisposable = { new System.IDisposable with member       │
00:01:17 #4931 [Verbose] > │ _.Dispose () = v5 () }                                                       │
00:01:17 #4932 [Verbose] > │     v8                                                                       │
00:01:17 #4933 [Verbose] > │     #endif                                                                   │
00:01:17 #4934 [Verbose] > │     |> fun x -> result <- Some x                                             │
00:01:17 #4935 [Verbose] > │     let v9 : System.IDisposable = result |> Option.get                       │
00:01:17 #4936 [Verbose] > │     use v9 = v9                                                              │
00:01:17 #4937 [Verbose] > │     let v10 : System.IDisposable = v9                                        │
00:01:17 #4938 [Verbose] > │     return ()                                                                │
00:01:17 #4939 [Verbose] > │     }                                                                        │
00:01:17 #4940 [Verbose] > │     |> fun x -> result <- Some x                                             │
00:01:17 #4941 [Verbose] > │     let v11 : System.Threading.Tasks.Task<unit> = result |> Option.get       │
00:01:17 #4942 [Verbose] > │     let v12 : (System.Threading.Tasks.Task<unit> -> Async<unit>) =           │
00:01:17 #4943 [Verbose] > │ Async.AwaitTask                                                              │
00:01:17 #4944 [Verbose] > │     let v13 : Async<unit> = v12 v11                                          │
00:01:17 #4945 [Verbose] > │     let v14 : (Async<unit> -> unit) = Async.RunSynchronously                 │
00:01:17 #4946 [Verbose] > │     v14 v13                                                                  │
00:01:17 #4947 [Verbose] > │     let v15 : int32 = v0.l0                                                  │
00:01:17 #4948 [Verbose] > │     let v16 : string = $"%A{v15}"                                            │
00:01:17 #4949 [Verbose] > │     System.Console.WriteLine v16                                             │
00:01:17 #4950 [Verbose] > │     let v17 : bool = v15 = 1                                                 │
00:01:17 #4951 [Verbose] > │     let v19 : bool =                                                         │
00:01:17 #4952 [Verbose] > │         if v17 then                                                          │
00:01:17 #4953 [Verbose] > │             true                                                             │
00:01:17 #4954 [Verbose] > │         else                                                                 │
00:01:17 #4955 [Verbose] > │             method2(v17)                                                     │
00:01:17 #4956 [Verbose] > │     let v20 : string = $"__expect / actual: %A{v15} / expected: %A{1}"       │
00:01:17 #4957 [Verbose] > │     let v21 : bool = v19 = false                                             │
00:01:17 #4958 [Verbose] > │     if v21 then                                                              │
00:01:17 #4959 [Verbose] > │         failwith<unit> v20                                                   │
00:01:17 #4960 [Verbose] > │ method0()                                                                    │
00:01:17 #4961 [Verbose] > │                                                                              │
00:01:17 #4962 [Verbose] > │ 1                                                                            │
00:01:17 #4963 [Verbose] > │                                                                              │
00:01:17 #4964 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:17 #4965 [Verbose] >
00:01:17 #4966 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:17 #4967 [Verbose] > // // test
00:01:17 #4968 [Verbose] >
00:01:17 #4969 [Verbose] > inl new_disposable_test = mut 0i32
00:01:17 #4970 [Verbose] > fun () =>
00:01:17 #4971 [Verbose] >     new_disposable fun () => new_disposable_test <- *new_disposable_test + 1
00:01:17 #4972 [Verbose] >     |> use_disposable
00:01:17 #4973 [Verbose] >     |> ignore
00:01:17 #4974 [Verbose] > |> async.new_async
00:01:17 #4975 [Verbose] > |> async.run_synchronously
00:01:17 #4976 [Verbose] > *new_disposable_test |> _assert_eq 1
00:01:17 #4977 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-4687-8763-87c3ca9312c2/main.spi
00:01:18 #4978 [Verbose] >
00:01:18 #4979 [Verbose] > ╭─[ 343.90ms - stdout ]────────────────────────────────────────────────────────╮
00:01:18 #4980 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │
00:01:18 #4981 [Verbose] > │ let rec closure0 (v0 : Mut0) () : unit =                                     │
00:01:18 #4982 [Verbose] > │     let v1 : int32 = v0.l0                                                   │
00:01:18 #4983 [Verbose] > │     let v2 : int32 = v1 + 1                                                  │
00:01:18 #4984 [Verbose] > │     v0.l0 <- v2                                                              │
00:01:18 #4985 [Verbose] > │     ()                                                                       │
00:01:18 #4986 [Verbose] > │ and method1 (v0 : Mut0) : (unit -> unit) =                                   │
00:01:18 #4987 [Verbose] > │     closure0(v0)                                                             │
00:01:18 #4988 [Verbose] > │ and method2 (v0 : bool) : bool =                                             │
00:01:18 #4989 [Verbose] > │     v0                                                                       │
00:01:18 #4990 [Verbose] > │ and method0 () : unit =                                                      │
00:01:18 #4991 [Verbose] > │     let v0 : Mut0 = {l0 = 0} : Mut0                                          │
00:01:18 #4992 [Verbose] > │     let mutable result = None                                                │
00:01:18 #4993 [Verbose] > │     async {                                                                  │
00:01:18 #4994 [Verbose] > │     let mutable result = None                                                │
00:01:18 #4995 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM                                         │
00:01:18 #4996 [Verbose] > │     let v1 : (unit -> unit) = method1(v0)                                    │
00:01:18 #4997 [Verbose] > │     let v2 : System.IDisposable = { new System.IDisposable with member       │
00:01:18 #4998 [Verbose] > │ _.Dispose () = Fable.Core.RustInterop.emitRustExpr () "v1()" }               │
00:01:18 #4999 [Verbose] > │     v2                                                                       │
00:01:18 #5000 [Verbose] > │     #endif                                                                   │
00:01:18 #5001 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │
00:01:18 #5002 [Verbose] > │     let v3 : (unit -> unit) = method1(v0)                                    │
00:01:18 #5003 [Verbose] > │     let v4 : System.IDisposable = { new System.IDisposable with member       │
00:01:18 #5004 [Verbose] > │ _.Dispose () = Fable.Core.RustInterop.emitRustExpr () "v3()" }               │
00:01:18 #5005 [Verbose] > │     v4                                                                       │
00:01:18 #5006 [Verbose] > │     #endif                                                                   │
00:01:18 #5007 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │
00:01:18 #5008 [Verbose] > │     let v5 : (unit -> unit) = closure0(v0)                                   │
00:01:18 #5009 [Verbose] > │     let v6 : System.IDisposable = { new System.IDisposable with member       │
00:01:18 #5010 [Verbose] > │ _.Dispose () = v5 () }                                                       │
00:01:18 #5011 [Verbose] > │     v6                                                                       │
00:01:18 #5012 [Verbose] > │     #endif                                                                   │
00:01:18 #5013 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │
00:01:18 #5014 [Verbose] > │     let v7 : System.IDisposable = { new System.IDisposable with member       │
00:01:18 #5015 [Verbose] > │ _.Dispose () = v5 () }                                                       │
00:01:18 #5016 [Verbose] > │     v7                                                                       │
00:01:18 #5017 [Verbose] > │     #endif                                                                   │
00:01:18 #5018 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │
00:01:18 #5019 [Verbose] > │     let v8 : System.IDisposable = { new System.IDisposable with member       │
00:01:18 #5020 [Verbose] > │ _.Dispose () = v5 () }                                                       │
00:01:18 #5021 [Verbose] > │     v8                                                                       │
00:01:18 #5022 [Verbose] > │     #endif                                                                   │
00:01:18 #5023 [Verbose] > │     |> fun x -> result <- Some x                                             │
00:01:18 #5024 [Verbose] > │     let v9 : System.IDisposable = result |> Option.get                       │
00:01:18 #5025 [Verbose] > │     use v9 = v9                                                              │
00:01:18 #5026 [Verbose] > │     let v10 : System.IDisposable = v9                                        │
00:01:18 #5027 [Verbose] > │     return ()                                                                │
00:01:18 #5028 [Verbose] > │     }                                                                        │
00:01:18 #5029 [Verbose] > │     |> fun x -> result <- Some x                                             │
00:01:18 #5030 [Verbose] > │     let v11 : Async<unit> = result |> Option.get                             │
00:01:18 #5031 [Verbose] > │     let v12 : (Async<unit> -> unit) = Async.RunSynchronously                 │
00:01:18 #5032 [Verbose] > │     v12 v11                                                                  │
00:01:18 #5033 [Verbose] > │     let v13 : int32 = v0.l0                                                  │
00:01:18 #5034 [Verbose] > │     let v14 : string = $"%A{v13}"                                            │
00:01:18 #5035 [Verbose] > │     System.Console.WriteLine v14                                             │
00:01:18 #5036 [Verbose] > │     let v15 : bool = v13 = 1                                                 │
00:01:18 #5037 [Verbose] > │     let v17 : bool =                                                         │
00:01:18 #5038 [Verbose] > │         if v15 then                                                          │
00:01:18 #5039 [Verbose] > │             true                                                             │
00:01:18 #5040 [Verbose] > │         else                                                                 │
00:01:18 #5041 [Verbose] > │             method2(v15)                                                     │
00:01:18 #5042 [Verbose] > │     let v18 : string = $"__expect / actual: %A{v13} / expected: %A{1}"       │
00:01:18 #5043 [Verbose] > │     let v19 : bool = v17 = false                                             │
00:01:18 #5044 [Verbose] > │     if v19 then                                                              │
00:01:18 #5045 [Verbose] > │         failwith<unit> v18                                                   │
00:01:18 #5046 [Verbose] > │ method0()                                                                    │
00:01:18 #5047 [Verbose] > │                                                                              │
00:01:18 #5048 [Verbose] > │ 1                                                                            │
00:01:18 #5049 [Verbose] > │                                                                              │
00:01:18 #5050 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:18 #5051 [Verbose] >
00:01:18 #5052 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:18 #5053 [Verbose] > // // test
00:01:18 #5054 [Verbose] >
00:01:18 #5055 [Verbose] > inl new_disposable_test = mut 0i32
00:01:18 #5056 [Verbose] > fun () =>
00:01:18 #5057 [Verbose] >     new_disposable fun () => new_disposable_test <- *new_disposable_test + 1
00:01:18 #5058 [Verbose] >     |> ignore
00:01:18 #5059 [Verbose] > |> async.new_async
00:01:18 #5060 [Verbose] > |> async.run_synchronously
00:01:18 #5061 [Verbose] > *new_disposable_test |> _assert_eq 0
00:01:18 #5062 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-4721-2144-23f5795ece3f/main.spi
00:01:18 #5063 [Verbose] >
00:01:18 #5064 [Verbose] > ╭─[ 197.92ms - stdout ]────────────────────────────────────────────────────────╮
00:01:18 #5065 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │
00:01:18 #5066 [Verbose] > │ let rec closure0 (v0 : Mut0) () : unit =                                     │
00:01:18 #5067 [Verbose] > │     let v1 : int32 = v0.l0                                                   │
00:01:18 #5068 [Verbose] > │     let v2 : int32 = v1 + 1                                                  │
00:01:18 #5069 [Verbose] > │     v0.l0 <- v2                                                              │
00:01:18 #5070 [Verbose] > │     ()                                                                       │
00:01:18 #5071 [Verbose] > │ and method1 (v0 : Mut0) : (unit -> unit) =                                   │
00:01:18 #5072 [Verbose] > │     closure0(v0)                                                             │
00:01:18 #5073 [Verbose] > │ and method2 (v0 : bool) : bool =                                             │
00:01:18 #5074 [Verbose] > │     v0                                                                       │
00:01:18 #5075 [Verbose] > │ and method0 () : unit =                                                      │
00:01:18 #5076 [Verbose] > │     let v0 : Mut0 = {l0 = 0} : Mut0                                          │
00:01:18 #5077 [Verbose] > │     let mutable result = None                                                │
00:01:18 #5078 [Verbose] > │     async {                                                                  │
00:01:18 #5079 [Verbose] > │     let mutable result = None                                                │
00:01:18 #5080 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM                                         │
00:01:18 #5081 [Verbose] > │     let v1 : (unit -> unit) = method1(v0)                                    │
00:01:18 #5082 [Verbose] > │     let v2 : System.IDisposable = { new System.IDisposable with member       │
00:01:18 #5083 [Verbose] > │ _.Dispose () = Fable.Core.RustInterop.emitRustExpr () "v1()" }               │
00:01:18 #5084 [Verbose] > │     v2                                                                       │
00:01:18 #5085 [Verbose] > │     #endif                                                                   │
00:01:18 #5086 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │
00:01:18 #5087 [Verbose] > │     let v3 : (unit -> unit) = method1(v0)                                    │
00:01:18 #5088 [Verbose] > │     let v4 : System.IDisposable = { new System.IDisposable with member       │
00:01:18 #5089 [Verbose] > │ _.Dispose () = Fable.Core.RustInterop.emitRustExpr () "v3()" }               │
00:01:18 #5090 [Verbose] > │     v4                                                                       │
00:01:18 #5091 [Verbose] > │     #endif                                                                   │
00:01:18 #5092 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │
00:01:18 #5093 [Verbose] > │     let v5 : (unit -> unit) = closure0(v0)                                   │
00:01:18 #5094 [Verbose] > │     let v6 : System.IDisposable = { new System.IDisposable with member       │
00:01:18 #5095 [Verbose] > │ _.Dispose () = v5 () }                                                       │
00:01:18 #5096 [Verbose] > │     v6                                                                       │
00:01:18 #5097 [Verbose] > │     #endif                                                                   │
00:01:18 #5098 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │
00:01:18 #5099 [Verbose] > │     let v7 : System.IDisposable = { new System.IDisposable with member       │
00:01:18 #5100 [Verbose] > │ _.Dispose () = v5 () }                                                       │
00:01:18 #5101 [Verbose] > │     v7                                                                       │
00:01:18 #5102 [Verbose] > │     #endif                                                                   │
00:01:18 #5103 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │
00:01:18 #5104 [Verbose] > │     let v8 : System.IDisposable = { new System.IDisposable with member       │
00:01:18 #5105 [Verbose] > │ _.Dispose () = v5 () }                                                       │
00:01:18 #5106 [Verbose] > │     v8                                                                       │
00:01:18 #5107 [Verbose] > │     #endif                                                                   │
00:01:18 #5108 [Verbose] > │     |> fun x -> result <- Some x                                             │
00:01:18 #5109 [Verbose] > │     let v9 : System.IDisposable = result |> Option.get                       │
00:01:18 #5110 [Verbose] > │     return ()                                                                │
00:01:18 #5111 [Verbose] > │     }                                                                        │
00:01:18 #5112 [Verbose] > │     |> fun x -> result <- Some x                                             │
00:01:18 #5113 [Verbose] > │     let v10 : Async<unit> = result |> Option.get                             │
00:01:18 #5114 [Verbose] > │     let v11 : (Async<unit> -> unit) = Async.RunSynchronously                 │
00:01:18 #5115 [Verbose] > │     v11 v10                                                                  │
00:01:18 #5116 [Verbose] > │     let v12 : int32 = v0.l0                                                  │
00:01:18 #5117 [Verbose] > │     let v13 : string = $"%A{v12}"                                            │
00:01:18 #5118 [Verbose] > │     System.Console.WriteLine v13                                             │
00:01:18 #5119 [Verbose] > │     let v14 : bool = v12 = 0                                                 │
00:01:18 #5120 [Verbose] > │     let v16 : bool =                                                         │
00:01:18 #5121 [Verbose] > │         if v14 then                                                          │
00:01:18 #5122 [Verbose] > │             true                                                             │
00:01:18 #5123 [Verbose] > │         else                                                                 │
00:01:18 #5124 [Verbose] > │             method2(v14)                                                     │
00:01:18 #5125 [Verbose] > │     let v17 : string = $"__expect / actual: %A{v12} / expected: %A{0}"       │
00:01:18 #5126 [Verbose] > │     let v18 : bool = v16 = false                                             │
00:01:18 #5127 [Verbose] > │     if v18 then                                                              │
00:01:18 #5128 [Verbose] > │         failwith<unit> v17                                                   │
00:01:18 #5129 [Verbose] > │ method0()                                                                    │
00:01:18 #5130 [Verbose] > │                                                                              │
00:01:18 #5131 [Verbose] > │ 0                                                                            │
00:01:18 #5132 [Verbose] > │                                                                              │
00:01:18 #5133 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:18 #5134 [Verbose] >
00:01:18 #5135 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:18 #5136 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:18 #5137 [Verbose] > │ ## try                                                                       │
00:01:18 #5138 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:18 #5139 [Verbose] >
00:01:18 #5140 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:18 #5141 [Verbose] > inl try forall t. (fn : () -> t) (ex_fn : exn -> ()) : option t =
00:01:18 #5142 [Verbose] >     inl none = None : option t
00:01:18 #5143 [Verbose] >     inl some (s : t) = Some s
00:01:18 #5144 [Verbose] >     $'try !fn () |> !some with ex -> !ex_fn ex; !none '
00:01:18 #5145 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-4741-4131-46ee6f188b2d/main.spi
00:01:18 #5146 [Verbose] >
00:01:18 #5147 [Verbose] > ╭─[ 224.48ms - stdout ]────────────────────────────────────────────────────────╮
00:01:18 #5148 [Verbose] > │ ()                                                                           │
00:01:18 #5149 [Verbose] > │                                                                              │
00:01:18 #5150 [Verbose] > │                                                                              │
00:01:18 #5151 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:18 #5152 [Verbose] >
00:01:18 #5153 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:18 #5154 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:18 #5155 [Verbose] > │ ## sleep                                                                     │
00:01:18 #5156 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:18 #5157 [Verbose] >
00:01:18 #5158 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:18 #5159 [Verbose] > inl sleep (n : i32) : () =
00:01:18 #5160 [Verbose] >     run_target function
00:01:18 #5161 [Verbose] >         | Fsharp (Native) => fun () => $'System.Threading.Thread.Sleep' n
00:01:18 #5162 [Verbose] >         | _ => fun () => ()
00:01:18 #5163 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-4763-6377-6a387fa34c04/main.spi
00:01:18 #5164 [Verbose] >
00:01:18 #5165 [Verbose] > ╭─[ 134.76ms - stdout ]────────────────────────────────────────────────────────╮
00:01:18 #5166 [Verbose] > │ ()                                                                           │
00:01:18 #5167 [Verbose] > │                                                                              │
00:01:18 #5168 [Verbose] > │                                                                              │
00:01:18 #5169 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:18 #5170 [Verbose] >
00:01:18 #5171 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:18 #5172 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:18 #5173 [Verbose] > │ ## retry_fn                                                                  │
00:01:18 #5174 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:18 #5175 [Verbose] >
00:01:18 #5176 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:18 #5177 [Verbose] > inl retry_fn forall t. retries (fn : () -> t) : option t =
00:01:18 #5178 [Verbose] >     let rec loop retry =
00:01:18 #5179 [Verbose] >         try
00:01:18 #5180 [Verbose] >             fun () =>
00:01:18 #5181 [Verbose] >                 if retry < retries
00:01:18 #5182 [Verbose] >                 then fn () |> Some
00:01:18 #5183 [Verbose] >                 else None
00:01:18 #5184 [Verbose] >             fun ex =>
00:01:18 #5185 [Verbose] >                 let getLocals () = $"retry: {retry} / ex: {ex |>
00:01:18 #5186 [Verbose] > formatException} / {getLocals ()}"
00:01:18 #5187 [Verbose] >                 // trace Warning (fun () => "retry_fn") getLocals
00:01:18 #5188 [Verbose] >                 sleep 1
00:01:18 #5189 [Verbose] >         |> function
00:01:18 #5190 [Verbose] >             | Some x => x
00:01:18 #5191 [Verbose] >             | None => loop (retry + 1)
00:01:18 #5192 [Verbose] >     loop 0
00:01:18 #5193 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-4777-7731-7ad09c7b1a64/main.spi
00:01:18 #5194 [Verbose] >
00:01:18 #5195 [Verbose] > ╭─[ 139.33ms - stdout ]────────────────────────────────────────────────────────╮
00:01:18 #5196 [Verbose] > │ ()                                                                           │
00:01:18 #5197 [Verbose] > │                                                                              │
00:01:18 #5198 [Verbose] > │                                                                              │
00:01:18 #5199 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:18 #5200 [Verbose] >
00:01:18 #5201 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:18 #5202 [Verbose] > // // test
00:01:18 #5203 [Verbose] >
00:01:18 #5204 [Verbose] > inl retry_fn_test = mut 0i32
00:01:18 #5205 [Verbose] > fun () =>
00:01:18 #5206 [Verbose] >     retry_fn_test <- *retry_fn_test + 1
00:01:18 #5207 [Verbose] >     *retry_fn_test
00:01:18 #5208 [Verbose] > |> retry_fn 3i32
00:01:18 #5209 [Verbose] > |> _assert_eq (Some 1i32)
00:01:18 #5210 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-4791-9136-9eb99ae8228c/main.spi
00:01:18 #5211 [Verbose] >
00:01:18 #5212 [Verbose] > ╭─[ 232.08ms - stdout ]────────────────────────────────────────────────────────╮
00:01:18 #5213 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │
00:01:18 #5214 [Verbose] > │ and [<Struct>] US0 =                                                         │
00:01:18 #5215 [Verbose] > │     | US0_0                                                                  │
00:01:18 #5216 [Verbose] > │     | US0_1 of f1_0 : int32                                                  │
00:01:18 #5217 [Verbose] > │ and [<Struct>] US1 =                                                         │
00:01:18 #5218 [Verbose] > │     | US1_0                                                                  │
00:01:18 #5219 [Verbose] > │     | US1_1 of f1_0 : US0                                                    │
00:01:18 #5220 [Verbose] > │ let rec closure0 (v0 : Mut0, v1 : int32) () : US0 =                          │
00:01:18 #5221 [Verbose] > │     let v2 : bool = v1 < 3                                                   │
00:01:18 #5222 [Verbose] > │     if v2 then                                                               │
00:01:18 #5223 [Verbose] > │         let v3 : int32 = v0.l0                                               │
00:01:18 #5224 [Verbose] > │         let v4 : int32 = v3 + 1                                              │
00:01:18 #5225 [Verbose] > │         v0.l0 <- v4                                                          │
00:01:18 #5226 [Verbose] > │         let v5 : int32 = v0.l0                                               │
00:01:18 #5227 [Verbose] > │         US0_1(v5)                                                            │
00:01:18 #5228 [Verbose] > │     else                                                                     │
00:01:18 #5229 [Verbose] > │         US0_0                                                                │
00:01:18 #5230 [Verbose] > │ and closure1 () (v0 : US0) : US1 =                                           │
00:01:18 #5231 [Verbose] > │     US1_1(v0)                                                                │
00:01:18 #5232 [Verbose] > │ and closure2 () (v0 : exn) : unit =                                          │
00:01:18 #5233 [Verbose] > │     let mutable result = None                                                │
00:01:18 #5234 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM                                         │
00:01:18 #5235 [Verbose] > │     ()                                                                       │
00:01:18 #5236 [Verbose] > │     #endif                                                                   │
00:01:18 #5237 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │
00:01:18 #5238 [Verbose] > │     ()                                                                       │
00:01:18 #5239 [Verbose] > │     #endif                                                                   │
00:01:18 #5240 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │
00:01:18 #5241 [Verbose] > │     let v1 : (int32 -> unit) = System.Threading.Thread.Sleep                 │
00:01:18 #5242 [Verbose] > │     v1 1                                                                     │
00:01:18 #5243 [Verbose] > │     ()                                                                       │
00:01:18 #5244 [Verbose] > │     #endif                                                                   │
00:01:18 #5245 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │
00:01:18 #5246 [Verbose] > │     ()                                                                       │
00:01:18 #5247 [Verbose] > │     #endif                                                                   │
00:01:18 #5248 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │
00:01:18 #5249 [Verbose] > │     ()                                                                       │
00:01:18 #5250 [Verbose] > │     #endif                                                                   │
00:01:18 #5251 [Verbose] > │     |> fun x -> result <- Some x                                             │
00:01:18 #5252 [Verbose] > │     result |> Option.get                                                     │
00:01:18 #5253 [Verbose] > │     ()                                                                       │
00:01:18 #5254 [Verbose] > │ and method1 (v0 : Mut0, v1 : int32) : US0 =                                  │
00:01:18 #5255 [Verbose] > │     let v2 : (unit -> US0) = closure0(v0, v1)                                │
00:01:18 #5256 [Verbose] > │     let v3 : (US0 -> US1) = closure1()                                       │
00:01:18 #5257 [Verbose] > │     let v4 : (exn -> unit) = closure2()                                      │
00:01:18 #5258 [Verbose] > │     let v5 : US1 = US1_0                                                     │
00:01:18 #5259 [Verbose] > │     let v6 : US1 = try v2 () |> v3 with ex -> v4 ex; v5                      │
00:01:18 #5260 [Verbose] > │     match v6 with                                                            │
00:01:18 #5261 [Verbose] > │     | US1_0 -> (* None *)                                                    │
00:01:18 #5262 [Verbose] > │         let v8 : int32 = v1 + 1                                              │
00:01:18 #5263 [Verbose] > │         method1(v0, v8)                                                      │
00:01:18 #5264 [Verbose] > │     | US1_1(v7) -> (* Some *)                                                │
00:01:18 #5265 [Verbose] > │         v7                                                                   │
00:01:18 #5266 [Verbose] > │ and method2 (v0 : bool) : bool =                                             │
00:01:18 #5267 [Verbose] > │     v0                                                                       │
00:01:18 #5268 [Verbose] > │ and method0 () : unit =                                                      │
00:01:18 #5269 [Verbose] > │     let v0 : Mut0 = {l0 = 0} : Mut0                                          │
00:01:18 #5270 [Verbose] > │     let v1 : int32 = 0                                                       │
00:01:18 #5271 [Verbose] > │     let v2 : US0 = method1(v0, v1)                                           │
00:01:18 #5272 [Verbose] > │     let v3 : string = $"%A{v2}"                                              │
00:01:18 #5273 [Verbose] > │     System.Console.WriteLine v3                                              │
00:01:18 #5274 [Verbose] > │     let v7 : bool =                                                          │
00:01:18 #5275 [Verbose] > │         match v2 with                                                        │
00:01:18 #5276 [Verbose] > │         | US0_1(v5) -> (* Some *)                                            │
00:01:18 #5277 [Verbose] > │             let v6 : bool = v5 = 1                                           │
00:01:18 #5278 [Verbose] > │             v6                                                               │
00:01:18 #5279 [Verbose] > │         | _ ->                                                               │
00:01:18 #5280 [Verbose] > │             false                                                            │
00:01:18 #5281 [Verbose] > │     let v9 : bool =                                                          │
00:01:18 #5282 [Verbose] > │         if v7 then                                                           │
00:01:18 #5283 [Verbose] > │             true                                                             │
00:01:18 #5284 [Verbose] > │         else                                                                 │
00:01:18 #5285 [Verbose] > │             method2(v7)                                                      │
00:01:18 #5286 [Verbose] > │     let v10 : US0 = US0_1(1)                                                 │
00:01:18 #5287 [Verbose] > │     let v11 : string = $"__expect / actual: %A{v2} / expected: %A{v10}"      │
00:01:18 #5288 [Verbose] > │     let v12 : bool = v9 = false                                              │
00:01:18 #5289 [Verbose] > │     if v12 then                                                              │
00:01:18 #5290 [Verbose] > │         failwith<unit> v11                                                   │
00:01:18 #5291 [Verbose] > │ method0()                                                                    │
00:01:18 #5292 [Verbose] > │                                                                              │
00:01:18 #5293 [Verbose] > │ US0_1 1                                                                      │
00:01:18 #5294 [Verbose] > │                                                                              │
00:01:18 #5295 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:18 #5296 [Verbose] >
00:01:18 #5297 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:18 #5298 [Verbose] > // // test
00:01:18 #5299 [Verbose] >
00:01:18 #5300 [Verbose] > inl retry_fn_test = mut 0i32
00:01:18 #5301 [Verbose] > fun () =>
00:01:18 #5302 [Verbose] >     if *retry_fn_test >= 2
00:01:18 #5303 [Verbose] >     then *retry_fn_test
00:01:18 #5304 [Verbose] >     else
00:01:18 #5305 [Verbose] >         retry_fn_test <- *retry_fn_test + 1
00:01:18 #5306 [Verbose] >         failwith "test"
00:01:18 #5307 [Verbose] > |> retry_fn 3i32
00:01:18 #5308 [Verbose] > |> _assert_eq (Some 2i32)
00:01:19 #5309 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-4814-1472-1b371d5a2f84/main.spi
00:01:19 #5310 [Verbose] >
00:01:19 #5311 [Verbose] > ╭─[ 214.73ms - stdout ]────────────────────────────────────────────────────────╮
00:01:19 #5312 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │
00:01:19 #5313 [Verbose] > │ and [<Struct>] US0 =                                                         │
00:01:19 #5314 [Verbose] > │     | US0_0                                                                  │
00:01:19 #5315 [Verbose] > │     | US0_1 of f1_0 : int32                                                  │
00:01:19 #5316 [Verbose] > │ and [<Struct>] US1 =                                                         │
00:01:19 #5317 [Verbose] > │     | US1_0                                                                  │
00:01:19 #5318 [Verbose] > │     | US1_1 of f1_0 : US0                                                    │
00:01:19 #5319 [Verbose] > │ let rec closure0 (v0 : Mut0, v1 : int32) () : US0 =                          │
00:01:19 #5320 [Verbose] > │     let v2 : bool = v1 < 3                                                   │
00:01:19 #5321 [Verbose] > │     if v2 then                                                               │
00:01:19 #5322 [Verbose] > │         let v3 : int32 = v0.l0                                               │
00:01:19 #5323 [Verbose] > │         let v4 : bool = v3 >= 2                                              │
00:01:19 #5324 [Verbose] > │         let v9 : int32 =                                                     │
00:01:19 #5325 [Verbose] > │             if v4 then                                                       │
00:01:19 #5326 [Verbose] > │                 let v5 : int32 = v0.l0                                       │
00:01:19 #5327 [Verbose] > │                 v5                                                           │
00:01:19 #5328 [Verbose] > │             else                                                             │
00:01:19 #5329 [Verbose] > │                 let v6 : int32 = v0.l0                                       │
00:01:19 #5330 [Verbose] > │                 let v7 : int32 = v6 + 1                                      │
00:01:19 #5331 [Verbose] > │                 v0.l0 <- v7                                                  │
00:01:19 #5332 [Verbose] > │                 failwith<int32> "test"                                       │
00:01:19 #5333 [Verbose] > │         US0_1(v9)                                                            │
00:01:19 #5334 [Verbose] > │     else                                                                     │
00:01:19 #5335 [Verbose] > │         US0_0                                                                │
00:01:19 #5336 [Verbose] > │ and closure1 () (v0 : US0) : US1 =                                           │
00:01:19 #5337 [Verbose] > │     US1_1(v0)                                                                │
00:01:19 #5338 [Verbose] > │ and closure2 () (v0 : exn) : unit =                                          │
00:01:19 #5339 [Verbose] > │     let mutable result = None                                                │
00:01:19 #5340 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM                                         │
00:01:19 #5341 [Verbose] > │     ()                                                                       │
00:01:19 #5342 [Verbose] > │     #endif                                                                   │
00:01:19 #5343 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │
00:01:19 #5344 [Verbose] > │     ()                                                                       │
00:01:19 #5345 [Verbose] > │     #endif                                                                   │
00:01:19 #5346 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │
00:01:19 #5347 [Verbose] > │     let v1 : (int32 -> unit) = System.Threading.Thread.Sleep                 │
00:01:19 #5348 [Verbose] > │     v1 1                                                                     │
00:01:19 #5349 [Verbose] > │     ()                                                                       │
00:01:19 #5350 [Verbose] > │     #endif                                                                   │
00:01:19 #5351 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │
00:01:19 #5352 [Verbose] > │     ()                                                                       │
00:01:19 #5353 [Verbose] > │     #endif                                                                   │
00:01:19 #5354 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │
00:01:19 #5355 [Verbose] > │     ()                                                                       │
00:01:19 #5356 [Verbose] > │     #endif                                                                   │
00:01:19 #5357 [Verbose] > │     |> fun x -> result <- Some x                                             │
00:01:19 #5358 [Verbose] >
00:01:19 #5359 [Verbose] > │     result |> Option.get                                                     │
00:01:19 #5360 [Verbose] > │     ()                                                                       │
00:01:19 #5361 [Verbose] > │ and method1 (v0 : Mut0, v1 : int32) : US0 =                                  │
00:01:19 #5362 [Verbose] > │     let v2 : (unit -> US0) = closure0(v0, v1)                                │
00:01:19 #5363 [Verbose] > │     let v3 : (US0 -> US1) = closure1()                                       │
00:01:19 #5364 [Verbose] > │     let v4 : (exn -> unit) = closure2()                                      │
00:01:19 #5365 [Verbose] > │     let v5 : US1 = US1_0                                                     │
00:01:19 #5366 [Verbose] > │     let v6 : US1 = try v2 () |> v3 with ex -> v4 ex; v5                      │
00:01:19 #5367 [Verbose] > │     match v6 with                                                            │
00:01:19 #5368 [Verbose] > │     | US1_0 -> (* None *)                                                    │
00:01:19 #5369 [Verbose] > │         let v8 : int32 = v1 + 1                                              │
00:01:19 #5370 [Verbose] > │         method1(v0, v8)                                                      │
00:01:19 #5371 [Verbose] > │     | US1_1(v7) -> (* Some *)                                                │
00:01:19 #5372 [Verbose] > │         v7                                                                   │
00:01:19 #5373 [Verbose] > │ and method2 (v0 : bool) : bool =                                             │
00:01:19 #5374 [Verbose] > │     v0                                                                       │
00:01:19 #5375 [Verbose] > │ and method0 () : unit =                                                      │
00:01:19 #5376 [Verbose] > │     let v0 : Mut0 = {l0 = 0} : Mut0                                          │
00:01:19 #5377 [Verbose] > │     let v1 : int32 = 0                                                       │
00:01:19 #5378 [Verbose] > │     let v2 : US0 = method1(v0, v1)                                           │
00:01:19 #5379 [Verbose] > │     let v3 : string = $"%A{v2}"                                              │
00:01:19 #5380 [Verbose] > │     System.Console.WriteLine v3                                              │
00:01:19 #5381 [Verbose] > │     let v7 : bool =                                                          │
00:01:19 #5382 [Verbose] > │         match v2 with                                                        │
00:01:19 #5383 [Verbose] > │         | US0_1(v5) -> (* Some *)                                            │
00:01:19 #5384 [Verbose] > │             let v6 : bool = v5 = 2                                           │
00:01:19 #5385 [Verbose] > │             v6                                                               │
00:01:19 #5386 [Verbose] > │         | _ ->                                                               │
00:01:19 #5387 [Verbose] > │             false                                                            │
00:01:19 #5388 [Verbose] > │     let v9 : bool =                                                          │
00:01:19 #5389 [Verbose] > │         if v7 then                                                           │
00:01:19 #5390 [Verbose] > │             true                                                             │
00:01:19 #5391 [Verbose] > │         else                                                                 │
00:01:19 #5392 [Verbose] > │             method2(v7)                                                      │
00:01:19 #5393 [Verbose] > │     let v10 : US0 = US0_1(2)                                                 │
00:01:19 #5394 [Verbose] > │     let v11 : string = $"__expect / actual: %A{v2} / expected: %A{v10}"      │
00:01:19 #5395 [Verbose] > │     let v12 : bool = v9 = false                                              │
00:01:19 #5396 [Verbose] > │     if v12 then                                                              │
00:01:19 #5397 [Verbose] > │         failwith<unit> v11                                                   │
00:01:19 #5398 [Verbose] > │ method0()                                                                    │
00:01:19 #5399 [Verbose] > │                                                                              │
00:01:19 #5400 [Verbose] > │ US0_1 2                                                                      │
00:01:19 #5401 [Verbose] > │                                                                              │
00:01:19 #5402 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:19 #5403 [Verbose] >
00:01:19 #5404 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:19 #5405 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:19 #5406 [Verbose] > │ ## main                                                                      │
00:01:19 #5407 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:19 #5408 [Verbose] >
00:01:19 #5409 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:19 #5410 [Verbose] > inl main () =
00:01:19 #5411 [Verbose] >     inl retry_fn (r : i32) (x : () -> _) : optionm'.option' () =
00:01:19 #5412 [Verbose] >         retry_fn r x |> optionm'.box
00:01:19 #5413 [Verbose] >     $"let new_disposable x = !new_disposable x" : ()
00:01:19 #5414 [Verbose] >     $"let retry_fn x = !retry_fn x" : ()
00:01:19 #5415 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:19 #5416 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:19 #5417 [Verbose] > │ # listm                                                                      │
00:01:19 #5418 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:19 #5419 [Verbose] >
00:01:19 #5420 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:19 #5421 [Verbose] > // // test
00:01:19 #5422 [Verbose] >
00:01:19 #5423 [Verbose] > open testing
00:01:19 #5424 [Verbose] >
00:01:19 #5425 [Verbose] > prototype append t : t -> t -> t
00:01:19 #5426 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-4836-3631-3b1071e8c0a4/main.spi
00:01:19 #5427 [Verbose] >
00:01:19 #5428 [Verbose] > ╭─[ 279.25ms - stdout ]────────────────────────────────────────────────────────╮
00:01:19 #5429 [Verbose] > │ type [<Struct>] US0 =                                                        │
00:01:19 #5430 [Verbose] > │     | US0_0                                                                  │
00:01:19 #5431 [Verbose] > │     | US0_1                                                                  │
00:01:19 #5432 [Verbose] > │ and [<Struct>] US1 =                                                         │
00:01:19 #5433 [Verbose] > │     | US1_0                                                                  │
00:01:19 #5434 [Verbose] > │     | US1_1 of f1_0 : US0                                                    │
00:01:19 #5435 [Verbose] > │ let rec method0 (v0 : (unit -> unit)) : (unit -> unit) =                     │
00:01:19 #5436 [Verbose] > │     v0                                                                       │
00:01:19 #5437 [Verbose] > │ and closure0 () (v0 : (unit -> unit)) : System.IDisposable =                 │
00:01:19 #5438 [Verbose] > │     let mutable result = None                                                │
00:01:19 #5439 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM                                         │
00:01:19 #5440 [Verbose] > │     let v1 : (unit -> unit) = method0(v0)                                    │
00:01:19 #5441 [Verbose] > │     let v2 : System.IDisposable = { new System.IDisposable with member       │
00:01:19 #5442 [Verbose] > │ _.Dispose () = Fable.Core.RustInterop.emitRustExpr () "v1()" }               │
00:01:19 #5443 [Verbose] > │     v2                                                                       │
00:01:19 #5444 [Verbose] > │     #endif                                                                   │
00:01:19 #5445 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │
00:01:19 #5446 [Verbose] > │     let v3 : (unit -> unit) = method0(v0)                                    │
00:01:19 #5447 [Verbose] > │     let v4 : System.IDisposable = { new System.IDisposable with member       │
00:01:19 #5448 [Verbose] > │ _.Dispose () = Fable.Core.RustInterop.emitRustExpr () "v3()" }               │
00:01:19 #5449 [Verbose] > │     v4                                                                       │
00:01:19 #5450 [Verbose] > │     #endif                                                                   │
00:01:19 #5451 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │
00:01:19 #5452 [Verbose] > │     let v5 : System.IDisposable = { new System.IDisposable with member       │
00:01:19 #5453 [Verbose] > │ _.Dispose () = v0 () }                                                       │
00:01:19 #5454 [Verbose] > │     v5                                                                       │
00:01:19 #5455 [Verbose] > │     #endif                                                                   │
00:01:19 #5456 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │
00:01:19 #5457 [Verbose] > │     let v6 : System.IDisposable = { new System.IDisposable with member       │
00:01:19 #5458 [Verbose] > │ _.Dispose () = v0 () }                                                       │
00:01:19 #5459 [Verbose] > │     v6                                                                       │
00:01:19 #5460 [Verbose] > │     #endif                                                                   │
00:01:19 #5461 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │
00:01:19 #5462 [Verbose] > │     let v7 : System.IDisposable = { new System.IDisposable with member       │
00:01:19 #5463 [Verbose] > │ _.Dispose () = v0 () }                                                       │
00:01:19 #5464 [Verbose] > │     v7                                                                       │
00:01:19 #5465 [Verbose] > │     #endif                                                                   │
00:01:19 #5466 [Verbose] > │     |> fun x -> result <- Some x                                             │
00:01:19 #5467 [Verbose] > │     let v8 : System.IDisposable = result |> Option.get                       │
00:01:19 #5468 [Verbose] > │     v8                                                                       │
00:01:19 #5469 [Verbose] > │ and closure3 (v0 : int32, v1 : (unit -> unit), v2 : int32) () : US0 =        │
00:01:19 #5470 [Verbose] > │     let v3 : bool = v2 < v0                                                  │
00:01:19 #5471 [Verbose] > │     if v3 then                                                               │
00:01:19 #5472 [Verbose] > │         v1 ()                                                                │
00:01:19 #5473 [Verbose] > │         US0_1                                                                │
00:01:19 #5474 [Verbose] > │     else                                                                     │
00:01:19 #5475 [Verbose] > │         US0_0                                                                │
00:01:19 #5476 [Verbose] > │ and closure4 () (v0 : US0) : US1 =                                           │
00:01:19 #5477 [Verbose] > │     US1_1(v0)                                                                │
00:01:19 #5478 [Verbose] > │ and closure5 () (v0 : exn) : unit =                                          │
00:01:19 #5479 [Verbose] > │     let mutable result = None                                                │
00:01:19 #5480 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM                                         │
00:01:19 #5481 [Verbose] > │     ()                                                                       │
00:01:19 #5482 [Verbose] > │     #endif                                                                   │
00:01:19 #5483 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │
00:01:19 #5484 [Verbose] > │     ()                                                                       │
00:01:19 #5485 [Verbose] > │     #endif                                                                   │
00:01:19 #5486 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │
00:01:19 #5487 [Verbose] > │     let v1 : (int32 -> unit) = System.Threading.Thread.Sleep                 │
00:01:19 #5488 [Verbose] > │     v1 1                                                                     │
00:01:19 #5489 [Verbose] > │     ()                                                                       │
00:01:19 #5490 [Verbose] > │     #endif                                                                   │
00:01:19 #5491 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │
00:01:19 #5492 [Verbose] > │     ()                                                                       │
00:01:19 #5493 [Verbose] > │     #endif                                                                   │
00:01:19 #5494 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │
00:01:19 #5495 [Verbose] > │     ()                                                                       │
00:01:19 #5496 [Verbose] > │     #endif                                                                   │
00:01:19 #5497 [Verbose] > │     |> fun x -> result <- Some x                                             │
00:01:19 #5498 [Verbose] > │     result |> Option.get                                                     │
00:01:19 #5499 [Verbose] > │     ()                                                                       │
00:01:19 #5500 [Verbose] > │ and method1 (v0 : int32, v1 : (unit -> unit), v2 : int32) : US0 =            │
00:01:19 #5501 [Verbose] > │     let v3 : (unit -> US0) = closure3(v0, v1, v2)                            │
00:01:19 #5502 [Verbose] > │     let v4 : (US0 -> US1) = closure4()                                       │
00:01:19 #5503 [Verbose] > │     let v5 : (exn -> unit) = closure5()                                      │
00:01:19 #5504 [Verbose] > │     let v6 : US1 = US1_0                                                     │
00:01:19 #5505 [Verbose] > │     let v7 : US1 = try v3 () |> v4 with ex -> v5 ex; v6                      │
00:01:19 #5506 [Verbose] > │     match v7 with                                                            │
00:01:19 #5507 [Verbose] > │     | US1_0 -> (* None *)                                                    │
00:01:19 #5508 [Verbose] > │         let v9 : int32 = v2 + 1                                              │
00:01:19 #5509 [Verbose] > │         method1(v0, v1, v9)                                                  │
00:01:19 #5510 [Verbose] > │     | US1_1(v8) -> (* Some *)                                                │
00:01:19 #5511 [Verbose] > │         v8                                                                   │
00:01:19 #5512 [Verbose] > │ and closure2 (v0 : int32) (v1 : (unit -> unit)) : unit option =              │
00:01:19 #5513 [Verbose] > │     let v2 : int32 = 0                                                       │
00:01:19 #5514 [Verbose] > │     let v3 : US0 = method1(v0, v1, v2)                                       │
00:01:19 #5515 [Verbose] > │     match v3 with                                                            │
00:01:19 #5516 [Verbose] > │     | US0_0 -> (* None *)                                                    │
00:01:19 #5517 [Verbose] > │         let v5 : unit option = None                                          │
00:01:19 #5518 [Verbose] > │         v5                                                                   │
00:01:19 #5519 [Verbose] > │     | US0_1 -> (* Some *)                                                    │
00:01:19 #5520 [Verbose] > │         let v4 : unit option = Some ()                                       │
00:01:19 #5521 [Verbose] > │         v4                                                                   │
00:01:19 #5522 [Verbose] > │ and closure1 () (v0 : int32) : ((unit -> unit) -> unit option) =             │
00:01:19 #5523 [Verbose] > │     closure2(v0)                                                             │
00:01:19 #5524 [Verbose] > │ let v0 : ((unit -> unit) -> System.IDisposable) = closure0()                 │
00:01:19 #5525 [Verbose] > │ let new_disposable x = v0 x                                                  │
00:01:19 #5526 [Verbose] > │ let v1 : (int32 -> ((unit -> unit) -> unit option)) = closure1()             │
00:01:19 #5527 [Verbose] > │ let retry_fn x = v1 x                                                        │
00:01:19 #5528 [Verbose] > │ ()                                                                           │
00:01:19 #5529 [Verbose] > │                                                                              │
00:01:19 #5530 [Verbose] > │                                                                              │
00:01:19 #5531 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:19 #5532 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-4828-2828-2845c107311c/main.spi
00:01:20 #5533 [Verbose] > [NbConvertApp] Converting notebook common.dib.ipynb to html
00:01:20 #5534 [Verbose] > /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:01:20 #5535 [Verbose] >   validate(nb)
00:01:20 #5536 [Verbose] >
00:01:20 #5537 [Verbose] > ╭─[ 3.40s - stdout ]───────────────────────────────────────────────────────────╮
00:01:20 #5538 [Verbose] > │ ()                                                                           │
00:01:20 #5539 [Verbose] > │                                                                              │
00:01:20 #5540 [Verbose] > │                                                                              │
00:01:20 #5541 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:20 #5542 [Verbose] >
00:01:20 #5543 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:20 #5544 [Verbose] > open rust_operators
00:01:20 #5545 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-4977-7771-7d0a19bcf308/main.spi
00:01:20 #5546 [Verbose] >
00:01:20 #5547 [Verbose] > ╭─[ 139.02ms - stdout ]────────────────────────────────────────────────────────╮
00:01:20 #5548 [Verbose] > │ ()                                                                           │
00:01:20 #5549 [Verbose] > │                                                                              │
00:01:20 #5550 [Verbose] > │                                                                              │
00:01:20 #5551 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:20 #5552 [Verbose] >
00:01:20 #5553 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:20 #5554 [Verbose] > inl types () =
00:01:20 #5555 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"str\")>]] type Str = class
00:01:20 #5556 [Verbose] > end"
00:01:20 #5557 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"base64::DecodeError\")>]]
00:01:20 #5558 [Verbose] > type base64_DecodeError = class end"
00:01:20 #5559 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"borsh::io::Error\")>]] type
00:01:20 #5560 [Verbose] > borsh_io_Error = class end"
00:01:20 #5561 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"js_sys::JsString\")>]] type
00:01:20 #5562 [Verbose] > js_sys_JsString = class end"
00:01:20 #5563 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"serde_json::Error\")>]] type
00:01:20 #5564 [Verbose] > serde_json_Error = class end"
00:01:20 #5565 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"serde_json::Value\")>]] type
00:01:20 #5566 [Verbose] > serde_json_Value = class end"
00:01:20 #5567 [Verbose] >     global "[[<Fable.Core.Erase;
00:01:20 #5568 [Verbose] > Fable.Core.Emit(\"serde_wasm_bindgen::Error\")>]] type serde_wasm_bindgen_Error
00:01:20 #5569 [Verbose] > = class end"
00:01:20 #5570 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::str::Utf8Error\")>]]
00:01:20 #5571 [Verbose] > type std_str_Utf8Error = class end"
00:01:20 #5572 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::string::String\")>]]
00:01:20 #5573 [Verbose] > type std_string_String = class end"
00:01:20 #5574 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-4991-9189-916889df9223/main.spi
00:01:20 #5575 [Verbose] >
00:01:20 #5576 [Verbose] > ╭─[ 144.02ms - stdout ]────────────────────────────────────────────────────────╮
00:01:20 #5577 [Verbose] > │ ()                                                                           │
00:01:20 #5578 [Verbose] > │                                                                              │
00:01:20 #5579 [Verbose] > │                                                                              │
00:01:20 #5580 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:20 #5581 [Verbose] >
00:01:20 #5582 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:20 #5583 [Verbose] > // // test
00:01:20 #5584 [Verbose] >
00:01:20 #5585 [Verbose] > inl types () =
00:01:20 #5586 [Verbose] >     rust.types ()
00:01:20 #5587 [Verbose] >     types ()
00:01:20 #5588 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5005-0592-00da98da0df5/main.spi
00:01:21 #5589 [Verbose] >
00:01:21 #5590 [Verbose] > ╭─[ 137.07ms - stdout ]────────────────────────────────────────────────────────╮
00:01:21 #5591 [Verbose] > │ ()                                                                           │
00:01:21 #5592 [Verbose] > │                                                                              │
00:01:21 #5593 [Verbose] > │                                                                              │
00:01:21 #5594 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:21 #5595 [Verbose] >
00:01:21 #5596 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:21 #5597 [Verbose] > nominal base64_decode_error = $"base64_DecodeError"
00:01:21 #5598 [Verbose] > nominal borsh_io_error = $"borsh_io_Error"
00:01:21 #5599 [Verbose] > nominal utf8_error = $"std_str_Utf8Error"
00:01:21 #5600 [Verbose] > nominal json_value = $"serde_json_Value"
00:01:21 #5601 [Verbose] > nominal json_error = $"serde_json_Error"
00:01:21 #5602 [Verbose] > nominal serde_wasm_bindgen_error = $"serde_wasm_bindgen_Error"
00:01:21 #5603 [Verbose] > nominal std_string = $"std_string_String"
00:01:21 #5604 [Verbose] > nominal js_string = $"js_sys_JsString"
00:01:21 #5605 [Verbose] > nominal str = $"Str"
00:01:21 #5606 [Verbose] > /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:01:21 #5607 [Verbose] >   return _pygments_highlight(
00:01:21 #5608 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5019-1966-11b604a7ca06/main.spi
00:01:21 #5609 [Verbose] >
00:01:21 #5610 [Verbose] > ╭─[ 135.18ms - stdout ]────────────────────────────────────────────────────────╮
00:01:21 #5611 [Verbose] > │ ()                                                                           │
00:01:21 #5612 [Verbose] > │                                                                              │
00:01:21 #5613 [Verbose] > │                                                                              │
00:01:21 #5614 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:21 #5615 [Verbose] >
00:01:21 #5616 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:21 #5617 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:21 #5618 [Verbose] > │ ## contains                                                                  │
00:01:21 #5619 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:21 #5620 [Verbose] >
00:01:21 #5621 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:21 #5622 [Verbose] > inl contains (value : string) (s : string) : bool =
00:01:21 #5623 [Verbose] >     $"!s.Contains !value"
00:01:21 #5624 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5033-3324-3212c75ad92c/main.spi
00:01:21 #5625 [Verbose] >
00:01:21 #5626 [Verbose] > ╭─[ 149.95ms - stdout ]────────────────────────────────────────────────────────╮
00:01:21 #5627 [Verbose] > │ ()                                                                           │
00:01:21 #5628 [Verbose] > │                                                                              │
00:01:21 #5629 [Verbose] > │                                                                              │
00:01:21 #5630 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:21 #5631 [Verbose] >
00:01:21 #5632 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:21 #5633 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:21 #5634 [Verbose] > │ ## ends_with                                                                 │
00:01:21 #5635 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:21 #5636 [Verbose] >
00:01:21 #5637 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:21 #5638 [Verbose] > inl ends_with (value : string) (s : string) : bool =
00:01:21 #5639 [Verbose] >     $"!s.EndsWith !value"
00:01:21 #5640 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5048-4833-423d1200dfd4/main.spi
00:01:21 #5641 [Verbose] >
00:01:21 #5642 [Verbose] > ╭─[ 149.55ms - stdout ]────────────────────────────────────────────────────────╮
00:01:21 #5643 [Verbose] > │ ()                                                                           │
00:01:21 #5644 [Verbose] > │                                                                              │
00:01:21 #5645 [Verbose] > │                                                                              │
00:01:21 #5646 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:21 #5647 [Verbose] >
00:01:21 #5648 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:21 #5649 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:21 #5650 [Verbose] > │ ## pad_left                                                                  │
00:01:21 #5651 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:21 #5652 [Verbose] >
00:01:21 #5653 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:21 #5654 [Verbose] > inl pad_left total_width padding_char (s : string) : string =
00:01:21 #5655 [Verbose] >     $"!s.PadLeft (!total_width, !padding_char)"
00:01:21 #5656 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5019-1977-1c604b691e59/main.spi
00:01:21 #5657 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5063-6361-66c3b051e7d2/main.spi
00:01:21 #5658 [Verbose] >
00:01:21 #5659 [Verbose] > ╭─[ 120.04ms - stdout ]────────────────────────────────────────────────────────╮
00:01:21 #5660 [Verbose] > │ ()                                                                           │
00:01:21 #5661 [Verbose] > │                                                                              │
00:01:21 #5662 [Verbose] > │                                                                              │
00:01:21 #5663 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:21 #5664 [Verbose] >
00:01:21 #5665 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:21 #5666 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:21 #5667 [Verbose] > │ ## pad_right                                                                 │
00:01:21 #5668 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:21 #5669 [Verbose] >
00:01:21 #5670 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:21 #5671 [Verbose] > inl pad_right (pad : i32) (s : string) : string =
00:01:21 #5672 [Verbose] >     $"!s.PadRight !pad"
00:01:21 #5673 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5075-7574-72e6f8a09722/main.spi
00:01:21 #5674 [Verbose] > [NbConvertApp] Writing 393477 bytes to common.dib.html
00:01:21 #5675 [Verbose] >
00:01:21 #5676 [Verbose] > ╭─[ 130.15ms - stdout ]────────────────────────────────────────────────────────╮
00:01:21 #5677 [Verbose] > │ ()                                                                           │
00:01:21 #5678 [Verbose] > │                                                                              │
00:01:21 #5679 [Verbose] > │                                                                              │
00:01:21 #5680 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:21 #5681 [Verbose] >
00:01:21 #5682 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:21 #5683 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:21 #5684 [Verbose] > │ ## replace                                                                   │
00:01:21 #5685 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:21 #5686 [Verbose] >
00:01:21 #5687 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:21 #5688 [Verbose] > inl replace (old_value : string) (new_value : string) (s : string) : string =
00:01:21 #5689 [Verbose] >     $"!s.Replace (!old_value, !new_value)"
00:01:21 #5690 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5088-8885-859c6902f3cb/main.spi
00:01:21 #5691 [Verbose] >
00:01:21 #5692 [Verbose] > ╭─[ 139.80ms - stdout ]────────────────────────────────────────────────────────╮
00:01:21 #5693 [Verbose] > │ ()                                                                           │
00:01:21 #5694 [Verbose] > │                                                                              │
00:01:21 #5695 [Verbose] > │                                                                              │
00:01:21 #5696 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:21 #5697 [Verbose] >
00:01:21 #5698 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:21 #5699 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:21 #5700 [Verbose] > │ ## split                                                                     │
00:01:21 #5701 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:21 #5702 [Verbose] >
00:01:21 #5703 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:21 #5704 [Verbose] > inl split (separator : string) (str : string) : array_base string =
00:01:21 #5705 [Verbose] >     $"!str.Split !separator"
00:01:21 #5706 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5102-0294-01c5bb8e2bac/main.spi
00:01:22 #5707 [Verbose] >
00:01:22 #5708 [Verbose] > ╭─[ 130.74ms - stdout ]────────────────────────────────────────────────────────╮
00:01:22 #5709 [Verbose] > │ ()                                                                           │
00:01:22 #5710 [Verbose] > │                                                                              │
00:01:22 #5711 [Verbose] > │                                                                              │
00:01:22 #5712 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:22 #5713 [Verbose] >
00:01:22 #5714 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:22 #5715 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:22 #5716 [Verbose] > │ ## split_string                                                              │
00:01:22 #5717 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:22 #5718 [Verbose] >
00:01:22 #5719 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:22 #5720 [Verbose] > inl split_string (separator : array_base string) (str : string) : array_base
00:01:22 #5721 [Verbose] > string =
00:01:22 #5722 [Verbose] >     $"!str.Split (!separator, StringSplitOptions.None)"
00:01:22 #5723 [Debug] executeAsync / exitCode: 0 / output.Length: 140837
00:01:22 #5724 [Debug] main / executeCommand / exitCode: 0
00:01:22 #5725 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 benchmark.dib""
  WorkingDirectory = None
  CancellationToken = Some System.Threading.CancellationToken
  OnLine = None }
00:01:22 #5726 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5116-1636-1cf97329bec7/main.spi
00:01:22 #5727 [Verbose] >
00:01:22 #5728 [Verbose] > ╭─[ 152.80ms - stdout ]────────────────────────────────────────────────────────╮
00:01:22 #5729 [Verbose] > │ ()                                                                           │
00:01:22 #5730 [Verbose] > │                                                                              │
00:01:22 #5731 [Verbose] > │                                                                              │
00:01:22 #5732 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:22 #5733 [Verbose] >
00:01:22 #5734 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:22 #5735 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:22 #5736 [Verbose] > │ ## starts_with                                                               │
00:01:22 #5737 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:22 #5738 [Verbose] >
00:01:22 #5739 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:22 #5740 [Verbose] > inl starts_with (value : std_string) (s : std_string) : bool =
00:01:22 #5741 [Verbose] >     inl s = join s
00:01:22 #5742 [Verbose] >     !\($'"!s.starts_with(&!value)"')
00:01:22 #5743 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5131-3170-358309990903/main.spi
00:01:22 #5744 [Verbose] >
00:01:22 #5745 [Verbose] > ╭─[ 136.08ms - stdout ]────────────────────────────────────────────────────────╮
00:01:22 #5746 [Verbose] > │ ()                                                                           │
00:01:22 #5747 [Verbose] > │                                                                              │
00:01:22 #5748 [Verbose] > │                                                                              │
00:01:22 #5749 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:22 #5750 [Verbose] >
00:01:22 #5751 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:22 #5752 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:22 #5753 [Verbose] > │ ## substring                                                                 │
00:01:22 #5754 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:22 #5755 [Verbose] >
00:01:22 #5756 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:22 #5757 [Verbose] > inl substring forall t {int}. (start : t) (len : t) (str : string) : string =
00:01:22 #5758 [Verbose] >     $"!str.Substring (!start, !len)"
00:01:22 #5759 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5145-4552-4d90c7f63435/main.spi
00:01:22 #5760 [Verbose] >
00:01:22 #5761 [Verbose] > ╭─[ 3.15s - stdout ]───────────────────────────────────────────────────────────╮
00:01:22 #5762 [Verbose] > │ ()                                                                           │
00:01:22 #5763 [Verbose] > │                                                                              │
00:01:22 #5764 [Verbose] > │                                                                              │
00:01:22 #5765 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:22 #5766 [Verbose] >
00:01:22 #5767 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:22 #5768 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:22 #5769 [Verbose] > │ ## append                                                                    │
00:01:22 #5770 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:22 #5771 [Verbose] >
00:01:22 #5772 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:22 #5773 [Verbose] > instance append list t =
00:01:22 #5774 [Verbose] >     listm.append
00:01:22 #5775 [Verbose] >
00:01:22 #5776 [Verbose] > ╭─[ 155.38ms - stdout ]────────────────────────────────────────────────────────╮
00:01:22 #5777 [Verbose] > │ ()                                                                           │
00:01:22 #5778 [Verbose] > │                                                                              │
00:01:22 #5779 [Verbose] > │                                                                              │
00:01:22 #5780 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:22 #5781 [Verbose] >
00:01:22 #5782 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:22 #5783 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:22 #5784 [Verbose] > │ ## to_lower                                                                  │
00:01:22 #5785 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:22 #5786 [Verbose] >
00:01:22 #5787 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:22 #5788 [Verbose] > inl to_lower (input : string) : string =
00:01:22 #5789 [Verbose] >     $"!input.ToLower ()"
00:01:22 #5790 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5157-5774-5b1f069852c5/main.spi
00:01:24 #5791 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5161-6111-66a188f5f869/main.spi
00:01:24 #5792 [Verbose] >
00:01:24 #5793 [Verbose] > ╭─[ 2.20s - stdout ]───────────────────────────────────────────────────────────╮
00:01:24 #5794 [Verbose] > │ ()                                                                           │
00:01:24 #5795 [Verbose] > │                                                                              │
00:01:24 #5796 [Verbose] > │                                                                              │
00:01:24 #5797 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:24 #5798 [Verbose] >
00:01:24 #5799 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:24 #5800 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:24 #5801 [Verbose] > │ ## /@                                                                        │
00:01:24 #5802 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:24 #5803 [Verbose] >
00:01:24 #5804 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:24 #5805 [Verbose] > inl (/@) a b =
00:01:24 #5806 [Verbose] >     b |> append a
00:01:24 #5807 [Verbose] >
00:01:24 #5808 [Verbose] > ╭─[ 2.17s - stdout ]───────────────────────────────────────────────────────────╮
00:01:24 #5809 [Verbose] > │ ()                                                                           │
00:01:24 #5810 [Verbose] > │                                                                              │
00:01:24 #5811 [Verbose] > │                                                                              │
00:01:24 #5812 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:24 #5813 [Verbose] >
00:01:24 #5814 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:24 #5815 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:24 #5816 [Verbose] > │ ## to_upper                                                                  │
00:01:24 #5817 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:24 #5818 [Verbose] >
00:01:24 #5819 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:24 #5820 [Verbose] > inl to_upper (input : string) : string =
00:01:24 #5821 [Verbose] >     $"!input.ToUpper ()"
00:01:24 #5822 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5378-7858-70b0f6dfdf8d/main.spi
00:01:24 #5823 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5378-7826-73520ba2b265/main.spi
00:01:24 #5824 [Verbose] >
00:01:24 #5825 [Verbose] > ╭─[ 144.26ms - stdout ]────────────────────────────────────────────────────────╮
00:01:24 #5826 [Verbose] > │ ()                                                                           │
00:01:24 #5827 [Verbose] > │                                                                              │
00:01:24 #5828 [Verbose] > │                                                                              │
00:01:24 #5829 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:24 #5830 [Verbose] >
00:01:24 #5831 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:24 #5832 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:24 #5833 [Verbose] > │ ## trim                                                                      │
00:01:24 #5834 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:24 #5835 [Verbose] >
00:01:24 #5836 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:24 #5837 [Verbose] > inl trim (input : string) : string =
00:01:24 #5838 [Verbose] >     $"!input.Trim ()"
00:01:24 #5839 [Verbose] >
00:01:24 #5840 [Verbose] > ╭─[ 192.72ms - stdout ]────────────────────────────────────────────────────────╮
00:01:24 #5841 [Verbose] > │ ()                                                                           │
00:01:24 #5842 [Verbose] > │                                                                              │
00:01:24 #5843 [Verbose] > │                                                                              │
00:01:24 #5844 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:24 #5845 [Verbose] >
00:01:24 #5846 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:24 #5847 [Verbose] > // // test
00:01:24 #5848 [Verbose] >
00:01:24 #5849 [Verbose] > [[ "a"; "b" ]] /@ [[ "c"; "d" ]]
00:01:24 #5850 [Verbose] > |> _assert_eq [[ "a"; "b"; "c"; "d" ]]
00:01:24 #5851 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5393-9346-97913699bfac/main.spi
00:01:24 #5852 [Verbose] >
00:01:24 #5853 [Verbose] > ╭─[ 143.82ms - stdout ]────────────────────────────────────────────────────────╮
00:01:24 #5854 [Verbose] > │ ()                                                                           │
00:01:24 #5855 [Verbose] > │                                                                              │
00:01:24 #5856 [Verbose] > │                                                                              │
00:01:24 #5857 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:24 #5858 [Verbose] >
00:01:24 #5859 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:24 #5860 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:24 #5861 [Verbose] > │ ## trim_end                                                                  │
00:01:24 #5862 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:24 #5863 [Verbose] >
00:01:24 #5864 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:24 #5865 [Verbose] > inl trim_end (trim_chars : array_base char) (input : string) : string =
00:01:24 #5866 [Verbose] >     $"!input.TrimEnd !trim_chars"
00:01:24 #5867 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5397-9728-950c5da29491/main.spi
00:01:24 #5868 [Verbose] >
00:01:25 #5869 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5407-0788-04bc4569c30a/main.spi
00:01:25 #5870 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:25 #5871 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:25 #5872 [Verbose] > │ ## benchmark (Polyglot)                                                      │
00:01:25 #5873 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:25 #5874 [Verbose] >
00:01:25 #5875 [Verbose] > ╭─[ 154.37ms - stdout ]────────────────────────────────────────────────────────╮
00:01:25 #5876 [Verbose] > │ ()                                                                           │
00:01:25 #5877 [Verbose] > │                                                                              │
00:01:25 #5878 [Verbose] > │                                                                              │
00:01:25 #5879 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:25 #5880 [Verbose] >
00:01:25 #5881 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:25 #5882 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:25 #5883 [Verbose] > │ ## trim_start                                                                │
00:01:25 #5884 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:25 #5885 [Verbose] >
00:01:25 #5886 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:25 #5887 [Verbose] > inl trim_start (trim_chars : array_base char) (input : string) : string =
00:01:25 #5888 [Verbose] >     $"!input.TrimStart !trim_chars"
00:01:25 #5889 [Verbose] >
00:01:25 #5890 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:25 #5891 [Verbose] > // // test
00:01:25 #5892 [Verbose] >
00:01:25 #5893 [Verbose] > open testing
00:01:25 #5894 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5423-2339-2111db70e17d/main.spi
00:01:25 #5895 [Verbose] >
00:01:25 #5896 [Verbose] > ╭─[ 137.58ms - stdout ]────────────────────────────────────────────────────────╮
00:01:25 #5897 [Verbose] > │ ()                                                                           │
00:01:25 #5898 [Verbose] > │                                                                              │
00:01:25 #5899 [Verbose] > │                                                                              │
00:01:25 #5900 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:25 #5901 [Verbose] >
00:01:25 #5902 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:25 #5903 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:25 #5904 [Verbose] > │ ## ellipsis                                                                  │
00:01:25 #5905 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:25 #5906 [Verbose] >
00:01:25 #5907 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:25 #5908 [Verbose] > inl ellipsis forall t {int; number}. (max : t) (s : string) =
00:01:25 #5909 [Verbose] >     if sm.length s <= max
00:01:25 #5910 [Verbose] >     then s
00:01:25 #5911 [Verbose] >     else s |> substring 0 max |> fun x => $'!x + "..."'
00:01:25 #5912 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5437-3739-386c51596e33/main.spi
00:01:25 #5913 [Verbose] >
00:01:25 #5914 [Verbose] > ╭─[ 146.85ms - stdout ]────────────────────────────────────────────────────────╮
00:01:25 #5915 [Verbose] > │ ()                                                                           │
00:01:25 #5916 [Verbose] > │                                                                              │
00:01:25 #5917 [Verbose] > │                                                                              │
00:01:25 #5918 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:25 #5919 [Verbose] >
00:01:25 #5920 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:25 #5921 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:25 #5922 [Verbose] > │ ## raw_string_literal                                                        │
00:01:25 #5923 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:25 #5924 [Verbose] >
00:01:25 #5925 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:25 #5926 [Verbose] > inl raw_string_literal (s : string) : rust.ref' str =
00:01:25 #5927 [Verbose] >     !\($"\"r#\\\"\" + !s + \"\\\"#\"")
00:01:25 #5928 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5452-5210-53b5e06b9088/main.spi
00:01:25 #5929 [Verbose] >
00:01:25 #5930 [Verbose] > ╭─[ 138.32ms - stdout ]────────────────────────────────────────────────────────╮
00:01:25 #5931 [Verbose] > │ ()                                                                           │
00:01:25 #5932 [Verbose] > │                                                                              │
00:01:25 #5933 [Verbose] > │                                                                              │
00:01:25 #5934 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:25 #5935 [Verbose] >
00:01:25 #5936 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:25 #5937 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:25 #5938 [Verbose] > │ ## raw_string_literal_static                                                 │
00:01:25 #5939 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:25 #5940 [Verbose] >
00:01:25 #5941 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:25 #5942 [Verbose] > inl raw_string_literal_static (s : string) : rust.static_ref' str =
00:01:25 #5943 [Verbose] >     !\($"\"r#\\\"\" + !s + \"\\\"#\"")
00:01:25 #5944 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5466-6607-6e71c0f3a995/main.spi
00:01:25 #5945 [Verbose] >
00:01:25 #5946 [Verbose] > ╭─[ 138.58ms - stdout ]────────────────────────────────────────────────────────╮
00:01:25 #5947 [Verbose] > │ ()                                                                           │
00:01:25 #5948 [Verbose] > │                                                                              │
00:01:25 #5949 [Verbose] > │                                                                              │
00:01:25 #5950 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:25 #5951 [Verbose] >
00:01:25 #5952 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:25 #5953 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:25 #5954 [Verbose] > │ ## include_str                                                               │
00:01:25 #5955 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:25 #5956 [Verbose] >
00:01:25 #5957 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:25 #5958 [Verbose] > inl include_str (path : string) : rust.ref' str =
00:01:25 #5959 [Verbose] >     !\($'"include_str\!(\\\"" + !path + "\\\")"')
00:01:25 #5960 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5479-7996-7a27a9d4c58f/main.spi
00:01:25 #5961 [Verbose] >
00:01:25 #5962 [Verbose] > ╭─[ 147.43ms - stdout ]────────────────────────────────────────────────────────╮
00:01:25 #5963 [Verbose] > │ ()                                                                           │
00:01:25 #5964 [Verbose] > │                                                                              │
00:01:25 #5965 [Verbose] > │                                                                              │
00:01:25 #5966 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:25 #5967 [Verbose] >
00:01:25 #5968 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:25 #5969 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:25 #5970 [Verbose] > │ ## as_str                                                                    │
00:01:25 #5971 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:25 #5972 [Verbose] >
00:01:25 #5973 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:25 #5974 [Verbose] > inl as_str (s : string) : rust.ref' str =
00:01:25 #5975 [Verbose] >     inl s = join s
00:01:25 #5976 [Verbose] >     !\($'$"fable_library_rust::String_::LrcStr::as_str(&!s)"')
00:01:25 #5977 [Verbose] >
00:01:25 #5978 [Verbose] > ╭─[ 1.10s - stdout ]───────────────────────────────────────────────────────────╮
00:01:25 #5979 [Verbose] > │ type UH0 =                                                                   │
00:01:25 #5980 [Verbose] > │     | UH0_0 of string * UH0                                                  │
00:01:25 #5981 [Verbose] > │     | UH0_1                                                                  │
00:01:25 #5982 [Verbose] > │ let rec method0 () : unit =                                                  │
00:01:25 #5983 [Verbose] > │     let v0 : string = "a"                                                    │
00:01:25 #5984 [Verbose] > │     let v1 : string = "b"                                                    │
00:01:25 #5985 [Verbose] > │     let v2 : string = "c"                                                    │
00:01:25 #5986 [Verbose] > │     let v3 : string = "d"                                                    │
00:01:25 #5987 [Verbose] > │     let v4 : UH0 = UH0_1                                                     │
00:01:25 #5988 [Verbose] > │     let v5 : UH0 = UH0_0(v3, v4)                                             │
00:01:25 #5989 [Verbose] > │     let v6 : UH0 = UH0_0(v2, v5)                                             │
00:01:25 #5990 [Verbose] > │     let v7 : UH0 = UH0_0(v1, v6)                                             │
00:01:25 #5991 [Verbose] > │     let v8 : UH0 = UH0_0(v0, v7)                                             │
00:01:25 #5992 [Verbose] > │     let v9 : string = $"%A{v8}"                                              │
00:01:25 #5993 [Verbose] > │     System.Console.WriteLine v9                                              │
00:01:25 #5994 [Verbose] > │     let v35 : UH0 = UH0_1                                                    │
00:01:25 #5995 [Verbose] > │     let v36 : UH0 = UH0_0(v3, v35)                                           │
00:01:25 #5996 [Verbose] > │     let v37 : UH0 = UH0_0(v2, v36)                                           │
00:01:25 #5997 [Verbose] > │     let v38 : UH0 = UH0_0(v1, v37)                                           │
00:01:25 #5998 [Verbose] > │     let v39 : UH0 = UH0_0(v0, v38)                                           │
00:01:25 #5999 [Verbose] > │     let v40 : UH0 = UH0_1                                                    │
00:01:25 #6000 [Verbose] > │     let v41 : UH0 = UH0_0(v3, v40)                                           │
00:01:25 #6001 [Verbose] > │     let v42 : UH0 = UH0_0(v2, v41)                                           │
00:01:25 #6002 [Verbose] > │     let v43 : UH0 = UH0_0(v1, v42)                                           │
00:01:25 #6003 [Verbose] > │     let v44 : UH0 = UH0_0(v0, v43)                                           │
00:01:25 #6004 [Verbose] > │     let v45 : string = $"__expect / actual: %A{v39} / expected: %A{v44}"     │
00:01:25 #6005 [Verbose] > │     ()                                                                       │
00:01:25 #6006 [Verbose] > │ method0()                                                                    │
00:01:25 #6007 [Verbose] > │                                                                              │
00:01:25 #6008 [Verbose] > │ UH0_0 ("a", UH0_0 ("b", UH0_0 ("c", UH0_0 ("d", UH0_1))))                    │
00:01:25 #6009 [Verbose] > │                                                                              │
00:01:25 #6010 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:25 #6011 [Verbose] >
00:01:25 #6012 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:25 #6013 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:25 #6014 [Verbose] > │ ## init_series                                                               │
00:01:25 #6015 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:25 #6016 [Verbose] >
00:01:25 #6017 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:25 #6018 [Verbose] > inl init_series start end inc =
00:01:25 #6019 [Verbose] >     inl total : f64 = conv ((end - start) / inc) + 1
00:01:25 #6020 [Verbose] >     listm.init total (conv >> (*) inc >> (+) start)
00:01:25 #6021 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5495-9504-98a59dbea11f/main.spi
00:01:25 #6022 [Verbose] >
00:01:25 #6023 [Verbose] > ╭─[ 202.52ms - stdout ]────────────────────────────────────────────────────────╮
00:01:25 #6024 [Verbose] > │ ()                                                                           │
00:01:25 #6025 [Verbose] > │                                                                              │
00:01:25 #6026 [Verbose] > │                                                                              │
00:01:25 #6027 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:25 #6028 [Verbose] >
00:01:25 #6029 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:25 #6030 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:25 #6031 [Verbose] > │ ## from_std_string                                                           │
00:01:25 #6032 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:25 #6033 [Verbose] >
00:01:25 #6034 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:25 #6035 [Verbose] > inl from_std_string (str : std_string) : string =
00:01:25 #6036 [Verbose] >     inl str = join str
00:01:25 #6037 [Verbose] >     !\($'"fable_library_rust::String_::fromString(!str)"')
00:01:26 #6038 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5507-0793-05e1781ec80d/main.spi
00:01:26 #6039 [Verbose] >
00:01:26 #6040 [Verbose] > ╭─[ 140.95ms - stdout ]────────────────────────────────────────────────────────╮
00:01:26 #6041 [Verbose] > │ ()                                                                           │
00:01:26 #6042 [Verbose] > │                                                                              │
00:01:26 #6043 [Verbose] > │                                                                              │
00:01:26 #6044 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:26 #6045 [Verbose] >
00:01:26 #6046 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:26 #6047 [Verbose] > // // test
00:01:26 #6048 [Verbose] >
00:01:26 #6049 [Verbose] > init_series 0 1 0.5
00:01:26 #6050 [Verbose] > |> _assert_eq [[ 0f64; 0.5; 1 ]]
00:01:26 #6051 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5515-1552-1c5e6942bde2/main.spi
00:01:26 #6052 [Verbose] >
00:01:26 #6053 [Verbose] > ╭─[ 135.82ms - stdout ]────────────────────────────────────────────────────────╮
00:01:26 #6054 [Verbose] > │ ()                                                                           │
00:01:26 #6055 [Verbose] > │                                                                              │
00:01:26 #6056 [Verbose] > │                                                                              │
00:01:26 #6057 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:26 #6058 [Verbose] >
00:01:26 #6059 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:26 #6060 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:26 #6061 [Verbose] > │ ## ref_to_std_string                                                         │
00:01:26 #6062 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:26 #6063 [Verbose] >
00:01:26 #6064 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:26 #6065 [Verbose] > inl ref_to_std_string (str : rust.ref' str) : std_string =
00:01:26 #6066 [Verbose] >     !\($'"String::from(!str)"')
00:01:26 #6067 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5521-2180-2e7ca2c7d4de/main.spi
00:01:26 #6068 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5529-2913-210de497a02a/main.spi
00:01:26 #6069 [Verbose] >
00:01:26 #6070 [Verbose] > ╭─[ 197.54ms - stdout ]────────────────────────────────────────────────────────╮
00:01:26 #6071 [Verbose] > │ type UH0 =                                                                   │
00:01:26 #6072 [Verbose] > │     | UH0_0 of float * UH0                                                   │
00:01:26 #6073 [Verbose] > │     | UH0_1                                                                  │
00:01:26 #6074 [Verbose] > │ let rec method0 () : unit =                                                  │
00:01:26 #6075 [Verbose] > │     let v0 : UH0 = UH0_1                                                     │
00:01:26 #6076 [Verbose] > │     let v1 : UH0 = UH0_0(1.0, v0)                                            │
00:01:26 #6077 [Verbose] > │     let v2 : UH0 = UH0_0(0.5, v1)                                            │
00:01:26 #6078 [Verbose] > │     let v3 : UH0 = UH0_0(0.0, v2)                                            │
00:01:26 #6079 [Verbose] > │     let v4 : string = $"%A{v3}"                                              │
00:01:26 #6080 [Verbose] > │     System.Console.WriteLine v4                                              │
00:01:26 #6081 [Verbose] > │     let v23 : UH0 = UH0_1                                                    │
00:01:26 #6082 [Verbose] > │     let v24 : UH0 = UH0_0(1.0, v23)                                          │
00:01:26 #6083 [Verbose] > │     let v25 : UH0 = UH0_0(0.5, v24)                                          │
00:01:26 #6084 [Verbose] > │     let v26 : UH0 = UH0_0(0.0, v25)                                          │
00:01:26 #6085 [Verbose] > │     let v27 : UH0 = UH0_1                                                    │
00:01:26 #6086 [Verbose] > │     let v28 : UH0 = UH0_0(1.0, v27)                                          │
00:01:26 #6087 [Verbose] > │     let v29 : UH0 = UH0_0(0.5, v28)                                          │
00:01:26 #6088 [Verbose] > │     let v30 : UH0 = UH0_0(0.0, v29)                                          │
00:01:26 #6089 [Verbose] > │     let v31 : string = $"__expect / actual: %A{v26} / expected: %A{v30}"     │
00:01:26 #6090 [Verbose] > │     ()                                                                       │
00:01:26 #6091 [Verbose] > │ method0()                                                                    │
00:01:26 #6092 [Verbose] > │                                                                              │
00:01:26 #6093 [Verbose] > │ UH0_0 (0.0, UH0_0 (0.5, UH0_0 (1.0, UH0_1)))                                 │
00:01:26 #6094 [Verbose] > │                                                                              │
00:01:26 #6095 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:26 #6096 [Verbose] >
00:01:26 #6097 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:26 #6098 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:26 #6099 [Verbose] > │ ## try_item                                                                  │
00:01:26 #6100 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:26 #6101 [Verbose] >
00:01:26 #6102 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:26 #6103 [Verbose] > inl rec try_item i = function
00:01:26 #6104 [Verbose] >     | Cons (x, _) when i = 0 => Some x
00:01:26 #6105 [Verbose] >     | Cons (_, xs) => try_item (i - 1) xs
00:01:26 #6106 [Verbose] >     | Nil => None
00:01:26 #6107 [Verbose] >
00:01:26 #6108 [Verbose] > ╭─[ 138.33ms - stdout ]────────────────────────────────────────────────────────╮
00:01:26 #6109 [Verbose] > │ ()                                                                           │
00:01:26 #6110 [Verbose] > │                                                                              │
00:01:26 #6111 [Verbose] > │                                                                              │
00:01:26 #6112 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:26 #6113 [Verbose] >
00:01:26 #6114 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:26 #6115 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:26 #6116 [Verbose] > │ ## to_std_string                                                             │
00:01:26 #6117 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:26 #6118 [Verbose] >
00:01:26 #6119 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:26 #6120 [Verbose] > inl to_std_string (s : string) : std_string =
00:01:26 #6121 [Verbose] >     inl s = join s
00:01:26 #6122 [Verbose] >     s |> as_str |> ref_to_std_string
00:01:26 #6123 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5542-4207-45c3b24af547/main.spi
00:01:26 #6124 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5543-4311-4cc7ecd4acdf/main.spi
00:01:26 #6125 [Verbose] >
00:01:26 #6126 [Verbose] > ╭─[ 128.09ms - stdout ]────────────────────────────────────────────────────────╮
00:01:26 #6127 [Verbose] > │ ()                                                                           │
00:01:26 #6128 [Verbose] > │                                                                              │
00:01:26 #6129 [Verbose] > │                                                                              │
00:01:26 #6130 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:26 #6131 [Verbose] >
00:01:26 #6132 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:26 #6133 [Verbose] > // // test
00:01:26 #6134 [Verbose] >
00:01:26 #6135 [Verbose] > listm.init 10i32 id
00:01:26 #6136 [Verbose] > |> try_item 9i32
00:01:26 #6137 [Verbose] > |> _assert_eq (Some 9)
00:01:26 #6138 [Verbose] >
00:01:26 #6139 [Verbose] > ╭─[ 139.86ms - stdout ]────────────────────────────────────────────────────────╮
00:01:26 #6140 [Verbose] > │ ()                                                                           │
00:01:26 #6141 [Verbose] > │                                                                              │
00:01:26 #6142 [Verbose] > │                                                                              │
00:01:26 #6143 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:26 #6144 [Verbose] >
00:01:26 #6145 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:26 #6146 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:26 #6147 [Verbose] > │ ## as_str_std                                                                │
00:01:26 #6148 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:26 #6149 [Verbose] >
00:01:26 #6150 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:26 #6151 [Verbose] > inl as_str_std (s : std_string) : rust.ref' str =
00:01:26 #6152 [Verbose] >     inl s = join s
00:01:26 #6153 [Verbose] >     !\($'"!s.as_str()"')
00:01:26 #6154 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5554-5481-5f4414abe428/main.spi
00:01:26 #6155 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5557-5732-52e5dc2f48e9/main.spi
00:01:26 #6156 [Verbose] >
00:01:26 #6157 [Verbose] > ╭─[ 126.13ms - stdout ]────────────────────────────────────────────────────────╮
00:01:26 #6158 [Verbose] > │ ()                                                                           │
00:01:26 #6159 [Verbose] > │                                                                              │
00:01:26 #6160 [Verbose] > │                                                                              │
00:01:26 #6161 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:26 #6162 [Verbose] >
00:01:26 #6163 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:26 #6164 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:26 #6165 [Verbose] > │ ## into_boxed_str                                                            │
00:01:26 #6166 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:26 #6167 [Verbose] >
00:01:26 #6168 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:26 #6169 [Verbose] > inl into_boxed_str (s : std_string) : rust.box str =
00:01:26 #6170 [Verbose] >     !\($'"!s.into_boxed_str()"')
00:01:26 #6171 [Verbose] >
00:01:26 #6172 [Verbose] > ╭─[ 206.38ms - stdout ]────────────────────────────────────────────────────────╮
00:01:26 #6173 [Verbose] > │ type [<Struct>] US0 =                                                        │
00:01:26 #6174 [Verbose] > │     | US0_0                                                                  │
00:01:26 #6175 [Verbose] > │     | US0_1 of f1_0 : int32                                                  │
00:01:26 #6176 [Verbose] > │ let rec method0 () : unit =                                                  │
00:01:26 #6177 [Verbose] > │     let v0 : US0 = US0_1(9)                                                  │
00:01:26 #6178 [Verbose] > │     let v1 : string = $"%A{v0}"                                              │
00:01:26 #6179 [Verbose] > │     System.Console.WriteLine v1                                              │
00:01:26 #6180 [Verbose] > │     let v5 : US0 = US0_1(9)                                                  │
00:01:26 #6181 [Verbose] > │     let v6 : US0 = US0_1(9)                                                  │
00:01:26 #6182 [Verbose] > │     let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}"        │
00:01:26 #6183 [Verbose] > │     ()                                                                       │
00:01:26 #6184 [Verbose] > │ method0()                                                                    │
00:01:26 #6185 [Verbose] > │                                                                              │
00:01:26 #6186 [Verbose] > │ US0_1 9                                                                      │
00:01:26 #6187 [Verbose] > │                                                                              │
00:01:26 #6188 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:26 #6189 [Verbose] >
00:01:26 #6190 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:26 #6191 [Verbose] > // // test
00:01:26 #6192 [Verbose] >
00:01:26 #6193 [Verbose] > listm.init 10i32 id
00:01:26 #6194 [Verbose] > |> try_item 10i32
00:01:26 #6195 [Verbose] > |> _assert_eq None
00:01:26 #6196 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5570-7006-79e90fc2a8bd/main.spi
00:01:26 #6197 [Verbose] >
00:01:26 #6198 [Verbose] > ╭─[ 122.38ms - stdout ]────────────────────────────────────────────────────────╮
00:01:26 #6199 [Verbose] > │ ()                                                                           │
00:01:26 #6200 [Verbose] > │                                                                              │
00:01:26 #6201 [Verbose] > │                                                                              │
00:01:26 #6202 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:26 #6203 [Verbose] >
00:01:26 #6204 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:26 #6205 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:26 #6206 [Verbose] > │ ## format'                                                                   │
00:01:26 #6207 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:26 #6208 [Verbose] >
00:01:26 #6209 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:26 #6210 [Verbose] > inl format' x : std_string =
00:01:26 #6211 [Verbose] >     !\\(x, $'@@$"format\!(""{{}}"", $0)"')
00:01:26 #6212 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5575-7559-7b142a665421/main.spi
00:01:26 #6213 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5582-8252-86f76eb855c2/main.spi
00:01:26 #6214 [Verbose] >
00:01:26 #6215 [Verbose] > ╭─[ 180.97ms - stdout ]────────────────────────────────────────────────────────╮
00:01:26 #6216 [Verbose] > │ type [<Struct>] US0 =                                                        │
00:01:26 #6217 [Verbose] > │     | US0_0                                                                  │
00:01:26 #6218 [Verbose] > │     | US0_1 of f1_0 : int32                                                  │
00:01:26 #6219 [Verbose] > │ let rec method0 () : unit =                                                  │
00:01:26 #6220 [Verbose] > │     let v0 : US0 = US0_0                                                     │
00:01:26 #6221 [Verbose] > │     let v1 : string = $"%A{v0}"                                              │
00:01:26 #6222 [Verbose] > │     System.Console.WriteLine v1                                              │
00:01:26 #6223 [Verbose] > │     let v5 : US0 = US0_0                                                     │
00:01:26 #6224 [Verbose] > │     let v6 : US0 = US0_0                                                     │
00:01:26 #6225 [Verbose] > │     let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}"        │
00:01:26 #6226 [Verbose] > │     ()                                                                       │
00:01:26 #6227 [Verbose] > │ method0()                                                                    │
00:01:26 #6228 [Verbose] > │                                                                              │
00:01:26 #6229 [Verbose] > │ US0_0                                                                        │
00:01:26 #6230 [Verbose] > │                                                                              │
00:01:26 #6231 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:26 #6232 [Verbose] >
00:01:26 #6233 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:26 #6234 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:26 #6235 [Verbose] > │ ## list_item                                                                 │
00:01:26 #6236 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:26 #6237 [Verbose] >
00:01:26 #6238 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:26 #6239 [Verbose] > inl item i =
00:01:26 #6240 [Verbose] >     try_item i >> optionm.value
00:01:26 #6241 [Verbose] >
00:01:26 #6242 [Verbose] > ╭─[ 134.39ms - stdout ]────────────────────────────────────────────────────────╮
00:01:26 #6243 [Verbose] > │ ()                                                                           │
00:01:26 #6244 [Verbose] > │                                                                              │
00:01:26 #6245 [Verbose] > │                                                                              │
00:01:26 #6246 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:26 #6247 [Verbose] >
00:01:26 #6248 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:26 #6249 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:26 #6250 [Verbose] > │ ## format_debug                                                              │
00:01:26 #6251 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:26 #6252 [Verbose] >
00:01:26 #6253 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:26 #6254 [Verbose] > inl format_debug x : string =
00:01:26 #6255 [Verbose] >     $'$"%A{!x}"'
00:01:26 #6256 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5593-9386-988c2b59b478/main.spi
00:01:26 #6257 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5595-9595-92bcdd495886/main.spi
00:01:26 #6258 [Verbose] >
00:01:26 #6259 [Verbose] > ╭─[ 128.19ms - stdout ]────────────────────────────────────────────────────────╮
00:01:26 #6260 [Verbose] > │ ()                                                                           │
00:01:26 #6261 [Verbose] > │                                                                              │
00:01:26 #6262 [Verbose] > │                                                                              │
00:01:26 #6263 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:26 #6264 [Verbose] >
00:01:26 #6265 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:26 #6266 [Verbose] > // // test
00:01:26 #6267 [Verbose] >
00:01:26 #6268 [Verbose] > listm.init 10i32 id
00:01:26 #6269 [Verbose] > |> item 9i32
00:01:26 #6270 [Verbose] > |> _assert_eq 9
00:01:26 #6271 [Verbose] >
00:01:26 #6272 [Verbose] > ╭─[ 120.51ms - stdout ]────────────────────────────────────────────────────────╮
00:01:26 #6273 [Verbose] > │ ()                                                                           │
00:01:26 #6274 [Verbose] > │                                                                              │
00:01:26 #6275 [Verbose] > │                                                                              │
00:01:26 #6276 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:26 #6277 [Verbose] >
00:01:26 #6278 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:26 #6279 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:26 #6280 [Verbose] > │ ## format_debug'                                                             │
00:01:26 #6281 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:26 #6282 [Verbose] >
00:01:26 #6283 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:26 #6284 [Verbose] > inl format_debug' x : std_string =
00:01:26 #6285 [Verbose] >     !\\(x, $'@@$"format\!(""{{:?}}"", $0)"')
00:01:26 #6286 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5606-0674-04429bc8cb9d/main.spi
00:01:26 #6287 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5608-0810-0d8ae55bbaad/main.spi
00:01:27 #6288 [Verbose] >
00:01:27 #6289 [Verbose] > ╭─[ 137.56ms - stdout ]────────────────────────────────────────────────────────╮
00:01:27 #6290 [Verbose] > │ ()                                                                           │
00:01:27 #6291 [Verbose] > │                                                                              │
00:01:27 #6292 [Verbose] > │                                                                              │
00:01:27 #6293 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:27 #6294 [Verbose] >
00:01:27 #6295 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:27 #6296 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:27 #6297 [Verbose] > │ ## format_pretty'                                                            │
00:01:27 #6298 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:27 #6299 [Verbose] >
00:01:27 #6300 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:27 #6301 [Verbose] > inl format_pretty' x : std_string =
00:01:27 #6302 [Verbose] >     !\\(x, $'@@$"format\!(""{{:#?}}"", $0)"')
00:01:27 #6303 [Verbose] >
00:01:27 #6304 [Verbose] > ╭─[ 168.48ms - stdout ]────────────────────────────────────────────────────────╮
00:01:27 #6305 [Verbose] > │ let rec method0 () : unit =                                                  │
00:01:27 #6306 [Verbose] > │     let v0 : string = $"%A{9}"                                               │
00:01:27 #6307 [Verbose] > │     System.Console.WriteLine v0                                              │
00:01:27 #6308 [Verbose] > │     let v1 : string = $"__expect / actual: %A{9} / expected: %A{9}"          │
00:01:27 #6309 [Verbose] > │     ()                                                                       │
00:01:27 #6310 [Verbose] > │ method0()                                                                    │
00:01:27 #6311 [Verbose] > │                                                                              │
00:01:27 #6312 [Verbose] > │ 9                                                                            │
00:01:27 #6313 [Verbose] > │                                                                              │
00:01:27 #6314 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:27 #6315 [Verbose] >
00:01:27 #6316 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:27 #6317 [Verbose] > // // test
00:01:27 #6318 [Verbose] >
00:01:27 #6319 [Verbose] > fun () =>
00:01:27 #6320 [Verbose] >     listm.init 10i32 id
00:01:27 #6321 [Verbose] >     |> item 10i32
00:01:27 #6322 [Verbose] >     |> ignore
00:01:27 #6323 [Verbose] > |> _throws
00:01:27 #6324 [Verbose] > |> optionm.map sm'.format_exception
00:01:27 #6325 [Verbose] > |> _assert_eq (Some "System.Exception: Option does not have a value.")
00:01:27 #6326 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5580-8063-85e02dd5046a/main.spi
00:01:27 #6327 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5621-2193-29c96cae1e8a/main.spi
00:01:27 #6328 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5623-2367-2d587b89f98e/main.spi
00:01:27 #6329 [Verbose] >
00:01:27 #6330 [Verbose] > ╭─[ 146.75ms - stdout ]────────────────────────────────────────────────────────╮
00:01:27 #6331 [Verbose] > │ ()                                                                           │
00:01:27 #6332 [Verbose] > │                                                                              │
00:01:27 #6333 [Verbose] > │                                                                              │
00:01:27 #6334 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:27 #6335 [Verbose] >
00:01:27 #6336 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:27 #6337 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:27 #6338 [Verbose] > │ ## format_exception                                                          │
00:01:27 #6339 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:27 #6340 [Verbose] >
00:01:27 #6341 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:27 #6342 [Verbose] > inl format_exception (ex : exn) : string =
00:01:27 #6343 [Verbose] >     $'$"{!ex.GetType ()}: {!ex.Message}"'
00:01:27 #6344 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5636-3668-3f5fadb58f2c/main.spi
00:01:27 #6345 [Verbose] >
00:01:27 #6346 [Verbose] > ╭─[ 135.45ms - stdout ]────────────────────────────────────────────────────────╮
00:01:27 #6347 [Verbose] > │ ()                                                                           │
00:01:27 #6348 [Verbose] > │                                                                              │
00:01:27 #6349 [Verbose] > │                                                                              │
00:01:27 #6350 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:27 #6351 [Verbose] >
00:01:27 #6352 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:27 #6353 [Verbose] > // // test
00:01:27 #6354 [Verbose] >
00:01:27 #6355 [Verbose] > fun () => failwith "test"
00:01:27 #6356 [Verbose] > |> _throws
00:01:27 #6357 [Verbose] > |> optionm.map sm'.format_exception
00:01:27 #6358 [Verbose] > |> _assert_eq (Some "System.Exception: test")
00:01:27 #6359 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5650-5051-506384e5889d/main.spi
00:01:27 #6360 [Verbose] >
00:01:27 #6361 [Verbose] > ╭─[ 437.67ms - stdout ]────────────────────────────────────────────────────────╮
00:01:27 #6362 [Verbose] > │ type [<Struct>] US0 =                                                        │
00:01:27 #6363 [Verbose] > │     | US0_0                                                                  │
00:01:27 #6364 [Verbose] > │     | US0_1 of f1_0 : exn                                                    │
00:01:27 #6365 [Verbose] > │ and [<Struct>] US1 =                                                         │
00:01:27 #6366 [Verbose] > │     | US1_0                                                                  │
00:01:27 #6367 [Verbose] > │     | US1_1 of f1_0 : string                                                 │
00:01:27 #6368 [Verbose] > │ let rec closure0 () () : unit =                                              │
00:01:27 #6369 [Verbose] > │     let v0 : int32 = failwith<int32> "Option does not have a value."         │
00:01:27 #6370 [Verbose] > │     ()                                                                       │
00:01:27 #6371 [Verbose] > │ and closure1 () (v0 : exn) : US0 =                                           │
00:01:27 #6372 [Verbose] > │     US0_1(v0)                                                                │
00:01:27 #6373 [Verbose] > │ and method1 (v0 : bool) : bool =                                             │
00:01:27 #6374 [Verbose] > │     v0                                                                       │
00:01:27 #6375 [Verbose] > │ and method0 () : unit =                                                      │
00:01:27 #6376 [Verbose] > │     let v0 : (unit -> unit) = closure0()                                     │
00:01:27 #6377 [Verbose] > │     let v1 : US0 = US0_0                                                     │
00:01:27 #6378 [Verbose] > │     let v2 : (exn -> US0) = closure1()                                       │
00:01:27 #6379 [Verbose] > │     let v3 : US0 = try v0 (); v1 with ex -> ex |> v2                         │
00:01:27 #6380 [Verbose] > │     let v9 : US1 =                                                           │
00:01:27 #6381 [Verbose] > │         match v3 with                                                        │
00:01:27 #6382 [Verbose] > │         | US0_0 -> (* None *)                                                │
00:01:27 #6383 [Verbose] > │             US1_0                                                            │
00:01:27 #6384 [Verbose] > │         | US0_1(v4) -> (* Some *)                                            │
00:01:27 #6385 [Verbose] > │             let v5 : string = $"{v4.GetType ()}: {v4.Message}"               │
00:01:27 #6386 [Verbose] > │             US1_1(v5)                                                        │
00:01:27 #6387 [Verbose] > │     let v10 : string = $"%A{v9}"                                             │
00:01:27 #6388 [Verbose] > │     System.Console.WriteLine v10                                             │
00:01:27 #6389 [Verbose] > │     let v15 : bool =                                                         │
00:01:27 #6390 [Verbose] > │         match v9 with                                                        │
00:01:27 #6391 [Verbose] > │         | US1_1(v13) -> (* Some *)                                           │
00:01:27 #6392 [Verbose] > │             let v14 : bool = v13 = "System.Exception: Option does not have a │
00:01:27 #6393 [Verbose] > │ value."                                                                      │
00:01:27 #6394 [Verbose] > │             v14                                                              │
00:01:27 #6395 [Verbose] > │         | _ ->                                                               │
00:01:27 #6396 [Verbose] > │             false                                                            │
00:01:27 #6397 [Verbose] > │     let v17 : bool =                                                         │
00:01:27 #6398 [Verbose] > │         if v15 then                                                          │
00:01:27 #6399 [Verbose] > │             true                                                             │
00:01:27 #6400 [Verbose] > │         else                                                                 │
00:01:27 #6401 [Verbose] > │             method1(v15)                                                     │
00:01:27 #6402 [Verbose] > │     let v18 : string = "System.Exception: Option does not have a value."     │
00:01:27 #6403 [Verbose] > │     let v19 : US1 = US1_1(v18)                                               │
00:01:27 #6404 [Verbose] > │     let v20 : string = $"__expect / actual: %A{v9} / expected: %A{v19}"      │
00:01:27 #6405 [Verbose] > │     let v21 : bool = v17 = false                                             │
00:01:27 #6406 [Verbose] > │     if v21 then                                                              │
00:01:27 #6407 [Verbose] > │         failwith<unit> v20                                                   │
00:01:27 #6408 [Verbose] > │ method0()                                                                    │
00:01:27 #6409 [Verbose] > │                                                                              │
00:01:27 #6410 [Verbose] > │ US1_1 "System.Exception: Option does not have a value."                      │
00:01:27 #6411 [Verbose] > │                                                                              │
00:01:27 #6412 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:27 #6413 [Verbose] >
00:01:27 #6414 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:27 #6415 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:27 #6416 [Verbose] > │ ## try_item_                                                                 │
00:01:27 #6417 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:27 #6418 [Verbose] >
00:01:27 #6419 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:27 #6420 [Verbose] > let rec try_item_ i = function
00:01:27 #6421 [Verbose] >     | Cons (x, _) when i = 0 => Some x
00:01:27 #6422 [Verbose] >     | Cons (_, xs) => try_item_ (i - 1) xs
00:01:27 #6423 [Verbose] >     | Nil => None
00:01:27 #6424 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5668-6832-6af37054f656/main.spi
00:01:27 #6425 [Verbose] >
00:01:27 #6426 [Verbose] > ╭─[ 140.33ms - stdout ]────────────────────────────────────────────────────────╮
00:01:27 #6427 [Verbose] > │ ()                                                                           │
00:01:27 #6428 [Verbose] > │                                                                              │
00:01:27 #6429 [Verbose] > │                                                                              │
00:01:27 #6430 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:27 #6431 [Verbose] >
00:01:27 #6432 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:27 #6433 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:27 #6434 [Verbose] > │ ## item_                                                                     │
00:01:27 #6435 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:27 #6436 [Verbose] >
00:01:27 #6437 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:27 #6438 [Verbose] > inl item_ i =
00:01:27 #6439 [Verbose] >     try_item_ i >> optionm.value
00:01:27 #6440 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5682-8213-8b402ae70795/main.spi
00:01:27 #6441 [Verbose] >
00:01:27 #6442 [Verbose] > ╭─[ 147.15ms - stdout ]────────────────────────────────────────────────────────╮
00:01:27 #6443 [Verbose] > │ ()                                                                           │
00:01:27 #6444 [Verbose] > │                                                                              │
00:01:27 #6445 [Verbose] > │                                                                              │
00:01:27 #6446 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:27 #6447 [Verbose] >
00:01:27 #6448 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:27 #6449 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:27 #6450 [Verbose] > │ ## sum                                                                       │
00:01:27 #6451 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:27 #6452 [Verbose] >
00:01:27 #6453 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:27 #6454 [Verbose] > inl sum list =
00:01:27 #6455 [Verbose] >     list |> listm.fold (+) 0
00:01:27 #6456 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5696-9697-984c46ec8f87/main.spi
00:01:27 #6457 [Verbose] >
00:01:27 #6458 [Verbose] > ╭─[ 129.36ms - stdout ]────────────────────────────────────────────────────────╮
00:01:27 #6459 [Verbose] > │ ()                                                                           │
00:01:27 #6460 [Verbose] > │                                                                              │
00:01:27 #6461 [Verbose] > │                                                                              │
00:01:27 #6462 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:27 #6463 [Verbose] >
00:01:27 #6464 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:27 #6465 [Verbose] > // // test
00:01:27 #6466 [Verbose] >
00:01:27 #6467 [Verbose] > listm.init 10i32 id
00:01:27 #6468 [Verbose] > |> sum
00:01:27 #6469 [Verbose] > |> _assert_eq 45
00:01:27 #6470 [Verbose] >
00:01:27 #6471 [Verbose] > ╭─[ 2.96s - stdout ]───────────────────────────────────────────────────────────╮
00:01:27 #6472 [Verbose] > │ ()                                                                           │
00:01:27 #6473 [Verbose] > │                                                                              │
00:01:27 #6474 [Verbose] > │                                                                              │
00:01:27 #6475 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:28 #6476 [Verbose] >
00:01:28 #6477 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:28 #6478 [Verbose] > inl (/@) x = listm'.(/@) x
00:01:28 #6479 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5710-1001-1527d30ace3a/main.spi
00:01:28 #6480 [Verbose] >
00:01:28 #6481 [Verbose] > ╭─[ 132.34ms - stdout ]────────────────────────────────────────────────────────╮
00:01:28 #6482 [Verbose] > │ let rec method0 () : unit =                                                  │
00:01:28 #6483 [Verbose] > │     let v0 : string = $"%A{45}"                                              │
00:01:28 #6484 [Verbose] > │     System.Console.WriteLine v0                                              │
00:01:28 #6485 [Verbose] > │     let v1 : string = $"__expect / actual: %A{45} / expected: %A{45}"        │
00:01:28 #6486 [Verbose] > │     ()                                                                       │
00:01:28 #6487 [Verbose] > │ method0()                                                                    │
00:01:28 #6488 [Verbose] > │                                                                              │
00:01:28 #6489 [Verbose] > │ 45                                                                           │
00:01:28 #6490 [Verbose] > │                                                                              │
00:01:28 #6491 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:28 #6492 [Verbose] >
00:01:28 #6493 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:28 #6494 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:28 #6495 [Verbose] > │ ## unzip                                                                     │
00:01:28 #6496 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:28 #6497 [Verbose] >
00:01:28 #6498 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:28 #6499 [Verbose] > inl unzip list =
00:01:28 #6500 [Verbose] >     (([[]], [[]]), list)
00:01:28 #6501 [Verbose] >     ||> listm.fold fun (acc_x, acc_y) (x, y) =>
00:01:28 #6502 [Verbose] >         x :: acc_x, y :: acc_y
00:01:28 #6503 [Verbose] >     |> fun x, y =>
00:01:28 #6504 [Verbose] >         x |> listm.rev, y |> listm.rev
00:01:28 #6505 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5716-1614-16cb62e40221/main.spi
00:01:28 #6506 [Verbose] >
00:01:28 #6507 [Verbose] > ╭─[ 161.25ms - stdout ]────────────────────────────────────────────────────────╮
00:01:28 #6508 [Verbose] > │ ()                                                                           │
00:01:28 #6509 [Verbose] > │                                                                              │
00:01:28 #6510 [Verbose] > │                                                                              │
00:01:28 #6511 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:28 #6512 [Verbose] >
00:01:28 #6513 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:28 #6514 [Verbose] > inl gc_collect () =
00:01:28 #6515 [Verbose] >     run_target function
00:01:28 #6516 [Verbose] >         | Fsharp _ => fun () => $"System.GC.Collect ()"
00:01:28 #6517 [Verbose] >         | _ => fun () => ()
00:01:28 #6518 [Verbose] >
00:01:28 #6519 [Verbose] > inl printfn x =
00:01:28 #6520 [Verbose] >     console.write_line x
00:01:28 #6521 [Verbose] >
00:01:28 #6523 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5723-2368-281e3b4032ce/main.spi
00:01:28 #6522 [Verbose] > nominal stopwatch = $"System.Diagnostics.Stopwatch"
00:01:28 #6524 [Verbose] >
00:01:28 #6525 [Verbose] > inl stopwatch () : stopwatch =
00:01:28 #6526 [Verbose] >     $"`stopwatch" ()
00:01:28 #6527 [Verbose] >
00:01:28 #6528 [Verbose] > inl stopwatch_elapsed_milliseconds (stopwatch : stopwatch) : i64 =
00:01:28 #6529 [Verbose] >     $"!stopwatch.ElapsedMilliseconds"
00:01:28 #6530 [Verbose] >
00:01:28 #6531 [Verbose] > inl stopwatch_start (stopwatch : stopwatch) : () =
00:01:28 #6532 [Verbose] >     $"!stopwatch.Start ()"
00:01:28 #6533 [Verbose] >
00:01:28 #6534 [Verbose] > ╭─[ 145.87ms - stdout ]────────────────────────────────────────────────────────╮
00:01:28 #6535 [Verbose] > │ ()                                                                           │
00:01:28 #6536 [Verbose] > │                                                                              │
00:01:28 #6537 [Verbose] > │                                                                              │
00:01:28 #6538 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:28 #6539 [Verbose] >
00:01:28 #6540 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:28 #6541 [Verbose] > // // test
00:01:28 #6542 [Verbose] >
00:01:28 #6543 [Verbose] > listm.init 10i32 id
00:01:28 #6544 [Verbose] > |> listm.map (fun x => x, x)
00:01:28 #6545 [Verbose] > |> unzip
00:01:28 #6546 [Verbose] > |> fun x, y =>
00:01:28 #6547 [Verbose] >     x |> sum
00:01:28 #6548 [Verbose] >     |> _assert_eq 45
00:01:28 #6549 [Verbose] >
00:01:28 #6550 [Verbose] >     y |> sum
00:01:28 #6551 [Verbose] >     |> _assert_eq 45
00:01:28 #6552 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5731-3187-3ba1a566a680/main.spi
00:01:28 #6553 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5738-3818-32a10942c770/main.spi
00:01:28 #6554 [Verbose] >
00:01:28 #6555 [Verbose] > ╭─[ 154.60ms - stdout ]────────────────────────────────────────────────────────╮
00:01:28 #6556 [Verbose] > │ ()                                                                           │
00:01:28 #6557 [Verbose] > │                                                                              │
00:01:28 #6558 [Verbose] > │                                                                              │
00:01:28 #6559 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:28 #6560 [Verbose] >
00:01:28 #6561 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:28 #6562 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:28 #6563 [Verbose] > │ ## test_case_result                                                          │
00:01:28 #6564 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:28 #6565 [Verbose] >
00:01:28 #6566 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:28 #6567 [Verbose] > type test_case_result =
00:01:28 #6568 [Verbose] >     {
00:01:28 #6569 [Verbose] >         Input : string
00:01:28 #6570 [Verbose] >         Expected : string
00:01:28 #6571 [Verbose] >         Result : string
00:01:28 #6572 [Verbose] >         TimeList : a u64 i64
00:01:28 #6573 [Verbose] >     }
00:01:28 #6574 [Verbose] >
00:01:28 #6575 [Verbose] > ╭─[ 145.34ms - stdout ]────────────────────────────────────────────────────────╮
00:01:28 #6576 [Verbose] > │ let rec method0 () : unit =                                                  │
00:01:28 #6577 [Verbose] > │     let v0 : string = $"%A{45}"                                              │
00:01:28 #6578 [Verbose] > │     System.Console.WriteLine v0                                              │
00:01:28 #6579 [Verbose] > │     let v1 : string = $"__expect / actual: %A{45} / expected: %A{45}"        │
00:01:28 #6580 [Verbose] > │     let v2 : string = $"%A{45}"                                              │
00:01:28 #6581 [Verbose] > │     System.Console.WriteLine v2                                              │
00:01:28 #6582 [Verbose] > │     let v3 : string = $"__expect / actual: %A{45} / expected: %A{45}"        │
00:01:28 #6583 [Verbose] > │     ()                                                                       │
00:01:28 #6584 [Verbose] > │ method0()                                                                    │
00:01:28 #6585 [Verbose] > │                                                                              │
00:01:28 #6586 [Verbose] > │ 45                                                                           │
00:01:28 #6587 [Verbose] > │ 45                                                                           │
00:01:28 #6588 [Verbose] > │                                                                              │
00:01:28 #6589 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:28 #6590 [Verbose] >
00:01:28 #6591 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:28 #6592 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:28 #6593 [Verbose] > │ ## try_index_of                                                              │
00:01:28 #6594 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:28 #6595 [Verbose] >
00:01:28 #6596 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:28 #6597 [Verbose] > inl try_index_of item list =
00:01:28 #6598 [Verbose] >     inl rec loop i = function
00:01:28 #6599 [Verbose] >         | [[]] => None
00:01:28 #6600 [Verbose] >         | x :: xs =>
00:01:28 #6601 [Verbose] >             if x = item
00:01:28 #6602 [Verbose] >             then Some i
00:01:28 #6603 [Verbose] >             else loop (i + 1) xs
00:01:28 #6604 [Verbose] >     loop 0 list
00:01:28 #6605 [Verbose] >
00:01:28 #6606 [Verbose] > inl index_of item =
00:01:28 #6607 [Verbose] >     try_index_of item >> optionm.value
00:01:28 #6608 [Verbose] >
00:01:28 #6609 [Verbose] > inl try_index_of_ item list =
00:01:28 #6610 [Verbose] >     let rec loop i = function
00:01:28 #6611 [Verbose] >         | [[]] => None
00:01:28 #6612 [Verbose] >         | x :: xs =>
00:01:28 #6613 [Verbose] >             if x = item
00:01:28 #6614 [Verbose] >             then Some i
00:01:28 #6615 [Verbose] >             else loop (i + 1) xs
00:01:28 #6616 [Verbose] >     loop 0 list
00:01:28 #6617 [Verbose] >
00:01:28 #6618 [Verbose] > inl index_of_ item =
00:01:28 #6619 [Verbose] >     try_index_of_ item >> optionm.value
00:01:28 #6620 [Verbose] >
00:01:28 #6621 [Verbose] > inl try_index_of__ item list =
00:01:28 #6622 [Verbose] >     inl i = mut 0
00:01:28 #6623 [Verbose] >     inl list = mut list
00:01:28 #6624 [Verbose] >     inl result = mut None
00:01:28 #6625 [Verbose] >     let rec loop () =
00:01:28 #6626 [Verbose] >         match *list with
00:01:28 #6627 [Verbose] >         | [[]] => result <- None
00:01:28 #6628 [Verbose] >         | x :: xs =>
00:01:28 #6629 [Verbose] >             if x = item
00:01:28 #6630 [Verbose] >             then result <- Some *i
00:01:28 #6631 [Verbose] >             else
00:01:28 #6632 [Verbose] >                 i <- *i + 1
00:01:28 #6633 [Verbose] >                 list <- xs
00:01:28 #6634 [Verbose] >                 loop ()
00:01:28 #6635 [Verbose] >     loop ()
00:01:28 #6636 [Verbose] >     *result
00:01:28 #6637 [Verbose] >
00:01:28 #6638 [Verbose] > inl index_of__ item =
00:01:28 #6639 [Verbose] >     try_index_of__ item >> optionm.value
00:01:28 #6640 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5747-4736-43fcc4e3a9f3/main.spi
00:01:28 #6641 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5752-5295-5fd98ea9bb33/main.spi
00:01:28 #6642 [Verbose] >
00:01:28 #6643 [Verbose] > ╭─[ 158.56ms - stdout ]────────────────────────────────────────────────────────╮
00:01:28 #6644 [Verbose] > │ ()                                                                           │
00:01:28 #6645 [Verbose] > │                                                                              │
00:01:28 #6646 [Verbose] > │                                                                              │
00:01:28 #6647 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:28 #6648 [Verbose] >
00:01:28 #6649 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:28 #6650 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:28 #6651 [Verbose] > │ ## run                                                                       │
00:01:28 #6652 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:28 #6653 [Verbose] >
00:01:28 #6654 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:28 #6655 [Verbose] > inl run forall input expected.
00:01:28 #6656 [Verbose] >     count
00:01:28 #6657 [Verbose] >     (solutions : list (string * (input -> expected)))
00:01:28 #6658 [Verbose] >     ((input, expected) : (input * expected))
00:01:28 #6659 [Verbose] >     : test_case_result
00:01:28 #6660 [Verbose] >     =
00:01:28 #6661 [Verbose] >     inl input_str = input |> sm'.format_debug
00:01:28 #6662 [Verbose] >
00:01:28 #6663 [Verbose] >     printfn ""
00:01:28 #6664 [Verbose] >     printfn ($"$\"Solution: {!input_str}  \"" : string)
00:01:28 #6665 [Verbose] >
00:01:28 #6666 [Verbose] >     inl performance_invoke (fn : () -> expected) =
00:01:28 #6667 [Verbose] >         gc_collect ()
00:01:28 #6668 [Verbose] >         inl stopwatch = stopwatch ()
00:01:28 #6669 [Verbose] >         stopwatch |> stopwatch_start
00:01:28 #6670 [Verbose] >         inl time1 = stopwatch |> stopwatch_elapsed_milliseconds
00:01:28 #6671 [Verbose] >         inl result : expected =
00:01:28 #6672 [Verbose] >             am'.init_series 0 count 1i32
00:01:28 #6673 [Verbose] >             |> am'.parallel_map fun _n => fn ()
00:01:28 #6674 [Verbose] >             |> am'.last
00:01:28 #6675 [Verbose] >         inl time2 = (stopwatch |> stopwatch_elapsed_milliseconds) - time1
00:01:28 #6676 [Verbose] >         result, time2
00:01:28 #6677 [Verbose] >
00:01:28 #6678 [Verbose] >     inl results_with_time : a u64 _ =
00:01:28 #6679 [Verbose] >         solutions
00:01:28 #6680 [Verbose] >         |> listm'.indexed
00:01:28 #6681 [Verbose] >         |> listm.toArray
00:01:28 #6682 [Verbose] >         |> am.map fun ((i : i32), (test_name, solution)) =>
00:01:28 #6683 [Verbose] >             inl result, time = performance_invoke fun () => solution input
00:01:28 #6684 [Verbose] >             printfn ($"$\"Test case {!i + 1}. {!test_name}. Time: {!time}  \"" :
00:01:28 #6685 [Verbose] > string)
00:01:28 #6686 [Verbose] >             result, time
00:01:28 #6687 [Verbose] >
00:01:28 #6688 [Verbose] >     match results_with_time |> am.map fst with
00:01:28 #6689 [Verbose] >     | array when length array <= 1 => ()
00:01:28 #6690 [Verbose] >     | array when array |> am.forall' ((=) (index array 0)) => ()
00:01:28 #6691 [Verbose] >     | results => failwith ($"$\"Challenge error: {!results}\"" : string)
00:01:28 #6692 [Verbose] >
00:01:28 #6693 [Verbose] >     {
00:01:28 #6694 [Verbose] >         Input = input_str
00:01:28 #6695 [Verbose] >         Expected = expected |> sm'.format_debug
00:01:28 #6696 [Verbose] >         Result = results_with_time |> am.map fst |> fun array => index array 0
00:01:28 #6697 [Verbose] > |> sm'.format_debug
00:01:28 #6698 [Verbose] >         TimeList = results_with_time |> am.map snd
00:01:28 #6699 [Verbose] >     }
00:01:28 #6700 [Verbose] >
00:01:28 #6701 [Verbose] > ╭─[ 129.13ms - stdout ]────────────────────────────────────────────────────────╮
00:01:28 #6702 [Verbose] > │ ()                                                                           │
00:01:28 #6703 [Verbose] > │                                                                              │
00:01:28 #6704 [Verbose] > │                                                                              │
00:01:28 #6705 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:28 #6706 [Verbose] >
00:01:28 #6707 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:28 #6708 [Verbose] > // // test
00:01:28 #6709 [Verbose] >
00:01:28 #6710 [Verbose] > listm.init 10i32 id
00:01:28 #6711 [Verbose] > |> index_of 5i32
00:01:28 #6712 [Verbose] > |> _assert_eq 5i32
00:01:28 #6713 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5763-6349-6a80fcf2f49c/main.spi
00:01:28 #6714 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5766-6603-6e84b927bca3/main.spi
00:01:28 #6715 [Verbose] >
00:01:28 #6716 [Verbose] > ╭─[ 138.09ms - stdout ]────────────────────────────────────────────────────────╮
00:01:28 #6717 [Verbose] > │ ()                                                                           │
00:01:28 #6718 [Verbose] > │                                                                              │
00:01:28 #6719 [Verbose] > │                                                                              │
00:01:28 #6720 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:28 #6721 [Verbose] >
00:01:28 #6722 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:28 #6723 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:28 #6724 [Verbose] > │ ## run_all                                                                   │
00:01:28 #6725 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:28 #6726 [Verbose] >
00:01:28 #6727 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:28 #6728 [Verbose] > inl run_all forall input expected.
00:01:28 #6729 [Verbose] >     test_name
00:01:28 #6730 [Verbose] >     count
00:01:28 #6731 [Verbose] >     (solutions : list (string * (input -> expected)))
00:01:28 #6732 [Verbose] >     test_cases
00:01:28 #6733 [Verbose] >     =
00:01:28 #6734 [Verbose] >     printfn ""
00:01:28 #6735 [Verbose] >     printfn ""
00:01:28 #6736 [Verbose] >     printfn ($"$\"Test: {!test_name}\"" : string)
00:01:28 #6737 [Verbose] >     test_cases
00:01:28 #6738 [Verbose] >     |> listm.toArray
00:01:28 #6739 [Verbose] >     |> am.map (run count solutions)
00:01:28 #6740 [Verbose] >
00:01:28 #6741 [Verbose] > ╭─[ 155.27ms - stdout ]────────────────────────────────────────────────────────╮
00:01:28 #6742 [Verbose] > │ let rec method0 () : unit =                                                  │
00:01:28 #6743 [Verbose] > │     let v0 : string = $"%A{5}"                                               │
00:01:28 #6744 [Verbose] > │     System.Console.WriteLine v0                                              │
00:01:28 #6745 [Verbose] > │     let v1 : string = $"__expect / actual: %A{5} / expected: %A{5}"          │
00:01:28 #6746 [Verbose] > │     ()                                                                       │
00:01:28 #6747 [Verbose] > │ method0()                                                                    │
00:01:28 #6748 [Verbose] > │                                                                              │
00:01:28 #6749 [Verbose] > │ 5                                                                            │
00:01:28 #6750 [Verbose] > │                                                                              │
00:01:28 #6751 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:28 #6752 [Verbose] >
00:01:28 #6753 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:28 #6754 [Verbose] > // // test
00:01:28 #6755 [Verbose] >
00:01:28 #6756 [Verbose] > listm.init 10i32 id
00:01:28 #6757 [Verbose] > |> try_index_of 10i32
00:01:28 #6758 [Verbose] > |> _assert_eq (None : option i32)
00:01:28 #6759 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5777-7745-76c64f8ac5a1/main.spi
00:01:28 #6760 [Verbose] >
00:01:28 #6761 [Verbose] > ╭─[ 116.85ms - stdout ]────────────────────────────────────────────────────────╮
00:01:28 #6762 [Verbose] > │ ()                                                                           │
00:01:28 #6763 [Verbose] > │                                                                              │
00:01:28 #6764 [Verbose] > │                                                                              │
00:01:28 #6765 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:28 #6766 [Verbose] >
00:01:28 #6767 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:28 #6768 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:28 #6769 [Verbose] > │ ## sort_result_list                                                          │
00:01:28 #6770 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:28 #6771 [Verbose] >
00:01:28 #6772 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:28 #6773 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5781-8162-8387bcbc464a/main.spi
00:01:28 #6774 [Verbose] > inl sort_result_list results =
00:01:28 #6775 [Verbose] >     inl table =
00:01:28 #6776 [Verbose] >         inl rows =
00:01:28 #6777 [Verbose] >             results
00:01:28 #6778 [Verbose] >             |> am.map fun (result : test_case_result) =>
00:01:28 #6779 [Verbose] >                 inl best =
00:01:28 #6780 [Verbose] >                     result.TimeList
00:01:28 #6781 [Verbose] >                     |> am'.indexed
00:01:28 #6782 [Verbose] >                     |> am.map fun (i, time) =>
00:01:28 #6783 [Verbose] >                         i + 1i64, time
00:01:28 #6784 [Verbose] >                     |> am'.sort_by snd
00:01:28 #6785 [Verbose] >                     |> fun array => index array 0i32
00:01:28 #6786 [Verbose] >                     |> sm'.format_debug
00:01:28 #6787 [Verbose] >                 inl row =
00:01:28 #6788 [Verbose] >                     [[
00:01:28 #6789 [Verbose] >                         result.Input
00:01:28 #6790 [Verbose] >                         result.Expected
00:01:28 #6791 [Verbose] >                         result.Result
00:01:28 #6792 [Verbose] >                         best
00:01:28 #6793 [Verbose] >                     ]]
00:01:28 #6794 [Verbose] >                 inl color : option console.console_color =
00:01:28 #6795 [Verbose] >                     open console
00:01:28 #6796 [Verbose] >                     match result.Expected = result.Result with
00:01:28 #6797 [Verbose] >                     | true => Some $"`console_color.DarkGreen"
00:01:28 #6798 [Verbose] >                     | false => Some $"`console_color.DarkRed"
00:01:28 #6799 [Verbose] >                 row, color
00:01:28 #6800 [Verbose] >
00:01:28 #6801 [Verbose] >         inl header =
00:01:28 #6802 [Verbose] >             [[
00:01:28 #6803 [Verbose] >                 [[
00:01:28 #6804 [Verbose] >                     "Input"
00:01:28 #6805 [Verbose] >                     "Expected"
00:01:28 #6806 [Verbose] >                     "Result"
00:01:28 #6807 [Verbose] >                     "Best"
00:01:28 #6808 [Verbose] >                 ]]
00:01:28 #6809 [Verbose] >                 [[
00:01:28 #6810 [Verbose] >                     "---"
00:01:28 #6811 [Verbose] >                     "---"
00:01:28 #6812 [Verbose] >                     "---"
00:01:28 #6813 [Verbose] >                     "---"
00:01:28 #6814 [Verbose] >                 ]]
00:01:28 #6815 [Verbose] >             ]]
00:01:28 #6816 [Verbose] >             |> listm.map fun row => row, None
00:01:28 #6817 [Verbose] >             |> listm.toArray
00:01:28 #6818 [Verbose] >         rows |> am.append header
00:01:28 #6819 [Verbose] >
00:01:28 #6820 [Verbose] >     inl formattedTable =
00:01:28 #6821 [Verbose] >         inl lengthMap : mapm.map i32 i64 =
00:01:28 #6822 [Verbose] >             table
00:01:28 #6823 [Verbose] >             |> am.map (fst >> listm.toArray)
00:01:28 #6824 [Verbose] >             |> am'.transpose
00:01:28 #6825 [Verbose] >             |> am.map fun column =>
00:01:28 #6826 [Verbose] >                 column
00:01:28 #6827 [Verbose] >                 |> am.map sm.length
00:01:28 #6828 [Verbose] >                 |> am'.sort_descending
00:01:28 #6829 [Verbose] >                 |> am'.try_item 0i32
00:01:28 #6830 [Verbose] >                 |> optionm'.default_value 0i64
00:01:28 #6831 [Verbose] >             |> am'.indexed
00:01:28 #6832 [Verbose] >             |> fun (x : a i32 _) => x
00:01:28 #6833 [Verbose] >             |> mapm.of_array
00:01:28 #6834 [Verbose] >         table
00:01:28 #6835 [Verbose] >         |> am.map fun (row, color) =>
00:01:28 #6836 [Verbose] >             inl newRow =
00:01:28 #6837 [Verbose] >                 row
00:01:28 #6838 [Verbose] >                 |> listm'.indexed
00:01:28 #6839 [Verbose] >                 |> listm.map fun (i, cell) =>
00:01:28 #6840 [Verbose] >                     cell |> sm'.pad_right (lengthMap |> mapm.item i |> conv)
00:01:28 #6841 [Verbose] >                 |> listm.toArray
00:01:28 #6842 [Verbose] >             newRow, color
00:01:28 #6843 [Verbose] >
00:01:28 #6844 [Verbose] >     printfn ""
00:01:28 #6845 [Verbose] >     formattedTable
00:01:28 #6846 [Verbose] >     |> am.iter fun ((row : a i32 string), color) =>
00:01:28 #6847 [Verbose] >         match color with
00:01:28 #6848 [Verbose] >         | Some color => color |> console.set_foreground_color
00:01:28 #6849 [Verbose] >         | None => console.reset_color ()
00:01:28 #6850 [Verbose] >
00:01:28 #6851 [Verbose] >         printfn (row |> sm'.join' "\t| ")
00:01:28 #6852 [Verbose] >
00:01:28 #6853 [Verbose] >         console.reset_color ()
00:01:28 #6854 [Verbose] >
00:01:28 #6855 [Verbose] >     inl averages : a u64 _ =
00:01:28 #6856 [Verbose] >         results
00:01:28 #6857 [Verbose] >         |> am.map fun result =>
00:01:28 #6858 [Verbose] >             result.TimeList
00:01:28 #6859 [Verbose] >             |> am.map ($"float" : i64 -> f64)
00:01:28 #6860 [Verbose] >         |> am'.transpose
00:01:28 #6861 [Verbose] >         |> am.map am'.average
00:01:28 #6862 [Verbose] >         |> am.map ($"int64" : f64 -> i64)
00:01:28 #6863 [Verbose] >         |> am'.indexed
00:01:28 #6864 [Verbose] >
00:01:28 #6865 [Verbose] >     printfn ""
00:01:28 #6866 [Verbose] >     printfn "Average Ranking  "
00:01:28 #6867 [Verbose] >     averages
00:01:28 #6868 [Verbose] >     |> am'.sort_by snd
00:01:28 #6869 [Verbose] >     |> am.iter fun ((i : i32), avg) =>
00:01:28 #6870 [Verbose] >         printfn ($"$\"Test case %d{!i + 1}. Average Time: %A{!avg}  \"" :
00:01:28 #6871 [Verbose] > string)
00:01:28 #6872 [Verbose] >
00:01:28 #6873 [Verbose] > ╭─[ 1.44s - stdout ]───────────────────────────────────────────────────────────╮
00:01:28 #6874 [Verbose] > │ type [<Struct>] US0 =                                                        │
00:01:28 #6875 [Verbose] > │     | US0_0                                                                  │
00:01:28 #6876 [Verbose] > │     | US0_1 of f1_0 : exn                                                    │
00:01:28 #6877 [Verbose] > │ and [<Struct>] US1 =                                                         │
00:01:28 #6878 [Verbose] > │     | US1_0                                                                  │
00:01:28 #6879 [Verbose] > │     | US1_1 of f1_0 : string                                                 │
00:01:28 #6880 [Verbose] > │ let rec closure0 () () : unit =                                              │
00:01:28 #6881 [Verbose] > │     failwith<unit> "test"                                                    │
00:01:28 #6882 [Verbose] > │ and closure1 () (v0 : exn) : US0 =                                           │
00:01:28 #6883 [Verbose] > │     US0_1(v0)                                                                │
00:01:28 #6884 [Verbose] > │ and method1 (v0 : bool) : bool =                                             │
00:01:28 #6885 [Verbose] > │     v0                                                                       │
00:01:28 #6886 [Verbose] > │ and method0 () : unit =                                                      │
00:01:28 #6887 [Verbose] > │     let v0 : (unit -> unit) = closure0()                                     │
00:01:28 #6888 [Verbose] > │     let v1 : US0 = US0_0                                                     │
00:01:28 #6889 [Verbose] > │     let v2 : (exn -> US0) = closure1()                                       │
00:01:28 #6890 [Verbose] > │     let v3 : US0 = try v0 (); v1 with ex -> ex |> v2                         │
00:01:28 #6891 [Verbose] > │     let v9 : US1 =                                                           │
00:01:28 #6892 [Verbose] > │         match v3 with                                                        │
00:01:28 #6893 [Verbose] > │         | US0_0 -> (* None *)                                                │
00:01:28 #6894 [Verbose] > │             US1_0                                                            │
00:01:28 #6895 [Verbose] > │         | US0_1(v4) -> (* Some *)                                            │
00:01:28 #6896 [Verbose] > │             let v5 : string = $"{v4.GetType ()}: {v4.Message}"               │
00:01:28 #6897 [Verbose] > │             US1_1(v5)                                                        │
00:01:28 #6898 [Verbose] > │     let v10 : string = $"%A{v9}"                                             │
00:01:28 #6899 [Verbose] > │     System.Console.WriteLine v10                                             │
00:01:28 #6900 [Verbose] > │     let v15 : bool =                                                         │
00:01:28 #6901 [Verbose] > │         match v9 with                                                        │
00:01:28 #6902 [Verbose] > │         | US1_1(v13) -> (* Some *)                                           │
00:01:28 #6903 [Verbose] > │             let v14 : bool = v13 = "System.Exception: test"                  │
00:01:28 #6904 [Verbose] > │             v14                                                              │
00:01:28 #6905 [Verbose] > │         | _ ->                                                               │
00:01:28 #6906 [Verbose] > │             false                                                            │
00:01:28 #6907 [Verbose] > │     let v17 : bool =                                                         │
00:01:28 #6908 [Verbose] > │         if v15 then                                                          │
00:01:28 #6909 [Verbose] > │             true                                                             │
00:01:28 #6910 [Verbose] > │         else                                                                 │
00:01:28 #6911 [Verbose] > │             method1(v15)                                                     │
00:01:28 #6912 [Verbose] > │     let v18 : string = "System.Exception: test"                              │
00:01:28 #6913 [Verbose] > │     let v19 : US1 = US1_1(v18)                                               │
00:01:28 #6914 [Verbose] > │     let v20 : string = $"__expect / actual: %A{v9} / expected: %A{v19}"      │
00:01:28 #6915 [Verbose] > │     let v21 : bool = v17 = false                                             │
00:01:28 #6916 [Verbose] > │     if v21 then                                                              │
00:01:28 #6917 [Verbose] > │         failwith<unit> v20                                                   │
00:01:28 #6918 [Verbose] > │ method0()                                                                    │
00:01:28 #6919 [Verbose] > │                                                                              │
00:01:28 #6920 [Verbose] > │ US1_1 "System.Exception: test"                                               │
00:01:28 #6921 [Verbose] > │                                                                              │
00:01:28 #6922 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:28 #6923 [Verbose] >
00:01:28 #6924 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:28 #6925 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:28 #6926 [Verbose] > │ ## format_ellipsis'                                                          │
00:01:28 #6927 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:28 #6928 [Verbose] >
00:01:28 #6929 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:28 #6930 [Verbose] > inl format_ellipsis' s =
00:01:28 #6931 [Verbose] >     s
00:01:28 #6932 [Verbose] >     |> format_debug
00:01:28 #6933 [Verbose] >     |> ellipsis 400i32
00:01:28 #6934 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5789-8915-8921d8d24d3b/main.spi
00:01:28 #6935 [Verbose] >
00:01:28 #6936 [Verbose] > ╭─[ 174.79ms - stdout ]────────────────────────────────────────────────────────╮
00:01:28 #6937 [Verbose] > │ type [<Struct>] US0 =                                                        │
00:01:28 #6938 [Verbose] > │     | US0_0                                                                  │
00:01:28 #6939 [Verbose] > │     | US0_1 of f1_0 : int32                                                  │
00:01:28 #6940 [Verbose] > │ let rec method0 () : unit =                                                  │
00:01:28 #6941 [Verbose] > │     let v0 : US0 = US0_0                                                     │
00:01:28 #6942 [Verbose] > │     let v1 : string = $"%A{v0}"                                              │
00:01:28 #6943 [Verbose] > │     System.Console.WriteLine v1                                              │
00:01:28 #6944 [Verbose] > │     let v5 : US0 = US0_0                                                     │
00:01:28 #6945 [Verbose] > │     let v6 : US0 = US0_0                                                     │
00:01:28 #6946 [Verbose] > │     let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}"        │
00:01:28 #6947 [Verbose] > │     ()                                                                       │
00:01:28 #6948 [Verbose] > │ method0()                                                                    │
00:01:28 #6949 [Verbose] > │                                                                              │
00:01:28 #6950 [Verbose] > │ US0_0                                                                        │
00:01:28 #6951 [Verbose] > │                                                                              │
00:01:28 #6952 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:28 #6953 [Verbose] >
00:01:28 #6954 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:28 #6955 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:28 #6956 [Verbose] > │ ## try_find                                                                  │
00:01:28 #6957 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:28 #6958 [Verbose] >
00:01:28 #6959 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:28 #6960 [Verbose] > inl try_find fn list =
00:01:28 #6961 [Verbose] >     inl rec loop = function
00:01:28 #6962 [Verbose] >         | [[]] => None
00:01:28 #6963 [Verbose] >         | x :: xs =>
00:01:28 #6964 [Verbose] >             if fn x
00:01:28 #6965 [Verbose] >             then Some x
00:01:28 #6966 [Verbose] >             else loop xs
00:01:28 #6967 [Verbose] >     loop list
00:01:28 #6968 [Verbose] >
00:01:28 #6969 [Verbose] > inl try_find_ fn list =
00:01:28 #6970 [Verbose] >     let rec loop = function
00:01:28 #6971 [Verbose] >         | [[]] => None
00:01:28 #6972 [Verbose] >         | x :: xs =>
00:01:28 #6973 [Verbose] >             if fn x
00:01:28 #6974 [Verbose] >             then Some x
00:01:28 #6975 [Verbose] >             else loop xs
00:01:28 #6976 [Verbose] >     loop list
00:01:28 #6977 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5794-9485-9084ae983c5e/main.spi
00:01:28 #6978 [Verbose] >
00:01:28 #6979 [Verbose] > ╭─[ 144.12ms - stdout ]────────────────────────────────────────────────────────╮
00:01:28 #6980 [Verbose] > │ ()                                                                           │
00:01:28 #6981 [Verbose] > │                                                                              │
00:01:28 #6982 [Verbose] > │                                                                              │
00:01:28 #6983 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:28 #6984 [Verbose] >
00:01:28 #6985 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:28 #6986 [Verbose] > // // test
00:01:28 #6987 [Verbose] >
00:01:28 #6988 [Verbose] > inl is_fast () =
00:01:28 #6989 [Verbose] >     false
00:01:28 #6990 [Verbose] >
00:01:28 #6991 [Verbose] > ╭─[ 119.34ms - stdout ]────────────────────────────────────────────────────────╮
00:01:28 #6992 [Verbose] > │ ()                                                                           │
00:01:28 #6993 [Verbose] > │                                                                              │
00:01:28 #6994 [Verbose] > │                                                                              │
00:01:28 #6995 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:28 #6996 [Verbose] >
00:01:28 #6997 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:28 #6998 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:28 #6999 [Verbose] > │ ## obj_to_string                                                             │
00:01:28 #7000 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:28 #7001 [Verbose] >
00:01:28 #7002 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:28 #7003 [Verbose] > inl obj_to_string x : string =
00:01:28 #7004 [Verbose] >     $"!x.ToString ()"
00:01:28 #7005 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5799-9924-92b526155873/main.spi
00:01:28 #7006 [Verbose] >
00:01:28 #7007 [Verbose] > ╭─[ 124.60ms - stdout ]────────────────────────────────────────────────────────╮
00:01:28 #7008 [Verbose] > │ ()                                                                           │
00:01:28 #7009 [Verbose] > │                                                                              │
00:01:28 #7010 [Verbose] > │                                                                              │
00:01:28 #7011 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:28 #7012 [Verbose] >
00:01:28 #7013 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:28 #7014 [Verbose] > // // test
00:01:28 #7015 [Verbose] >
00:01:28 #7016 [Verbose] > listm.init 10i32 id
00:01:28 #7017 [Verbose] > |> try_find ((=) 5i32)
00:01:28 #7018 [Verbose] > |> _assert_eq (Some 5i32)
00:01:28 #7019 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5806-0669-088862f22f2b/main.spi
00:01:29 #7020 [Verbose] >
00:01:29 #7021 [Verbose] > ╭─[ 114.76ms - stdout ]────────────────────────────────────────────────────────╮
00:01:29 #7022 [Verbose] > │ ()                                                                           │
00:01:29 #7023 [Verbose] > │                                                                              │
00:01:29 #7024 [Verbose] > │                                                                              │
00:01:29 #7025 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:29 #7026 [Verbose] >
00:01:29 #7027 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:29 #7028 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:29 #7029 [Verbose] > │ ## to_string any                                                             │
00:01:29 #7030 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:29 #7031 [Verbose] >
00:01:29 #7032 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:29 #7033 [Verbose] > instance to_string any =
00:01:29 #7034 [Verbose] >     obj_to_string
00:01:29 #7035 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5811-1168-1a954461ee98/main.spi
00:01:29 #7036 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5818-1821-11de7dd1accd/main.spi
00:01:29 #7037 [Verbose] >
00:01:29 #7038 [Verbose] > ╭─[ 154.47ms - stdout ]────────────────────────────────────────────────────────╮
00:01:29 #7039 [Verbose] > │ type [<Struct>] US0 =                                                        │
00:01:29 #7040 [Verbose] > │     | US0_0                                                                  │
00:01:29 #7041 [Verbose] > │     | US0_1 of f1_0 : int32                                                  │
00:01:29 #7042 [Verbose] > │ let rec method0 () : unit =                                                  │
00:01:29 #7043 [Verbose] > │     let v0 : US0 = US0_1(5)                                                  │
00:01:29 #7044 [Verbose] > │     let v1 : string = $"%A{v0}"                                              │
00:01:29 #7045 [Verbose] > │     System.Console.WriteLine v1                                              │
00:01:29 #7046 [Verbose] > │     let v5 : US0 = US0_1(5)                                                  │
00:01:29 #7047 [Verbose] > │     let v6 : US0 = US0_1(5)                                                  │
00:01:29 #7048 [Verbose] > │     let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}"        │
00:01:29 #7049 [Verbose] > │     ()                                                                       │
00:01:29 #7050 [Verbose] > │ method0()                                                                    │
00:01:29 #7051 [Verbose] > │                                                                              │
00:01:29 #7052 [Verbose] > │ US0_1 5                                                                      │
00:01:29 #7053 [Verbose] > │                                                                              │
00:01:29 #7054 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:29 #7055 [Verbose] >
00:01:29 #7056 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:29 #7057 [Verbose] > inl find x =
00:01:29 #7058 [Verbose] >     try_find x >> optionm.value
00:01:29 #7059 [Verbose] >
00:01:29 #7060 [Verbose] > inl find_ x =
00:01:29 #7061 [Verbose] >     try_find_ x >> optionm.value
00:01:29 #7062 [Verbose] >
00:01:29 #7063 [Verbose] > ╭─[ 138.51ms - stdout ]────────────────────────────────────────────────────────╮
00:01:29 #7064 [Verbose] > │ ()                                                                           │
00:01:29 #7065 [Verbose] > │                                                                              │
00:01:29 #7066 [Verbose] > │                                                                              │
00:01:29 #7067 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:29 #7068 [Verbose] >
00:01:29 #7069 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:29 #7070 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:29 #7071 [Verbose] > │ ## to_string result t u                                                      │
00:01:29 #7072 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:29 #7073 [Verbose] >
00:01:29 #7074 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:29 #7075 [Verbose] > instance to_string result t u = fun x =>
00:01:29 #7076 [Verbose] >     real
00:01:29 #7077 [Verbose] >         open rust
00:01:29 #7078 [Verbose] >         typecase (t * u) with
00:01:29 #7079 [Verbose] >         | string * string =>
00:01:29 #7080 [Verbose] >             match x with
00:01:29 #7081 [Verbose] >             | Ok x => x
00:01:29 #7082 [Verbose] >             | Error x => $'"Error: " + !x + ""' : string
00:01:29 #7083 [Verbose] >         | std_string * std_string =>
00:01:29 #7084 [Verbose] >             match x with
00:01:29 #7085 [Verbose] >             | Ok x => from_std_string x
00:01:29 #7086 [Verbose] >             | Error x => $'"Error: " + string !x + ""' : string
00:01:29 #7087 [Verbose] >         | _ => obj_to_string `u x
00:01:29 #7088 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5827-2746-216dc98792b2/main.spi
00:01:29 #7089 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5832-3229-3a6841bfcc9a/main.spi
00:01:29 #7090 [Verbose] >
00:01:29 #7091 [Verbose] > ╭─[ 179.53ms - stdout ]────────────────────────────────────────────────────────╮
00:01:29 #7092 [Verbose] > │ ()                                                                           │
00:01:29 #7093 [Verbose] > │                                                                              │
00:01:29 #7094 [Verbose] > │                                                                              │
00:01:29 #7095 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:29 #7096 [Verbose] >
00:01:29 #7097 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:29 #7098 [Verbose] > // // test
00:01:29 #7099 [Verbose] >
00:01:29 #7100 [Verbose] > listm.init 10i32 id
00:01:29 #7101 [Verbose] > |> find ((=) 5i32)
00:01:29 #7102 [Verbose] > |> _assert_eq 5i32
00:01:29 #7103 [Verbose] >
00:01:29 #7104 [Verbose] > ╭─[ 162.69ms - stdout ]────────────────────────────────────────────────────────╮
00:01:29 #7105 [Verbose] > │ ()                                                                           │
00:01:29 #7106 [Verbose] > │                                                                              │
00:01:29 #7107 [Verbose] > │                                                                              │
00:01:29 #7108 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:29 #7109 [Verbose] >
00:01:29 #7110 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:29 #7111 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:29 #7112 [Verbose] > │ ## serialize                                                                 │
00:01:29 #7113 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:29 #7114 [Verbose] >
00:01:29 #7115 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:29 #7116 [Verbose] > inl serialize forall t. (x : t) : resultm.result' std_string json_error =
00:01:29 #7117 [Verbose] >     !\($'"serde_json::to_string(&!x)"')
00:01:29 #7118 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5845-4530-4a9905016f4c/main.spi
00:01:29 #7119 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5803-0342-059ecf1b276e/main.spi
00:01:29 #7120 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5848-4873-42fd692cfb71/main.spi
00:01:29 #7121 [Verbose] >
00:01:29 #7122 [Verbose] > ╭─[ 192.84ms - stdout ]────────────────────────────────────────────────────────╮
00:01:29 #7123 [Verbose] > │ let rec method0 () : unit =                                                  │
00:01:29 #7124 [Verbose] > │     let v0 : string = $"%A{5}"                                               │
00:01:29 #7125 [Verbose] > │     System.Console.WriteLine v0                                              │
00:01:29 #7126 [Verbose] > │     let v1 : string = $"__expect / actual: %A{5} / expected: %A{5}"          │
00:01:29 #7127 [Verbose] > │     ()                                                                       │
00:01:29 #7128 [Verbose] > │ method0()                                                                    │
00:01:29 #7129 [Verbose] > │                                                                              │
00:01:29 #7130 [Verbose] > │ 5                                                                            │
00:01:29 #7131 [Verbose] > │                                                                              │
00:01:29 #7132 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:29 #7133 [Verbose] >
00:01:29 #7134 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:29 #7135 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:29 #7136 [Verbose] > │ ## choose                                                                    │
00:01:29 #7137 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:29 #7138 [Verbose] >
00:01:29 #7139 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:29 #7140 [Verbose] > inl choose f l =
00:01:29 #7141 [Verbose] >     (l, [[]])
00:01:29 #7142 [Verbose] >     ||> listm.foldBack fun x acc =>
00:01:29 #7143 [Verbose] >         match f x with
00:01:29 #7144 [Verbose] >         | Some y => y :: acc
00:01:29 #7145 [Verbose] >         | None => acc
00:01:29 #7146 [Verbose] >
00:01:29 #7147 [Verbose] > ╭─[ 174.63ms - stdout ]────────────────────────────────────────────────────────╮
00:01:29 #7148 [Verbose] > │ ()                                                                           │
00:01:29 #7149 [Verbose] > │                                                                              │
00:01:29 #7150 [Verbose] > │                                                                              │
00:01:29 #7151 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:29 #7152 [Verbose] >
00:01:29 #7153 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:29 #7154 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:29 #7155 [Verbose] > │ ## deserialize                                                               │
00:01:29 #7156 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:29 #7157 [Verbose] >
00:01:29 #7158 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:29 #7159 [Verbose] > inl deserialize forall t. (json : string) : resultm.result' t std_string =
00:01:29 #7160 [Verbose] >     inl json = json |> as_str
00:01:29 #7161 [Verbose] >     !\($'"serde_json::from_str(&!json)"')
00:01:29 #7162 [Verbose] >     |> resultm.map_error' fun (x : json_error) => x |> format'
00:01:29 #7163 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5864-6469-6cbc3454db8d/main.spi
00:01:29 #7164 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5866-6640-60e0649170ca/main.spi
00:01:29 #7165 [Verbose] >
00:01:29 #7166 [Verbose] > ╭─[ 117.98ms - stdout ]────────────────────────────────────────────────────────╮
00:01:29 #7167 [Verbose] > │ ()                                                                           │
00:01:29 #7168 [Verbose] > │                                                                              │
00:01:29 #7169 [Verbose] > │                                                                              │
00:01:29 #7170 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:29 #7171 [Verbose] >
00:01:29 #7172 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:29 #7173 [Verbose] > // // test
00:01:29 #7174 [Verbose] >
00:01:29 #7175 [Verbose] > listm.init 10i32 id
00:01:29 #7176 [Verbose] > |> choose (fun x => if x % 2 = 0 then Some x else None)
00:01:29 #7177 [Verbose] > |> _assert_eq [[ 0; 2; 4; 6; 8 ]]
00:01:29 #7178 [Verbose] >
00:01:29 #7179 [Verbose] > ╭─[ 114.34ms - stdout ]────────────────────────────────────────────────────────╮
00:01:29 #7180 [Verbose] > │ ()                                                                           │
00:01:29 #7181 [Verbose] > │                                                                              │
00:01:29 #7182 [Verbose] > │                                                                              │
00:01:29 #7183 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:29 #7184 [Verbose] >
00:01:29 #7185 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:29 #7186 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:29 #7187 [Verbose] > │ ## borsh_deserialize                                                         │
00:01:29 #7188 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:29 #7189 [Verbose] >
00:01:29 #7190 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:29 #7191 [Verbose] > inl borsh_deserialize forall t. (data : array_base u8) : resultm.result' t
00:01:29 #7192 [Verbose] > std_string =
00:01:29 #7193 [Verbose] >     inl data = data |> am'.as_slice
00:01:29 #7194 [Verbose] >     !\($'"let mut !data = !data"')
00:01:29 #7195 [Verbose] >     inl result = !\($'"borsh::BorshDeserialize::deserialize(&mut !data)"')
00:01:29 #7196 [Verbose] >     result
00:01:29 #7197 [Verbose] >     |> resultm.map_error' fun (x : borsh_io_error) => x |> format'
00:01:29 #7198 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5876-7646-70f1da5925a0/main.spi
00:01:29 #7199 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5877-7798-760e861b2293/main.spi
00:01:29 #7200 [Verbose] >
00:01:29 #7201 [Verbose] > ╭─[ 116.44ms - stdout ]────────────────────────────────────────────────────────╮
00:01:29 #7202 [Verbose] > │ ()                                                                           │
00:01:29 #7203 [Verbose] > │                                                                              │
00:01:29 #7204 [Verbose] > │                                                                              │
00:01:29 #7205 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:29 #7206 [Verbose] >
00:01:29 #7207 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:29 #7208 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:29 #7209 [Verbose] > │ ## deserialize_vec                                                           │
00:01:29 #7210 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:29 #7211 [Verbose] >
00:01:29 #7212 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:29 #7213 [Verbose] > inl deserialize_vec (value : json_value) : resultm.result' (am'.vec u8)
00:01:29 #7214 [Verbose] > std_string =
00:01:29 #7215 [Verbose] >     inl value = join value
00:01:29 #7216 [Verbose] >     !\($'"serde_json::from_value(!value)"')
00:01:29 #7217 [Verbose] >     |> resultm.map_error' fun (x : json_error) => x |> format'
00:01:29 #7218 [Verbose] >
00:01:29 #7219 [Verbose] > ╭─[ 171.73ms - stdout ]────────────────────────────────────────────────────────╮
00:01:29 #7220 [Verbose] > │ type UH0 =                                                                   │
00:01:29 #7221 [Verbose] > │     | UH0_0 of int32 * UH0                                                   │
00:01:29 #7222 [Verbose] > │     | UH0_1                                                                  │
00:01:29 #7223 [Verbose] > │ let rec method0 () : unit =                                                  │
00:01:29 #7224 [Verbose] > │     let v0 : UH0 = UH0_1                                                     │
00:01:29 #7225 [Verbose] > │     let v1 : UH0 = UH0_0(8, v0)                                              │
00:01:29 #7226 [Verbose] > │     let v2 : UH0 = UH0_0(6, v1)                                              │
00:01:29 #7227 [Verbose] > │     let v3 : UH0 = UH0_0(4, v2)                                              │
00:01:29 #7228 [Verbose] > │     let v4 : UH0 = UH0_0(2, v3)                                              │
00:01:29 #7229 [Verbose] > │     let v5 : UH0 = UH0_0(0, v4)                                              │
00:01:29 #7230 [Verbose] > │     let v6 : string = $"%A{v5}"                                              │
00:01:29 #7231 [Verbose] > │     System.Console.WriteLine v6                                              │
00:01:29 #7232 [Verbose] > │     let v40 : UH0 = UH0_1                                                    │
00:01:29 #7233 [Verbose] > │     let v41 : UH0 = UH0_0(8, v40)                                            │
00:01:29 #7234 [Verbose] > │     let v42 : UH0 = UH0_0(6, v41)                                            │
00:01:29 #7235 [Verbose] > │     let v43 : UH0 = UH0_0(4, v42)                                            │
00:01:29 #7236 [Verbose] > │     let v44 : UH0 = UH0_0(2, v43)                                            │
00:01:29 #7237 [Verbose] > │     let v45 : UH0 = UH0_0(0, v44)                                            │
00:01:29 #7238 [Verbose] > │     let v46 : UH0 = UH0_1                                                    │
00:01:29 #7239 [Verbose] > │     let v47 : UH0 = UH0_0(8, v46)                                            │
00:01:29 #7240 [Verbose] > │     let v48 : UH0 = UH0_0(6, v47)                                            │
00:01:29 #7241 [Verbose] > │     let v49 : UH0 = UH0_0(4, v48)                                            │
00:01:29 #7242 [Verbose] > │     let v50 : UH0 = UH0_0(2, v49)                                            │
00:01:29 #7243 [Verbose] > │     let v51 : UH0 = UH0_0(0, v50)                                            │
00:01:29 #7244 [Verbose] > │     let v52 : string = $"__expect / actual: %A{v45} / expected: %A{v51}"     │
00:01:29 #7245 [Verbose] > │     ()                                                                       │
00:01:29 #7246 [Verbose] > │ method0()                                                                    │
00:01:29 #7247 [Verbose] > │                                                                              │
00:01:29 #7248 [Verbose] > │ UH0_0 (0, UH0_0 (2, UH0_0 (4, UH0_0 (6, UH0_0 (8, UH0_1)))))                 │
00:01:29 #7249 [Verbose] > │                                                                              │
00:01:29 #7250 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:29 #7251 [Verbose] >
00:01:29 #7252 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:29 #7253 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:29 #7254 [Verbose] > │ ## zip_with                                                                  │
00:01:29 #7255 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:29 #7256 [Verbose] >
00:01:29 #7257 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:29 #7258 [Verbose] > inl zip_with fn xs ys =
00:01:29 #7259 [Verbose] >     inl rec loop acc xs ys =
00:01:29 #7260 [Verbose] >         match xs, ys with
00:01:29 #7261 [Verbose] >         | Cons (x, xs), Cons (y, ys) =>
00:01:29 #7262 [Verbose] >             loop (fn x y :: acc) xs ys
00:01:29 #7263 [Verbose] >         | _ => listm.rev acc
00:01:29 #7264 [Verbose] >     loop [[]] xs ys
00:01:29 #7265 [Verbose] >
00:01:29 #7266 [Verbose] > inl zip_with_ fn xs ys =
00:01:29 #7267 [Verbose] >     let rec loop acc xs ys =
00:01:29 #7268 [Verbose] >         match xs, ys with
00:01:29 #7269 [Verbose] >         | Cons (x, xs), Cons (y, ys) =>
00:01:29 #7270 [Verbose] >             loop (fn x y :: acc) xs ys
00:01:29 #7271 [Verbose] >         | _ => listm.rev acc
00:01:29 #7272 [Verbose] >     loop [[]] xs ys
00:01:29 #7273 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5890-9000-9ab72b71adc8/main.spi
00:01:29 #7274 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5894-9409-90fb3a7445a9/main.spi
00:01:29 #7275 [Verbose] >
00:01:29 #7276 [Verbose] > ╭─[ 126.37ms - stdout ]────────────────────────────────────────────────────────╮
00:01:29 #7277 [Verbose] > │ ()                                                                           │
00:01:29 #7278 [Verbose] > │                                                                              │
00:01:29 #7279 [Verbose] > │                                                                              │
00:01:29 #7280 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:29 #7281 [Verbose] >
00:01:29 #7282 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:29 #7283 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:29 #7284 [Verbose] > │ ## encode_uri_component                                                      │
00:01:29 #7285 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:29 #7286 [Verbose] >
00:01:29 #7287 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:29 #7288 [Verbose] > inl encode_uri_component (s : std_string) : js_string =
00:01:29 #7289 [Verbose] >     !\($'"js_sys::encode_uri_component(&!s)"')
00:01:29 #7290 [Verbose] >
00:01:29 #7291 [Verbose] > ╭─[ 140.76ms - stdout ]────────────────────────────────────────────────────────╮
00:01:29 #7292 [Verbose] > │ ()                                                                           │
00:01:29 #7293 [Verbose] > │                                                                              │
00:01:29 #7294 [Verbose] > │                                                                              │
00:01:29 #7295 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:29 #7296 [Verbose] >
00:01:29 #7297 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:29 #7298 [Verbose] > // // test
00:01:29 #7299 [Verbose] >
00:01:29 #7300 [Verbose] > ([[ 1i32; 2; 3 ]], [[ 4; 5; 6 ]])
00:01:29 #7301 [Verbose] > ||> zip_with (+)
00:01:29 #7302 [Verbose] > |> _assert_eq [[ 5; 7; 9 ]]
00:01:29 #7303 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5902-0257-0511d56f0ae4/main.spi
00:01:29 #7304 [Verbose] >
00:01:29 #7305 [Verbose] > ╭─[ 124.51ms - stdout ]────────────────────────────────────────────────────────╮
00:01:29 #7306 [Verbose] > │ ()                                                                           │
00:01:29 #7307 [Verbose] > │                                                                              │
00:01:29 #7308 [Verbose] > │                                                                              │
00:01:29 #7309 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:29 #7310 [Verbose] >
00:01:29 #7311 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:29 #7312 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:29 #7313 [Verbose] > │ ## strip_prefix                                                              │
00:01:29 #7314 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:29 #7315 [Verbose] >
00:01:29 #7316 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:29 #7317 [Verbose] > inl strip_prefix (prefix : char) (s : std_string) : optionm'.option' (rust.ref'
00:01:29 #7318 [Verbose] > str) =
00:01:29 #7319 [Verbose] >     inl s = join s
00:01:29 #7320 [Verbose] >     !\($'"!s.strip_prefix(!prefix)"')
00:01:29 #7321 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5908-0830-0d912270af82/main.spi
00:01:30 #7322 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5914-1494-1a8c13330be4/main.spi
00:01:30 #7323 [Verbose] >
00:01:30 #7324 [Verbose] > ╭─[ 179.90ms - stdout ]────────────────────────────────────────────────────────╮
00:01:30 #7325 [Verbose] > │ type UH0 =                                                                   │
00:01:30 #7326 [Verbose] > │     | UH0_0 of int32 * UH0                                                   │
00:01:30 #7327 [Verbose] > │     | UH0_1                                                                  │
00:01:30 #7328 [Verbose] > │ let rec method0 () : unit =                                                  │
00:01:30 #7329 [Verbose] > │     let v0 : UH0 = UH0_1                                                     │
00:01:30 #7330 [Verbose] > │     let v1 : UH0 = UH0_0(9, v0)                                              │
00:01:30 #7331 [Verbose] > │     let v2 : UH0 = UH0_0(7, v1)                                              │
00:01:30 #7332 [Verbose] > │     let v3 : UH0 = UH0_0(5, v2)                                              │
00:01:30 #7333 [Verbose] > │     let v4 : string = $"%A{v3}"                                              │
00:01:30 #7334 [Verbose] > │     System.Console.WriteLine v4                                              │
00:01:30 #7335 [Verbose] > │     let v23 : UH0 = UH0_1                                                    │
00:01:30 #7336 [Verbose] > │     let v24 : UH0 = UH0_0(9, v23)                                            │
00:01:30 #7337 [Verbose] > │     let v25 : UH0 = UH0_0(7, v24)                                            │
00:01:30 #7338 [Verbose] > │     let v26 : UH0 = UH0_0(5, v25)                                            │
00:01:30 #7339 [Verbose] > │     let v27 : UH0 = UH0_1                                                    │
00:01:30 #7340 [Verbose] > │     let v28 : UH0 = UH0_0(9, v27)                                            │
00:01:30 #7341 [Verbose] > │     let v29 : UH0 = UH0_0(7, v28)                                            │
00:01:30 #7342 [Verbose] > │     let v30 : UH0 = UH0_0(5, v29)                                            │
00:01:30 #7343 [Verbose] > │     let v31 : string = $"__expect / actual: %A{v26} / expected: %A{v30}"     │
00:01:30 #7344 [Verbose] > │     ()                                                                       │
00:01:30 #7345 [Verbose] > │ method0()                                                                    │
00:01:30 #7346 [Verbose] > │                                                                              │
00:01:30 #7347 [Verbose] > │ UH0_0 (5, UH0_0 (7, UH0_0 (9, UH0_1)))                                       │
00:01:30 #7348 [Verbose] > │                                                                              │
00:01:30 #7349 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:30 #7350 [Verbose] >
00:01:30 #7351 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:30 #7352 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:30 #7353 [Verbose] > │ ## zip                                                                       │
00:01:30 #7354 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:30 #7355 [Verbose] >
00:01:30 #7356 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:30 #7357 [Verbose] > inl zip xs ys =
00:01:30 #7358 [Verbose] >     zip_with pair xs ys
00:01:30 #7359 [Verbose] >
00:01:30 #7360 [Verbose] > inl zip_ xs ys =
00:01:30 #7361 [Verbose] >     zip_with_ pair xs ys
00:01:30 #7362 [Verbose] >
00:01:30 #7363 [Verbose] > ╭─[ 134.89ms - stdout ]────────────────────────────────────────────────────────╮
00:01:30 #7364 [Verbose] > │ ()                                                                           │
00:01:30 #7365 [Verbose] > │                                                                              │
00:01:30 #7366 [Verbose] > │                                                                              │
00:01:30 #7367 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:30 #7368 [Verbose] >
00:01:30 #7369 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:30 #7370 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:30 #7371 [Verbose] > │ ## base64_decode                                                             │
00:01:30 #7372 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:30 #7373 [Verbose] >
00:01:30 #7374 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:30 #7375 [Verbose] > inl base64_decode (s : std_string) : result std_string std_string =
00:01:30 #7376 [Verbose] >     fun () =>
00:01:30 #7377 [Verbose] >         inl s = join s
00:01:30 #7378 [Verbose] >         inl bytes : resultm.result' (am'.vec u8) base64_decode_error =
00:01:30 #7379 [Verbose] >
00:01:30 #7380 [Verbose] > !\($'"base64::Engine::decode(&base64::engine::general_purpose::STANDARD, !s)"')
00:01:30 #7381 [Verbose] >         inl bytes =
00:01:30 #7382 [Verbose] >             bytes
00:01:30 #7383 [Verbose] >             |> resultm.map_error' format'
00:01:30 #7384 [Verbose] >             |> resultm.try'
00:01:30 #7385 [Verbose] >         inl result : resultm.result' std_string utf8_error =
00:01:30 #7386 [Verbose] >             !\($'"std::str::from_utf8(&!bytes).map(String::from)"')
00:01:30 #7387 [Verbose] >         result
00:01:30 #7388 [Verbose] >         |> resultm.map_error' format'
00:01:30 #7389 [Verbose] >     |> fun x =>
00:01:30 #7390 [Verbose] >         join x ()
00:01:30 #7391 [Verbose] >         |> resultm.unbox
00:01:30 #7392 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5926-2681-26f331a9b217/main.spi
00:01:30 #7393 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5928-2872-2742202fe796/main.spi
00:01:30 #7394 [Verbose] >
00:01:30 #7395 [Verbose] > ╭─[ 118.23ms - stdout ]────────────────────────────────────────────────────────╮
00:01:30 #7396 [Verbose] > │ ()                                                                           │
00:01:30 #7397 [Verbose] > │                                                                              │
00:01:30 #7398 [Verbose] > │                                                                              │
00:01:30 #7399 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:30 #7400 [Verbose] >
00:01:30 #7401 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:30 #7402 [Verbose] > // // test
00:01:30 #7403 [Verbose] >
00:01:30 #7404 [Verbose] > ([[ 1i32; 2; 3 ]], [[ 4i32; 5; 6 ]])
00:01:30 #7405 [Verbose] > ||> zip
00:01:30 #7406 [Verbose] > |> _assert_eq [[ 1, 4; 2, 5; 3, 6 ]]
00:01:30 #7407 [Verbose] >
00:01:30 #7408 [Verbose] > ╭─[ 129.71ms - stdout ]────────────────────────────────────────────────────────╮
00:01:30 #7409 [Verbose] > │ ()                                                                           │
00:01:30 #7410 [Verbose] > │                                                                              │
00:01:30 #7411 [Verbose] > │                                                                              │
00:01:30 #7412 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:30 #7413 [Verbose] >
00:01:30 #7414 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:30 #7415 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:30 #7416 [Verbose] > │ ## concat_array_trailing                                                     │
00:01:30 #7417 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:30 #7418 [Verbose] >
00:01:30 #7419 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:30 #7420 [Verbose] > inl concat_array_trailing separator input =
00:01:30 #7421 [Verbose] >     ("", input)
00:01:30 #7422 [Verbose] >     ||> am.fold fun acc (x : string) =>
00:01:30 #7423 [Verbose] >         $'!acc + !x + !separator + ""'
00:01:30 #7424 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5938-3868-321095906ad4/main.spi
00:01:30 #7425 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5941-4168-4af0a5570b4e/main.spi
00:01:30 #7426 [Verbose] >
00:01:30 #7427 [Verbose] > ╭─[ 135.34ms - stdout ]────────────────────────────────────────────────────────╮
00:01:30 #7428 [Verbose] > │ ()                                                                           │
00:01:30 #7429 [Verbose] > │                                                                              │
00:01:30 #7430 [Verbose] > │                                                                              │
00:01:30 #7431 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:30 #7432 [Verbose] >
00:01:30 #7433 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:30 #7434 [Verbose] > // // test
00:01:30 #7435 [Verbose] > // // rust=
00:01:30 #7436 [Verbose] >
00:01:30 #7437 [Verbose] > ;[[
00:01:30 #7438 [Verbose] >     "1"
00:01:30 #7439 [Verbose] >     "2"
00:01:30 #7440 [Verbose] >     "3"
00:01:30 #7441 [Verbose] > ]]
00:01:30 #7442 [Verbose] > |> fun x =>
00:01:30 #7443 [Verbose] >     inl code = (a x : _ i32 _) |> concat_array_trailing "\n"
00:01:30 #7444 [Verbose] >     code
00:01:30 #7445 [Verbose] >     |> _assert_eq "1\n2\n3\n"
00:01:30 #7446 [Verbose] >
00:01:30 #7447 [Verbose] > ╭─[ 231.28ms - stdout ]────────────────────────────────────────────────────────╮
00:01:30 #7448 [Verbose] > │ type UH0 =                                                                   │
00:01:30 #7449 [Verbose] > │     | UH0_0 of int32 * int32 * UH0                                           │
00:01:30 #7450 [Verbose] > │     | UH0_1                                                                  │
00:01:30 #7451 [Verbose] > │ let rec method0 () : unit =                                                  │
00:01:30 #7452 [Verbose] > │     let v0 : UH0 = UH0_1                                                     │
00:01:30 #7453 [Verbose] > │     let v1 : UH0 = UH0_0(3, 6, v0)                                           │
00:01:30 #7454 [Verbose] > │     let v2 : UH0 = UH0_0(2, 5, v1)                                           │
00:01:30 #7455 [Verbose] > │     let v3 : UH0 = UH0_0(1, 4, v2)                                           │
00:01:30 #7456 [Verbose] > │     let v4 : string = $"%A{v3}"                                              │
00:01:30 #7457 [Verbose] > │     System.Console.WriteLine v4                                              │
00:01:30 #7458 [Verbose] > │     let v23 : UH0 = UH0_1                                                    │
00:01:30 #7459 [Verbose] > │     let v24 : UH0 = UH0_0(3, 6, v23)                                         │
00:01:30 #7460 [Verbose] > │     let v25 : UH0 = UH0_0(2, 5, v24)                                         │
00:01:30 #7461 [Verbose] > │     let v26 : UH0 = UH0_0(1, 4, v25)                                         │
00:01:30 #7462 [Verbose] > │     let v27 : UH0 = UH0_1                                                    │
00:01:30 #7463 [Verbose] > │     let v28 : UH0 = UH0_0(3, 6, v27)                                         │
00:01:30 #7464 [Verbose] > │     let v29 : UH0 = UH0_0(2, 5, v28)                                         │
00:01:30 #7465 [Verbose] > │     let v30 : UH0 = UH0_0(1, 4, v29)                                         │
00:01:30 #7466 [Verbose] > │     let v31 : string = $"__expect / actual: %A{v26} / expected: %A{v30}"     │
00:01:30 #7467 [Verbose] > │     ()                                                                       │
00:01:30 #7468 [Verbose] > │ method0()                                                                    │
00:01:30 #7469 [Verbose] > │                                                                              │
00:01:30 #7470 [Verbose] > │ UH0_0 (1, 4, UH0_0 (2, 5, UH0_0 (3, 6, UH0_1)))                              │
00:01:30 #7471 [Verbose] > │                                                                              │
00:01:30 #7472 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:30 #7473 [Verbose] >
00:01:30 #7474 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:30 #7475 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:30 #7476 [Verbose] > │ ## indexed                                                                   │
00:01:30 #7477 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:30 #7478 [Verbose] >
00:01:30 #7479 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:30 #7480 [Verbose] > inl indexed list =
00:01:30 #7481 [Verbose] >     (([[]], 0), list)
00:01:30 #7482 [Verbose] >     ||> listm.fold fun (acc, i) x =>
00:01:30 #7483 [Verbose] >         (i, x) :: acc, i + 1
00:01:30 #7484 [Verbose] >     |> fst
00:01:30 #7485 [Verbose] >     |> listm.rev
00:01:30 #7486 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5955-5539-540226aa8f5d/main.spi
00:01:30 #7487 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5962-6207-689716bc462d/main.spi
00:01:30 #7488 [Verbose] >
00:01:30 #7489 [Verbose] > ╭─[ 138.24ms - stdout ]────────────────────────────────────────────────────────╮
00:01:30 #7490 [Verbose] > │ ()                                                                           │
00:01:30 #7491 [Verbose] > │                                                                              │
00:01:30 #7492 [Verbose] > │                                                                              │
00:01:30 #7493 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:30 #7494 [Verbose] >
00:01:30 #7495 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:30 #7496 [Verbose] > // // test
00:01:30 #7497 [Verbose] >
00:01:30 #7498 [Verbose] > listm.init 5i32 ((*) 2)
00:01:30 #7499 [Verbose] > |> indexed
00:01:30 #7500 [Verbose] > |> _assert_eq [[ 0i32, 0; 1, 2; 2, 4; 3, 6; 4, 8 ]]
00:01:30 #7501 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5975-7579-7fe311ab4c94/main.spi
00:01:30 #7502 [Verbose] >
00:01:30 #7503 [Verbose] > ╭─[ 193.47ms - stdout ]────────────────────────────────────────────────────────╮
00:01:30 #7504 [Verbose] > │ type UH0 =                                                                   │
00:01:30 #7505 [Verbose] > │     | UH0_0 of int32 * int32 * UH0                                           │
00:01:30 #7506 [Verbose] > │     | UH0_1                                                                  │
00:01:30 #7507 [Verbose] > │ let rec method0 () : unit =                                                  │
00:01:30 #7508 [Verbose] > │     let v0 : UH0 = UH0_1                                                     │
00:01:30 #7509 [Verbose] > │     let v1 : UH0 = UH0_0(4, 8, v0)                                           │
00:01:30 #7510 [Verbose] > │     let v2 : UH0 = UH0_0(3, 6, v1)                                           │
00:01:30 #7511 [Verbose] > │     let v3 : UH0 = UH0_0(2, 4, v2)                                           │
00:01:30 #7512 [Verbose] > │     let v4 : UH0 = UH0_0(1, 2, v3)                                           │
00:01:30 #7513 [Verbose] > │     let v5 : UH0 = UH0_0(0, 0, v4)                                           │
00:01:30 #7514 [Verbose] > │     let v6 : string = $"%A{v5}"                                              │
00:01:30 #7515 [Verbose] > │     System.Console.WriteLine v6                                              │
00:01:30 #7516 [Verbose] > │     let v40 : UH0 = UH0_1                                                    │
00:01:30 #7517 [Verbose] > │     let v41 : UH0 = UH0_0(4, 8, v40)                                         │
00:01:30 #7518 [Verbose] > │     let v42 : UH0 = UH0_0(3, 6, v41)                                         │
00:01:30 #7519 [Verbose] > │     let v43 : UH0 = UH0_0(2, 4, v42)                                         │
00:01:30 #7520 [Verbose] > │     let v44 : UH0 = UH0_0(1, 2, v43)                                         │
00:01:30 #7521 [Verbose] > │     let v45 : UH0 = UH0_0(0, 0, v44)                                         │
00:01:30 #7522 [Verbose] > │     let v46 : UH0 = UH0_1                                                    │
00:01:30 #7523 [Verbose] > │     let v47 : UH0 = UH0_0(4, 8, v46)                                         │
00:01:30 #7524 [Verbose] > │     let v48 : UH0 = UH0_0(3, 6, v47)                                         │
00:01:30 #7525 [Verbose] > │     let v49 : UH0 = UH0_0(2, 4, v48)                                         │
00:01:30 #7526 [Verbose] > │     let v50 : UH0 = UH0_0(1, 2, v49)                                         │
00:01:30 #7527 [Verbose] > │     let v51 : UH0 = UH0_0(0, 0, v50)                                         │
00:01:30 #7528 [Verbose] > │     let v52 : string = $"__expect / actual: %A{v45} / expected: %A{v51}"     │
00:01:30 #7529 [Verbose] > │     ()                                                                       │
00:01:30 #7530 [Verbose] > │ method0()                                                                    │
00:01:30 #7531 [Verbose] > │                                                                              │
00:01:30 #7532 [Verbose] > │ UH0_0 (0, 0, UH0_0 (1, 2, UH0_0 (2, 4, UH0_0 (3, 6, UH0_0 (4, 8, UH0_1)))))  │
00:01:30 #7533 [Verbose] > │                                                                              │
00:01:30 #7534 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:30 #7535 [Verbose] >
00:01:30 #7536 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:30 #7537 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:30 #7538 [Verbose] > │ ## group_by                                                                  │
00:01:30 #7539 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:30 #7540 [Verbose] >
00:01:30 #7541 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:30 #7542 [Verbose] > inl group_by fn list =
00:01:30 #7543 [Verbose] >     (list, [[]])
00:01:30 #7544 [Verbose] >     ||> listm.foldBack fun x acc =>
00:01:30 #7545 [Verbose] >         inl xk = fn x
00:01:30 #7546 [Verbose] >         inl found, new_acc =
00:01:30 #7547 [Verbose] >             ((false, [[]]), acc)
00:01:30 #7548 [Verbose] >             ||> listm.fold fun (found, acc') (k, xs) =>
00:01:30 #7549 [Verbose] >                 if k = xk
00:01:30 #7550 [Verbose] >                 then true, (k, x :: xs) :: acc'
00:01:30 #7551 [Verbose] >                 else found, (k, xs) :: acc'
00:01:30 #7552 [Verbose] >         if found
00:01:30 #7553 [Verbose] >         then new_acc
00:01:30 #7554 [Verbose] >         else (xk, [[ x ]]) :: new_acc
00:01:30 #7555 [Verbose] > Building /tmp/dotnet-repl/20240329-2207-5995-9554-97651f7eb5f8/main.spi
00:01:30 #7556 [Verbose] >
00:01:30 #7557 [Verbose] > ╭─[ 177.24ms - stdout ]────────────────────────────────────────────────────────╮
00:01:30 #7558 [Verbose] > │ ()                                                                           │
00:01:30 #7559 [Verbose] > │                                                                              │
00:01:30 #7560 [Verbose] > │                                                                              │
00:01:30 #7561 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:30 #7562 [Verbose] >
00:01:30 #7563 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:30 #7564 [Verbose] > // // test
00:01:30 #7565 [Verbose] >
00:01:30 #7566 [Verbose] > listm.init 10i32 id
00:01:30 #7567 [Verbose] > |> group_by (fun x => x % 2 = 0)
00:01:30 #7568 [Verbose] > |> _assert_eq [[ true, [[ 0; 2; 4; 6; 8 ]]; false, [[ 1; 3; 5; 7; 9 ]] ]]
00:01:31 #7569 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-0013-1322-16348a5df174/main.spi
00:01:31 #7570 [Verbose] >
00:01:31 #7571 [Verbose] > ╭─[ 302.59ms - stdout ]────────────────────────────────────────────────────────╮
00:01:31 #7572 [Verbose] > │ type UH0 =                                                                   │
00:01:31 #7573 [Verbose] > │     | UH0_0 of int32 * UH0                                                   │
00:01:31 #7574 [Verbose] > │     | UH0_1                                                                  │
00:01:31 #7575 [Verbose] > │ and UH1 =                                                                    │
00:01:31 #7576 [Verbose] > │     | UH1_0 of bool * UH0 * UH1                                              │
00:01:31 #7577 [Verbose] > │     | UH1_1                                                                  │
00:01:31 #7578 [Verbose] > │ let rec method0 () : unit =                                                  │
00:01:31 #7579 [Verbose] > │     let v0 : UH0 = UH0_1                                                     │
00:01:31 #7580 [Verbose] > │     let v1 : UH0 = UH0_0(8, v0)                                              │
00:01:31 #7581 [Verbose] > │     let v2 : UH0 = UH0_0(6, v1)                                              │
00:01:31 #7582 [Verbose] > │     let v3 : UH0 = UH0_0(4, v2)                                              │
00:01:31 #7583 [Verbose] > │     let v4 : UH0 = UH0_0(2, v3)                                              │
00:01:31 #7584 [Verbose] > │     let v5 : UH0 = UH0_0(0, v4)                                              │
00:01:31 #7585 [Verbose] > │     let v6 : UH0 = UH0_1                                                     │
00:01:31 #7586 [Verbose] > │     let v7 : UH0 = UH0_0(9, v6)                                              │
00:01:31 #7587 [Verbose] > │     let v8 : UH0 = UH0_0(7, v7)                                              │
00:01:31 #7588 [Verbose] > │     let v9 : UH0 = UH0_0(5, v8)                                              │
00:01:31 #7589 [Verbose] > │     let v10 : UH0 = UH0_0(3, v9)                                             │
00:01:31 #7590 [Verbose] > │     let v11 : UH0 = UH0_0(1, v10)                                            │
00:01:31 #7591 [Verbose] > │     let v12 : UH1 = UH1_1                                                    │
00:01:31 #7592 [Verbose] > │     let v13 : UH1 = UH1_0(false, v11, v12)                                   │
00:01:31 #7593 [Verbose] > │     let v14 : UH1 = UH1_0(true, v5, v13)                                     │
00:01:31 #7594 [Verbose] > │     let v15 : string = $"%A{v14}"                                            │
00:01:31 #7595 [Verbose] > │     System.Console.WriteLine v15                                             │
00:01:31 #7596 [Verbose] > │     let v112 : UH0 = UH0_1                                                   │
00:01:31 #7597 [Verbose] > │     let v113 : UH0 = UH0_0(8, v112)                                          │
00:01:31 #7598 [Verbose] > │     let v114 : UH0 = UH0_0(6, v113)                                          │
00:01:31 #7599 [Verbose] > │     let v115 : UH0 = UH0_0(4, v114)                                          │
00:01:31 #7600 [Verbose] > │     let v116 : UH0 = UH0_0(2, v115)                                          │
00:01:31 #7601 [Verbose] > │     let v117 : UH0 = UH0_0(0, v116)                                          │
00:01:31 #7602 [Verbose] > │     let v118 : UH0 = UH0_1                                                   │
00:01:31 #7603 [Verbose] > │     let v119 : UH0 = UH0_0(9, v118)                                          │
00:01:31 #7604 [Verbose] > │     let v120 : UH0 = UH0_0(7, v119)                                          │
00:01:31 #7605 [Verbose] > │     let v121 : UH0 = UH0_0(5, v120)                                          │
00:01:31 #7606 [Verbose] > │     let v122 : UH0 = UH0_0(3, v121)                                          │
00:01:31 #7607 [Verbose] > │     let v123 : UH0 = UH0_0(1, v122)                                          │
00:01:31 #7608 [Verbose] > │     let v124 : UH1 = UH1_1                                                   │
00:01:31 #7609 [Verbose] > │     let v125 : UH1 = UH1_0(false, v123, v124)                                │
00:01:31 #7610 [Verbose] > │     let v126 : UH1 = UH1_0(true, v117, v125)                                 │
00:01:31 #7611 [Verbose] > │     let v127 : UH0 = UH0_1                                                   │
00:01:31 #7612 [Verbose] > │     let v128 : UH0 = UH0_0(8, v127)                                          │
00:01:31 #7613 [Verbose] > │     let v129 : UH0 = UH0_0(6, v128)                                          │
00:01:31 #7614 [Verbose] > │     let v130 : UH0 = UH0_0(4, v129)                                          │
00:01:31 #7615 [Verbose] > │     let v131 : UH0 = UH0_0(2, v130)                                          │
00:01:31 #7616 [Verbose] > │     let v132 : UH0 = UH0_0(0, v131)                                          │
00:01:31 #7617 [Verbose] > │     let v133 : UH0 = UH0_1                                                   │
00:01:31 #7618 [Verbose] > │     let v134 : UH0 = UH0_0(9, v133)                                          │
00:01:31 #7619 [Verbose] > │     let v135 : UH0 = UH0_0(7, v134)                                          │
00:01:31 #7620 [Verbose] > │     let v136 : UH0 = UH0_0(5, v135)                                          │
00:01:31 #7621 [Verbose] > │     let v137 : UH0 = UH0_0(3, v136)                                          │
00:01:31 #7622 [Verbose] > │     let v138 : UH0 = UH0_0(1, v137)                                          │
00:01:31 #7623 [Verbose] > │     let v139 : UH1 = UH1_1                                                   │
00:01:31 #7624 [Verbose] > │     let v140 : UH1 = UH1_0(false, v138, v139)                                │
00:01:31 #7625 [Verbose] > │     let v141 : UH1 = UH1_0(true, v132, v140)                                 │
00:01:31 #7626 [Verbose] > │     let v142 : string = $"__expect / actual: %A{v126} / expected: %A{v141}"  │
00:01:31 #7627 [Verbose] > │     ()                                                                       │
00:01:31 #7628 [Verbose] > │ method0()                                                                    │
00:01:31 #7629 [Verbose] > │                                                                              │
00:01:31 #7630 [Verbose] > │ UH1_0                                                                        │
00:01:31 #7631 [Verbose] > │   (true, UH0_0 (0, UH0_0 (2, UH0_0 (4, UH0_0 (6, UH0_0 (8, UH0_1))))),       │
00:01:31 #7632 [Verbose] > │    UH1_0                                                                     │
00:01:31 #7633 [Verbose] > │      (false, UH0_0 (1, UH0_0 (3, UH0_0 (5, UH0_0 (7, UH0_0 (9, UH0_1))))),   │
00:01:31 #7634 [Verbose] > │ UH1_1))                                                                      │
00:01:31 #7635 [Verbose] > │                                                                              │
00:01:31 #7636 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:31 #7637 [Verbose] >
00:01:31 #7638 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:31 #7639 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:31 #7640 [Verbose] > │ ## forall'                                                                   │
00:01:31 #7641 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:31 #7642 [Verbose] >
00:01:31 #7643 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:31 #7644 [Verbose] > inl forall' fn (head :: tail) =
00:01:31 #7645 [Verbose] >     (true, tail)
00:01:31 #7646 [Verbose] >     ||> listm.fold fun acc x =>
00:01:31 #7647 [Verbose] >         acc && x = head
00:01:31 #7648 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-0043-4376-4564c9f85942/main.spi
00:01:31 #7649 [Verbose] >
00:01:31 #7650 [Verbose] > ╭─[ 203.50ms - stdout ]────────────────────────────────────────────────────────╮
00:01:31 #7651 [Verbose] > │ ()                                                                           │
00:01:31 #7652 [Verbose] > │                                                                              │
00:01:31 #7653 [Verbose] > │                                                                              │
00:01:31 #7654 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:31 #7655 [Verbose] >
00:01:31 #7656 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:31 #7657 [Verbose] > // // test
00:01:31 #7658 [Verbose] >
00:01:31 #7659 [Verbose] > [[ 1i32; 1; 1; 1; 1 ]]
00:01:31 #7660 [Verbose] > |> forall' ((=) 1i32)
00:01:31 #7661 [Verbose] > |> _assert_eq true
00:01:31 #7662 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-0064-6424-600dfdbd3011/main.spi
00:01:31 #7663 [Verbose] >
00:01:31 #7664 [Verbose] > ╭─[ 200.51ms - stdout ]────────────────────────────────────────────────────────╮
00:01:31 #7665 [Verbose] > │ let rec method0 () : unit =                                                  │
00:01:31 #7666 [Verbose] > │     let v0 : string = $"%A{true}"                                            │
00:01:31 #7667 [Verbose] > │     System.Console.WriteLine v0                                              │
00:01:31 #7668 [Verbose] > │     let v1 : string = $"__expect / actual: %A{true} / expected: %A{true}"    │
00:01:31 #7669 [Verbose] > │     ()                                                                       │
00:01:31 #7670 [Verbose] > │ method0()                                                                    │
00:01:31 #7671 [Verbose] > │                                                                              │
00:01:31 #7672 [Verbose] > │ true                                                                         │
00:01:31 #7673 [Verbose] > │                                                                              │
00:01:31 #7674 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:31 #7675 [Verbose] >
00:01:31 #7676 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:31 #7677 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:31 #7678 [Verbose] > │ ## last                                                                      │
00:01:31 #7679 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:31 #7680 [Verbose] >
00:01:31 #7681 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:31 #7682 [Verbose] > inl last list =
00:01:31 #7683 [Verbose] >     list
00:01:31 #7684 [Verbose] >     |> listm.rev
00:01:31 #7685 [Verbose] >     |> item 0i32
00:01:31 #7686 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-0084-8449-817e912bf604/main.spi
00:01:31 #7687 [Verbose] >
00:01:31 #7688 [Verbose] > ╭─[ 209.86ms - stdout ]────────────────────────────────────────────────────────╮
00:01:31 #7689 [Verbose] > │ ()                                                                           │
00:01:31 #7690 [Verbose] > │                                                                              │
00:01:31 #7691 [Verbose] > │                                                                              │
00:01:31 #7692 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:31 #7693 [Verbose] >
00:01:31 #7694 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:31 #7695 [Verbose] > // // test
00:01:31 #7696 [Verbose] >
00:01:31 #7697 [Verbose] > listm.init 10i32 id
00:01:31 #7698 [Verbose] > |> last
00:01:31 #7699 [Verbose] > |> _assert_eq 9
00:01:32 #7700 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-0105-0544-02bb76baf5ee/main.spi
00:01:32 #7701 [Verbose] >
00:01:32 #7702 [Verbose] > ╭─[ 202.72ms - stdout ]────────────────────────────────────────────────────────╮
00:01:32 #7703 [Verbose] > │ let rec method0 () : unit =                                                  │
00:01:32 #7704 [Verbose] > │     let v0 : string = $"%A{9}"                                               │
00:01:32 #7705 [Verbose] > │     System.Console.WriteLine v0                                              │
00:01:32 #7706 [Verbose] > │     let v1 : string = $"__expect / actual: %A{9} / expected: %A{9}"          │
00:01:32 #7707 [Verbose] > │     ()                                                                       │
00:01:32 #7708 [Verbose] > │ method0()                                                                    │
00:01:32 #7709 [Verbose] > │                                                                              │
00:01:32 #7710 [Verbose] > │ 9                                                                            │
00:01:32 #7711 [Verbose] > │                                                                              │
00:01:32 #7712 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:32 #7713 [Verbose] >
00:01:32 #7714 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:32 #7715 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:32 #7716 [Verbose] > │ ## try_pick                                                                  │
00:01:32 #7717 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:32 #7718 [Verbose] >
00:01:32 #7719 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:32 #7720 [Verbose] > inl try_pick fn list =
00:01:32 #7721 [Verbose] >     inl rec body fn = function
00:01:32 #7722 [Verbose] >         | [[]] => None
00:01:32 #7723 [Verbose] >         | x :: xs =>
00:01:32 #7724 [Verbose] >             match fn x with
00:01:32 #7725 [Verbose] >             | Some y => Some y
00:01:32 #7726 [Verbose] >             | None => loop xs
00:01:32 #7727 [Verbose] >     and inl loop list =
00:01:32 #7728 [Verbose] >         if var_is list |> not
00:01:32 #7729 [Verbose] >         then body fn list
00:01:32 #7730 [Verbose] >         else
00:01:32 #7731 [Verbose] >             inl fn = join fn
00:01:32 #7732 [Verbose] >             inl list = dyn list
00:01:32 #7733 [Verbose] >             join body fn list
00:01:32 #7734 [Verbose] >     loop list
00:01:32 #7735 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-0126-2602-2c39c9feb93f/main.spi
00:01:32 #7736 [Verbose] >
00:01:32 #7737 [Verbose] > ╭─[ 192.06ms - stdout ]────────────────────────────────────────────────────────╮
00:01:32 #7738 [Verbose] > │ ()                                                                           │
00:01:32 #7739 [Verbose] > │                                                                              │
00:01:32 #7740 [Verbose] > │                                                                              │
00:01:32 #7741 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:32 #7742 [Verbose] >
00:01:32 #7743 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:32 #7744 [Verbose] > // // test
00:01:32 #7745 [Verbose] >
00:01:32 #7746 [Verbose] > listm.init 10i32 id
00:01:32 #7747 [Verbose] > |> try_pick (fun x => if x = 5i32 then Some x else None)
00:01:32 #7748 [Verbose] > |> _assert_eq (Some 5i32)
00:01:32 #7749 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-0145-4513-491247c465e6/main.spi
00:01:32 #7750 [Verbose] >
00:01:32 #7751 [Verbose] > ╭─[ 275.58ms - stdout ]────────────────────────────────────────────────────────╮
00:01:32 #7752 [Verbose] > │ type [<Struct>] US0 =                                                        │
00:01:32 #7753 [Verbose] > │     | US0_0                                                                  │
00:01:32 #7754 [Verbose] > │     | US0_1 of f1_0 : int32                                                  │
00:01:32 #7755 [Verbose] > │ let rec method0 () : unit =                                                  │
00:01:32 #7756 [Verbose] > │     let v0 : US0 = US0_1(5)                                                  │
00:01:32 #7757 [Verbose] > │     let v1 : string = $"%A{v0}"                                              │
00:01:32 #7758 [Verbose] > │     System.Console.WriteLine v1                                              │
00:01:32 #7759 [Verbose] > │     let v5 : US0 = US0_1(5)                                                  │
00:01:32 #7760 [Verbose] > │     let v6 : US0 = US0_1(5)                                                  │
00:01:32 #7761 [Verbose] > │     let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}"        │
00:01:32 #7762 [Verbose] > │     ()                                                                       │
00:01:32 #7763 [Verbose] > │ method0()                                                                    │
00:01:32 #7764 [Verbose] > │                                                                              │
00:01:32 #7765 [Verbose] > │ US0_1 5                                                                      │
00:01:32 #7766 [Verbose] > │                                                                              │
00:01:32 #7767 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:33 #7768 [Verbose] > [NbConvertApp] Converting notebook listm'.dib.ipynb to html
00:01:33 #7769 [Verbose] > /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:01:33 #7770 [Verbose] >   validate(nb)
00:01:34 #7771 [Verbose] > /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:01:34 #7772 [Verbose] >   return _pygments_highlight(
00:01:34 #7773 [Verbose] >
00:01:34 #7774 [Verbose] > ╭─[ 4.43s - return value ]─────────────────────────────────────────────────────╮
00:01:34 #7775 [Verbose] > │ .rs output:                                                                  │
00:01:34 #7776 [Verbose] > │ "1                                                                           │
00:01:34 #7777 [Verbose] > │ 2                                                                            │
00:01:34 #7778 [Verbose] > │ 3                                                                            │
00:01:34 #7779 [Verbose] > │ "                                                                            │
00:01:34 #7780 [Verbose] > │                                                                              │
00:01:34 #7781 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:34 #7782 [Verbose] >
00:01:34 #7783 [Verbose] > ╭─[ 4.44s - stdout ]───────────────────────────────────────────────────────────╮
00:01:34 #7784 [Verbose] > │                                                                              │
00:01:34 #7785 [Verbose] > │ .fsx:                                                                        │
00:01:34 #7786 [Verbose] > │ type Mut0 = {mutable l0 : int32; mutable l1 : string}                        │
00:01:34 #7787 [Verbose] > │ let rec method1 (v0 : (string [])) : (string []) =                           │
00:01:34 #7788 [Verbose] > │     v0                                                                       │
00:01:34 #7789 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool =                                 │
00:01:34 #7790 [Verbose] > │     let v2 : int32 = v1.l0                                                   │
00:01:34 #7791 [Verbose] > │     let v3 : bool = v2 < v0                                                  │
00:01:34 #7792 [Verbose] > │     v3                                                                       │
00:01:34 #7793 [Verbose] > │ and method3 (v0 : bool) : bool =                                             │
00:01:34 #7794 [Verbose] > │     v0                                                                       │
00:01:34 #7795 [Verbose] > │ and method0 () : unit =                                                      │
00:01:34 #7796 [Verbose] > │     let v0 : string = "1"                                                    │
00:01:34 #7797 [Verbose] > │     let v1 : string = "2"                                                    │
00:01:34 #7798 [Verbose] > │     let v2 : string = "3"                                                    │
00:01:34 #7799 [Verbose] > │     let v3 : (string []) = [|v0; v1; v2|]                                    │
00:01:34 #7800 [Verbose] > │     let v4 : (string []) = method1(v3)                                       │
00:01:34 #7801 [Verbose] > │     let v5 : int32 = v4.Length                                               │
00:01:34 #7802 [Verbose] > │     let v6 : string = ""                                                     │
00:01:34 #7803 [Verbose] > │     let v7 : Mut0 = {l0 = 0; l1 = v6} : Mut0                                 │
00:01:34 #7804 [Verbose] > │     while method2(v5, v7) do                                                 │
00:01:34 #7805 [Verbose] > │         let v9 : int32 = v7.l0                                               │
00:01:34 #7806 [Verbose] > │         let v10 : string = v7.l1                                             │
00:01:34 #7807 [Verbose] > │         let v11 : string = v4.[int v9]                                       │
00:01:34 #7808 [Verbose] > │         let v12 : string = "\n"                                              │
00:01:34 #7809 [Verbose] > │         let v13 : string = v10 + v11 + v12 + ""                              │
00:01:34 #7810 [Verbose] > │         let v14 : int32 = v9 + 1                                             │
00:01:34 #7811 [Verbose] > │         v7.l0 <- v14                                                         │
00:01:34 #7812 [Verbose] > │         v7.l1 <- v13                                                         │
00:01:34 #7813 [Verbose] > │         ()                                                                   │
00:01:34 #7814 [Verbose] > │     let v15 : string = v7.l1                                                 │
00:01:34 #7815 [Verbose] > │     let v16 : string = $"%A{v15}"                                            │
00:01:34 #7816 [Verbose] > │     System.Console.WriteLine v16                                             │
00:01:34 #7817 [Verbose] > │     let v18 : bool = v15 = "1\n2\n3\n"                                       │
00:01:34 #7818 [Verbose] > │     let v20 : bool =                                                         │
00:01:34 #7819 [Verbose] > │         if v18 then                                                          │
00:01:34 #7820 [Verbose] > │             true                                                             │
00:01:34 #7821 [Verbose] > │         else                                                                 │
00:01:34 #7822 [Verbose] > │             method3(v18)                                                     │
00:01:34 #7823 [Verbose] > │     let v21 : string = "1\n2\n3\n"                                           │
00:01:34 #7824 [Verbose] > │     let v22 : string = $"__expect / actual: %A{v15} / expected: %A{v21}"     │
00:01:34 #7825 [Verbose] > │     let v23 : bool = v20 = false                                             │
00:01:34 #7826 [Verbose] > │     if v23 then                                                              │
00:01:34 #7827 [Verbose] > │         failwith<unit> v22                                                   │
00:01:34 #7828 [Verbose] > │ method0()                                                                    │
00:01:34 #7829 [Verbose] > │                                                                              │
00:01:34 #7830 [Verbose] > │                                                                              │
00:01:34 #7831 [Verbose] > │ .rs:                                                                         │
00:01:34 #7832 [Verbose] > │ #![allow(dead_code,)]                                                        │
00:01:34 #7833 [Verbose] > │ #![allow(non_camel_case_types,)]                                             │
00:01:34 #7834 [Verbose] > │ #![allow(non_snake_case,)]                                                   │
00:01:34 #7835 [Verbose] > │ #![allow(non_upper_case_globals,)]                                           │
00:01:34 #7836 [Verbose] > │ #![allow(unreachable_code,)]                                                 │
00:01:34 #7837 [Verbose] > │ #![allow(unused_attributes,)]                                                │
00:01:34 #7838 [Verbose] > │ #![allow(unused_imports,)]                                                   │
00:01:34 #7839 [Verbose] > │ #![allow(unused_macros,)]                                                    │
00:01:34 #7840 [Verbose] > │ #![allow(unused_parens,)]                                                    │
00:01:34 #7841 [Verbose] > │ #![allow(unused_variables,)]                                                 │
00:01:34 #7842 [Verbose] > │ mod module_ccfa04bf {                                                        │
00:01:34 #7843 [Verbose] > │     pub mod Spiral_eval {                                                    │
00:01:34 #7844 [Verbose] > │         use super::*;                                                        │
00:01:34 #7845 [Verbose] > │         use fable_library_rust::Native_::LrcPtr;                             │
00:01:34 #7846 [Verbose] > │         use fable_library_rust::Native_::MutCell;                            │
00:01:34 #7847 [Verbose] > │         use fable_library_rust::Native_::on_startup;                         │
00:01:34 #7848 [Verbose] > │         use fable_library_rust::NativeArray_::Array;                         │
00:01:34 #7849 [Verbose] > │         use fable_library_rust::NativeArray_::count;                         │
00:01:34 #7850 [Verbose] > │         use fable_library_rust::NativeArray_::new_array;                     │
00:01:34 #7851 [Verbose] > │         use fable_library_rust::String_::append;                             │
00:01:34 #7852 [Verbose] > │         use fable_library_rust::String_::printfn;                            │
00:01:34 #7853 [Verbose] > │         use fable_library_rust::String_::sprintf;                            │
00:01:34 #7854 [Verbose] > │         use fable_library_rust::String_::string;                             │
00:01:34 #7855 [Verbose] > │         #[derive(Clone, Debug, Default, PartialEq, PartialOrd, Hash, Eq,)]   │
00:01:34 #7856 [Verbose] > │         pub struct Mut0 {                                                    │
00:01:34 #7857 [Verbose] > │             pub l0: MutCell<i32>,                                            │
00:01:34 #7858 [Verbose] > │             pub l1: MutCell<string>,                                         │
00:01:34 #7859 [Verbose] > │         }                                                                    │
00:01:34 #7860 [Verbose] > │         impl core::fmt::Display for Spiral_eval::Mut0 {                      │
00:01:34 #7861 [Verbose] > │             fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │
00:01:34 #7862 [Verbose] > │ {                                                                            │
00:01:34 #7863 [Verbose] > │                 write!(f, "{}", core::any::type_name::<Self>())              │
00:01:34 #7864 [Verbose] > │             }                                                                │
00:01:34 #7865 [Verbose] > │         }                                                                    │
00:01:34 #7866 [Verbose] > │         pub fn method1(v0: Array<string>) -> Array<string> { v0 }            │
00:01:34 #7867 [Verbose] > │         pub fn method2(v0: i32, v1: LrcPtr<Spiral_eval::Mut0>) -> bool {     │
00:01:34 #7868 [Verbose] > │             v1.l0.get().clone() < v0                                         │
00:01:34 #7869 [Verbose] > │         }                                                                    │
00:01:34 #7870 [Verbose] > │         pub fn method3(v0: bool) -> bool { v0 }                              │
00:01:34 #7871 [Verbose] > │         pub fn method0() {                                                   │
00:01:34 #7872 [Verbose] > │             let v4: Array<string> =                                          │
00:01:34 #7873 [Verbose] > │                 Spiral_eval::method1(new_array(&[string("1"), string("2"),   │
00:01:34 #7874 [Verbose] > │                                                  string("3")]));             │
00:01:34 #7875 [Verbose] > │             let v5: i32 = count(v4.clone());                                 │
00:01:34 #7876 [Verbose] > │             let v7: LrcPtr<Spiral_eval::Mut0> =                              │
00:01:34 #7877 [Verbose] > │                 LrcPtr::new(Spiral_eval::Mut0{l0: MutCell::new(0_i32),       │
00:01:34 #7878 [Verbose] > │                                               l1:                            │
00:01:34 #7879 [Verbose] > │ MutCell::new(string("")),});                                                 │
00:01:34 #7880 [Verbose] > │             while Spiral_eval::method2(v5, v7.clone()) {                     │
00:01:34 #7881 [Verbose] > │                 let v9: i32 = v7.l0.get().clone();                           │
00:01:34 #7882 [Verbose] > │                 let v13: string =                                            │
00:01:34 #7883 [Verbose] > │                     append(append(append(v7.l1.get().clone(), v4[            │
00:01:34 #7884 [Verbose] > │ v9].clone()),                                                                │
00:01:34 #7885 [Verbose] > │                                   string("\n")), string(""));                │
00:01:34 #7886 [Verbose] > │                 let v14: i32 = v9 + 1_i32;                                   │
00:01:34 #7887 [Verbose] > │                 v7.l0.set(v14);                                              │
00:01:34 #7888 [Verbose] > │                 v7.l1.set(v13);                                              │
00:01:34 #7889 [Verbose] > │                 ()                                                           │
00:01:34 #7890 [Verbose] > │             }                                                                │
00:01:34 #7891 [Verbose] > │             {                                                                │
00:01:34 #7892 [Verbose] > │                 let v15: string = v7.l1.get().clone();                       │
00:01:34 #7893 [Verbose] > │                 let v16: string = sprintf!("{:?}", v15.clone());             │
00:01:34 #7894 [Verbose] > │                 printfn!("{0}", v16);                                        │
00:01:34 #7895 [Verbose] > │                 {                                                            │
00:01:34 #7896 [Verbose] > │                     let v18: bool = v15.clone() == string("1\n2\n3\n");      │
00:01:34 #7897 [Verbose] > │                     if (if v18 { true } else { Spiral_eval::method3(v18) })  │
00:01:34 #7898 [Verbose] > │ ==                                                                           │
00:01:34 #7899 [Verbose] > │                            false {                                           │
00:01:34 #7900 [Verbose] > │                         panic!("{}",                                         │
00:01:34 #7901 [Verbose] > │                                sprintf!("__expect / actual: {:?} / expected: │
00:01:34 #7902 [Verbose] > │ {:?}", v15, string("1\n2\n3\n")));                                           │
00:01:34 #7903 [Verbose] > │                     }                                                        │
00:01:34 #7904 [Verbose] > │                 }                                                            │
00:01:34 #7905 [Verbose] > │             }                                                                │
00:01:34 #7906 [Verbose] > │         }                                                                    │
00:01:34 #7907 [Verbose] > │         on_startup!(Spiral_eval::method0());                                 │
00:01:34 #7908 [Verbose] > │     }                                                                        │
00:01:34 #7909 [Verbose] > │ }                                                                            │
00:01:34 #7910 [Verbose] > │ pub use module_ccfa04bf::*;                                                  │
00:01:34 #7911 [Verbose] > │                                                                              │
00:01:34 #7912 [Verbose] > │                                                                              │
00:01:34 #7913 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:34 #7914 [Verbose] >
00:01:34 #7915 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:34 #7916 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:34 #7917 [Verbose] > │ ## concat_list_trailing                                                      │
00:01:34 #7918 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:34 #7919 [Verbose] >
00:01:34 #7920 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:34 #7921 [Verbose] > inl concat_list_trailing separator input =
00:01:34 #7922 [Verbose] >     ("", input)
00:01:34 #7923 [Verbose] >     ||> listm.fold fun acc (x : string) =>
00:01:34 #7924 [Verbose] >         $'!acc + !x + !separator + ""'
00:01:34 #7925 [Verbose] > [NbConvertApp] Writing 366860 bytes to listm'.dib.html
00:01:35 #7926 [Debug] executeAsync / exitCode: 0 / output.Length: 77911
00:01:35 #7927 [Debug] main / executeCommand / exitCode: 0
00:01:35 #7928 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 stream.dib""
  WorkingDirectory = None
  CancellationToken = Some System.Threading.CancellationToken
  OnLine = None }
00:01:35 #7929 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-0399-9985-9d228b435c0f/main.spi
00:01:36 #7930 [Verbose] >
00:01:36 #7931 [Verbose] > ╭─[ 7.41s - stdout ]───────────────────────────────────────────────────────────╮
00:01:36 #7932 [Verbose] > │ ()                                                                           │
00:01:36 #7933 [Verbose] > │                                                                              │
00:01:36 #7934 [Verbose] > │                                                                              │
00:01:36 #7935 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:36 #7936 [Verbose] >
00:01:36 #7937 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:36 #7938 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:36 #7939 [Verbose] > │ ## empty2Tests                                                               │
00:01:36 #7940 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:36 #7941 [Verbose] >
00:01:36 #7942 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:36 #7943 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:36 #7944 [Verbose] > │ Test: Empty2                                                                 │
00:01:36 #7945 [Verbose] > │                                                                              │
00:01:36 #7946 [Verbose] > │ Solution: (a, a)                                                             │
00:01:36 #7947 [Verbose] > │ Test case 1. A. Time: 59L                                                    │
00:01:36 #7948 [Verbose] > │                                                                              │
00:01:36 #7949 [Verbose] > │ Solution: (a, a)                                                             │
00:01:36 #7950 [Verbose] > │ Test case 1. A. Time: 53L                                                    │
00:01:36 #7951 [Verbose] > │                                                                              │
00:01:36 #7952 [Verbose] > │ Input   | Expected        | Result  | Best                                   │
00:01:36 #7953 [Verbose] > │ ---     | ---             | ---     | ---                                    │
00:01:36 #7954 [Verbose] > │ (a, a)  | a               | a       | (1, 59)                                │
00:01:36 #7955 [Verbose] > │ (a, a)  | a               | a       | (1, 53)                                │
00:01:36 #7956 [Verbose] > │                                                                              │
00:01:36 #7957 [Verbose] > │ Averages                                                                     │
00:01:36 #7958 [Verbose] > │ Test case 1. Average Time: 56L                                               │
00:01:36 #7959 [Verbose] > │                                                                              │
00:01:36 #7960 [Verbose] > │ Ranking                                                                      │
00:01:36 #7961 [Verbose] > │ Test case 1. Average Time: 56L                                               │
00:01:36 #7962 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:36 #7963 [Verbose] >
00:01:36 #7964 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:36 #7965 [Verbose] > // // test
00:01:36 #7966 [Verbose] >
00:01:36 #7967 [Verbose] > inl get_solutions () =
00:01:36 #7968 [Verbose] >     [[
00:01:36 #7969 [Verbose] >         "A",
00:01:36 #7970 [Verbose] >         fun (a, _b) =>
00:01:36 #7971 [Verbose] >             a
00:01:36 #7972 [Verbose] >
00:01:36 #7973 [Verbose] >         "B",
00:01:36 #7974 [Verbose] >         fun (_a, b) =>
00:01:36 #7975 [Verbose] >             b
00:01:36 #7976 [Verbose] >     ]]
00:01:36 #7977 [Verbose] >
00:01:36 #7978 [Verbose] > inl rec empty_2_tests () =
00:01:36 #7979 [Verbose] >     inl test_cases = [[
00:01:36 #7980 [Verbose] >         ("a", "a"), "a"
00:01:36 #7981 [Verbose] >         ("b", "b"), "b"
00:01:36 #7982 [Verbose] >     ]]
00:01:36 #7983 [Verbose] >
00:01:36 #7984 [Verbose] >     inl solutions = get_solutions ()
00:01:36 #7985 [Verbose] >
00:01:36 #7986 [Verbose] >     // inl is_fast () = true
00:01:36 #7987 [Verbose] >
00:01:36 #7988 [Verbose] >     inl count =
00:01:36 #7989 [Verbose] >         if is_fast ()
00:01:36 #7990 [Verbose] >         then 1000i32
00:01:36 #7991 [Verbose] >         else 2000000i32
00:01:36 #7992 [Verbose] >
00:01:36 #7993 [Verbose] >     run_all (nameof empty_2_tests) count solutions test_cases
00:01:36 #7994 [Verbose] >     |> sort_result_list
00:01:36 #7995 [Verbose] >
00:01:36 #7996 [Verbose] > empty_2_tests ()
00:01:36 #7997 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-0545-4525-4324554d706b/main.spi
00:01:36 #7998 [Verbose] >
00:01:37 #7999 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:37 #8000 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:37 #8001 [Verbose] > │ # stream                                                                     │
00:01:37 #8002 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:37 #8003 [Verbose] >
00:01:37 #8004 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:37 #8005 [Verbose] > // // test
00:01:37 #8006 [Verbose] >
00:01:37 #8007 [Verbose] > open testing
00:01:38 #8008 [Verbose] >
00:01:38 #8009 [Verbose] > ╭─[ 3.43s - stdout ]───────────────────────────────────────────────────────────╮
00:01:38 #8010 [Verbose] > │ ()                                                                           │
00:01:38 #8011 [Verbose] > │                                                                              │
00:01:38 #8012 [Verbose] > │                                                                              │
00:01:38 #8013 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:38 #8014 [Verbose] >
00:01:38 #8015 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:38 #8016 [Verbose] > // // test
00:01:38 #8017 [Verbose] > // // rust=
00:01:38 #8018 [Verbose] >
00:01:38 #8019 [Verbose] > [[
00:01:38 #8020 [Verbose] >     "1"
00:01:38 #8021 [Verbose] >     "2"
00:01:38 #8022 [Verbose] >     "3"
00:01:38 #8023 [Verbose] > ]]
00:01:38 #8024 [Verbose] > |> fun x =>
00:01:38 #8025 [Verbose] >     inl code = (x : _) |> sm'.concat_list_trailing "\n"
00:01:38 #8026 [Verbose] >     code
00:01:38 #8027 [Verbose] >     |> _assert_eq "1\n2\n3\n"
00:01:38 #8028 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-0743-4324-4b6e707f959e/main.spi
00:01:39 #8029 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-0772-7213-7ea8f6a1b4f3/main.spi
00:01:40 #8030 [Verbose] >
00:01:40 #8031 [Verbose] > ╭─[ 3.07s - stdout ]───────────────────────────────────────────────────────────╮
00:01:40 #8032 [Verbose] > │ ()                                                                           │
00:01:40 #8033 [Verbose] > │                                                                              │
00:01:40 #8034 [Verbose] > │                                                                              │
00:01:40 #8035 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:40 #8036 [Verbose] >
00:01:40 #8037 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:40 #8038 [Verbose] > union rec stream t =
00:01:40 #8039 [Verbose] >     | StreamCons : t * (() -> stream t)
00:01:40 #8040 [Verbose] >     | StreamNil
00:01:40 #8041 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-0925-2584-25c3f782a15e/main.spi
00:01:40 #8042 [Verbose] >
00:01:40 #8043 [Verbose] > ╭─[ 181.78ms - stdout ]────────────────────────────────────────────────────────╮
00:01:40 #8044 [Verbose] > │ ()                                                                           │
00:01:40 #8045 [Verbose] > │                                                                              │
00:01:40 #8046 [Verbose] > │                                                                              │
00:01:40 #8047 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:40 #8048 [Verbose] >
00:01:40 #8049 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:40 #8050 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:40 #8051 [Verbose] > │ ## fold                                                                      │
00:01:40 #8052 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:40 #8053 [Verbose] >
00:01:40 #8054 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:40 #8055 [Verbose] > inl fold fn init s =
00:01:40 #8056 [Verbose] >     inl rec body acc = function
00:01:40 #8057 [Verbose] >         | StreamCons (st, fn') => loop (fn acc st) (fn' ())
00:01:40 #8058 [Verbose] >         | StreamNil => acc
00:01:40 #8059 [Verbose] >     and inl loop acc = join_body body acc
00:01:40 #8060 [Verbose] >     loop init s
00:01:40 #8061 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-0944-4429-4bffae9359d4/main.spi
00:01:40 #8062 [Verbose] >
00:01:40 #8063 [Verbose] > ╭─[ 169.17ms - stdout ]────────────────────────────────────────────────────────╮
00:01:40 #8064 [Verbose] > │ ()                                                                           │
00:01:40 #8065 [Verbose] > │                                                                              │
00:01:40 #8066 [Verbose] > │                                                                              │
00:01:40 #8067 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:40 #8068 [Verbose] >
00:01:40 #8069 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:40 #8070 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:40 #8071 [Verbose] > │ ## fold_back                                                                 │
00:01:40 #8072 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:40 #8073 [Verbose] >
00:01:40 #8074 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:40 #8075 [Verbose] > inl fold_back fn s init =
00:01:40 #8076 [Verbose] >     inl rec body acc = function
00:01:40 #8077 [Verbose] >         | StreamCons (st, fn') => fn st (loop acc (fn' ()))
00:01:40 #8078 [Verbose] >         | StreamNil => acc
00:01:40 #8079 [Verbose] >     and inl loop acc = join_body body acc
00:01:40 #8080 [Verbose] >     loop init s
00:01:40 #8081 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-0961-6111-618d48e144c1/main.spi
00:01:40 #8082 [Verbose] >
00:01:40 #8083 [Verbose] > ╭─[ 164.46ms - stdout ]────────────────────────────────────────────────────────╮
00:01:40 #8084 [Verbose] > │ ()                                                                           │
00:01:40 #8085 [Verbose] > │                                                                              │
00:01:40 #8086 [Verbose] > │                                                                              │
00:01:40 #8087 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:40 #8088 [Verbose] >
00:01:40 #8089 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:40 #8090 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:40 #8091 [Verbose] > │ ## to_list                                                                   │
00:01:40 #8092 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:40 #8093 [Verbose] >
00:01:40 #8094 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:40 #8095 [Verbose] > inl to_list s =
00:01:40 #8096 [Verbose] >     (s, [[]])
00:01:40 #8097 [Verbose] >     ||> fold_back fun x acc =>
00:01:40 #8098 [Verbose] >         x :: acc
00:01:40 #8099 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-0977-7766-79dda3cbfaf1/main.spi
00:01:40 #8100 [Verbose] >
00:01:40 #8101 [Verbose] > ╭─[ 272.76ms - stdout ]────────────────────────────────────────────────────────╮
00:01:40 #8102 [Verbose] > │ ()                                                                           │
00:01:40 #8103 [Verbose] > │                                                                              │
00:01:40 #8104 [Verbose] > │                                                                              │
00:01:40 #8105 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:40 #8106 [Verbose] >
00:01:40 #8107 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:40 #8108 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:40 #8109 [Verbose] > │ ## rev                                                                       │
00:01:40 #8110 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:40 #8111 [Verbose] >
00:01:40 #8112 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:40 #8113 [Verbose] > inl rev s =
00:01:40 #8114 [Verbose] >     (StreamNil, s)
00:01:40 #8115 [Verbose] >     ||> fold fun s x =>
00:01:40 #8116 [Verbose] >         StreamCons (x, fun () => s)
00:01:40 #8117 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-1005-0519-057d86f6673f/main.spi
00:01:41 #8118 [Verbose] >
00:01:41 #8119 [Verbose] > ╭─[ 198.35ms - stdout ]────────────────────────────────────────────────────────╮
00:01:41 #8120 [Verbose] > │ ()                                                                           │
00:01:41 #8121 [Verbose] > │                                                                              │
00:01:41 #8122 [Verbose] > │                                                                              │
00:01:41 #8123 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:41 #8124 [Verbose] >
00:01:41 #8125 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:41 #8126 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:41 #8127 [Verbose] > │ ## from_list                                                                 │
00:01:41 #8128 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:41 #8129 [Verbose] >
00:01:41 #8130 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:41 #8131 [Verbose] > inl from_list list =
00:01:41 #8132 [Verbose] >     (list, StreamNil)
00:01:41 #8133 [Verbose] >     ||> listm.foldBack fun x acc =>
00:01:41 #8134 [Verbose] >         StreamCons (x, fun () => acc)
00:01:41 #8135 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-1025-2515-27562891c273/main.spi
00:01:41 #8136 [Verbose] >
00:01:41 #8137 [Verbose] > ╭─[ 166.53ms - stdout ]────────────────────────────────────────────────────────╮
00:01:41 #8138 [Verbose] > │ ()                                                                           │
00:01:41 #8139 [Verbose] > │                                                                              │
00:01:41 #8140 [Verbose] > │                                                                              │
00:01:41 #8141 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:41 #8142 [Verbose] >
00:01:41 #8143 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:41 #8144 [Verbose] > // // test
00:01:41 #8145 [Verbose] >
00:01:41 #8146 [Verbose] > listm.init 3i32 id
00:01:41 #8147 [Verbose] > |> from_list
00:01:41 #8148 [Verbose] > |> rev
00:01:41 #8149 [Verbose] > |> to_list
00:01:41 #8150 [Verbose] > |> _assert_eq [[ 2; 1; 0 ]]
00:01:41 #8151 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-1041-4188-4ab056910309/main.spi
00:01:42 #8152 [Verbose] >
00:01:42 #8153 [Verbose] > ╭─[ 4.00s - return value ]─────────────────────────────────────────────────────╮
00:01:42 #8154 [Verbose] > │ .rs output:                                                                  │
00:01:42 #8155 [Verbose] > │ "1                                                                           │
00:01:42 #8156 [Verbose] > │ 2                                                                            │
00:01:42 #8157 [Verbose] > │ 3                                                                            │
00:01:42 #8158 [Verbose] > │ "                                                                            │
00:01:42 #8159 [Verbose] > │                                                                              │
00:01:42 #8160 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:42 #8161 [Verbose] >
00:01:42 #8162 [Verbose] > ╭─[ 4.00s - stdout ]───────────────────────────────────────────────────────────╮
00:01:42 #8163 [Verbose] > │                                                                              │
00:01:42 #8164 [Verbose] > │ .fsx:                                                                        │
00:01:42 #8165 [Verbose] > │ let rec method1 (v0 : bool) : bool =                                         │
00:01:42 #8166 [Verbose] > │     v0                                                                       │
00:01:42 #8167 [Verbose] > │ and method0 () : unit =                                                      │
00:01:42 #8168 [Verbose] > │     let v0 : string = ""                                                     │
00:01:42 #8169 [Verbose] > │     let v1 : string = "1"                                                    │
00:01:42 #8170 [Verbose] > │     let v2 : string = "\n"                                                   │
00:01:42 #8171 [Verbose] > │     let v3 : string = v0 + v1 + v2 + ""                                      │
00:01:42 #8172 [Verbose] > │     let v4 : string = "2"                                                    │
00:01:42 #8173 [Verbose] > │     let v5 : string = v3 + v4 + v2 + ""                                      │
00:01:42 #8174 [Verbose] > │     let v6 : string = "3"                                                    │
00:01:42 #8175 [Verbose] > │     let v7 : string = v5 + v6 + v2 + ""                                      │
00:01:42 #8176 [Verbose] > │     let v8 : string = $"%A{v7}"                                              │
00:01:42 #8177 [Verbose] > │     System.Console.WriteLine v8                                              │
00:01:42 #8178 [Verbose] > │     let v10 : bool = v7 = "1\n2\n3\n"                                        │
00:01:42 #8179 [Verbose] > │     let v12 : bool =                                                         │
00:01:42 #8180 [Verbose] > │         if v10 then                                                          │
00:01:42 #8181 [Verbose] > │             true                                                             │
00:01:42 #8182 [Verbose] > │         else                                                                 │
00:01:42 #8183 [Verbose] > │             method1(v10)                                                     │
00:01:42 #8184 [Verbose] > │     let v13 : string = "1\n2\n3\n"                                           │
00:01:42 #8185 [Verbose] > │     let v14 : string = $"__expect / actual: %A{v7} / expected: %A{v13}"      │
00:01:42 #8186 [Verbose] > │     let v15 : bool = v12 = false                                             │
00:01:42 #8187 [Verbose] > │     if v15 then                                                              │
00:01:42 #8188 [Verbose] > │         failwith<unit> v14                                                   │
00:01:42 #8189 [Verbose] > │ method0()                                                                    │
00:01:42 #8190 [Verbose] > │                                                                              │
00:01:42 #8191 [Verbose] > │                                                                              │
00:01:42 #8192 [Verbose] > │ .rs:                                                                         │
00:01:42 #8193 [Verbose] > │ #![allow(dead_code,)]                                                        │
00:01:42 #8194 [Verbose] > │ #![allow(non_camel_case_types,)]                                             │
00:01:42 #8195 [Verbose] > │ #![allow(non_snake_case,)]                                                   │
00:01:42 #8196 [Verbose] > │ #![allow(non_upper_case_globals,)]                                           │
00:01:42 #8197 [Verbose] > │ #![allow(unreachable_code,)]                                                 │
00:01:42 #8198 [Verbose] > │ #![allow(unused_attributes,)]                                                │
00:01:42 #8199 [Verbose] > │ #![allow(unused_imports,)]                                                   │
00:01:42 #8200 [Verbose] > │ #![allow(unused_macros,)]                                                    │
00:01:42 #8201 [Verbose] > │ #![allow(unused_parens,)]                                                    │
00:01:42 #8202 [Verbose] > │ #![allow(unused_variables,)]                                                 │
00:01:42 #8203 [Verbose] > │ mod module_ccfa04bf {                                                        │
00:01:42 #8204 [Verbose] > │     pub mod Spiral_eval {                                                    │
00:01:42 #8205 [Verbose] > │         use super::*;                                                        │
00:01:42 #8206 [Verbose] > │         use fable_library_rust::Native_::on_startup;                         │
00:01:42 #8207 [Verbose] > │         use fable_library_rust::String_::printfn;                            │
00:01:42 #8208 [Verbose] > │         use fable_library_rust::String_::sprintf;                            │
00:01:42 #8209 [Verbose] > │         use fable_library_rust::String_::string;                             │
00:01:42 #8210 [Verbose] > │         pub fn method1(v0: bool) -> bool { v0 }                              │
00:01:42 #8211 [Verbose] > │         pub fn method0() {                                                   │
00:01:42 #8212 [Verbose] > │             let v7: string = string("1\n2\n3\n");                            │
00:01:42 #8213 [Verbose] > │             let v8: string = sprintf!("{:?}", v7.clone());                   │
00:01:42 #8214 [Verbose] > │             printfn!("{0}", v8);                                             │
00:01:42 #8215 [Verbose] > │             {                                                                │
00:01:42 #8216 [Verbose] > │                 let v10: bool = v7.clone() == string("1\n2\n3\n");           │
00:01:42 #8217 [Verbose] > │                 if (if v10 { true } else { Spiral_eval::method1(v10) }) ==   │
00:01:42 #8218 [Verbose] > │                        false {                                               │
00:01:42 #8219 [Verbose] > │                     panic!("{}",                                             │
00:01:42 #8220 [Verbose] > │                            sprintf!("__expect / actual: {:?} / expected:     │
00:01:42 #8221 [Verbose] > │ {:?}", v7, string("1\n2\n3\n")));                                            │
00:01:42 #8222 [Verbose] > │                 }                                                            │
00:01:42 #8223 [Verbose] > │             }                                                                │
00:01:42 #8224 [Verbose] > │         }                                                                    │
00:01:42 #8225 [Verbose] > │         on_startup!(Spiral_eval::method0());                                 │
00:01:42 #8226 [Verbose] > │     }                                                                        │
00:01:42 #8227 [Verbose] > │ }                                                                            │
00:01:42 #8228 [Verbose] > │ pub use module_ccfa04bf::*;                                                  │
00:01:42 #8229 [Verbose] > │                                                                              │
00:01:42 #8230 [Verbose] > │                                                                              │
00:01:42 #8231 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:42 #8232 [Verbose] >
00:01:42 #8233 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:42 #8234 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:42 #8235 [Verbose] > │ ## concat_list_heap_trailing                                                 │
00:01:42 #8236 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:42 #8237 [Verbose] >
00:01:42 #8238 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:42 #8239 [Verbose] > inl concat_list_heap_trailing separator input =
00:01:42 #8240 [Verbose] >     ("", input)
00:01:42 #8241 [Verbose] >     ||> listm.fold fun acc (x : string) =>
00:01:42 #8242 [Verbose] >         inl acc = acc |> to_std_string
00:01:42 #8243 [Verbose] >         inl x = x |> as_str
00:01:42 #8244 [Verbose] >         inl separator = separator |> as_str
00:01:42 #8245 [Verbose] >         !\($'"!acc + !x + !separator"')
00:01:42 #8246 [Verbose] >         |> from_std_string
00:01:42 #8247 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-1143-4390-4c265c1136f6/main.spi
00:01:42 #8248 [Verbose] >
00:01:42 #8249 [Verbose] > ╭─[ 197.25ms - stdout ]────────────────────────────────────────────────────────╮
00:01:42 #8250 [Verbose] > │ ()                                                                           │
00:01:42 #8251 [Verbose] > │                                                                              │
00:01:42 #8252 [Verbose] > │                                                                              │
00:01:42 #8253 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:42 #8254 [Verbose] >
00:01:42 #8255 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:42 #8256 [Verbose] > // // test
00:01:42 #8257 [Verbose] > // // rust=
00:01:42 #8258 [Verbose] >
00:01:42 #8259 [Verbose] > types ()
00:01:42 #8260 [Verbose] >
00:01:42 #8261 [Verbose] > [[
00:01:42 #8262 [Verbose] >     "1"
00:01:42 #8263 [Verbose] >     "2"
00:01:42 #8264 [Verbose] >     "3"
00:01:42 #8265 [Verbose] > ]]
00:01:42 #8266 [Verbose] > |> fun x =>
00:01:42 #8267 [Verbose] >     inl code = (x : _) |> sm'.concat_list_heap_trailing "\n"
00:01:42 #8268 [Verbose] >     code
00:01:42 #8269 [Verbose] >     |> _assert_eq "1\n2\n3\n"
00:01:42 #8270 [Verbose] >
00:01:42 #8271 [Verbose] > ╭─[ 1.27s - stdout ]───────────────────────────────────────────────────────────╮
00:01:42 #8272 [Verbose] > │ type UH0 =                                                                   │
00:01:42 #8273 [Verbose] > │     | UH0_0 of int32 * UH0                                                   │
00:01:42 #8274 [Verbose] > │     | UH0_1                                                                  │
00:01:42 #8275 [Verbose] > │ let rec method0 () : unit =                                                  │
00:01:42 #8276 [Verbose] > │     let v0 : UH0 = UH0_1                                                     │
00:01:42 #8277 [Verbose] > │     let v1 : UH0 = UH0_0(0, v0)                                              │
00:01:42 #8278 [Verbose] > │     let v2 : UH0 = UH0_0(1, v1)                                              │
00:01:42 #8279 [Verbose] > │     let v3 : UH0 = UH0_0(2, v2)                                              │
00:01:42 #8280 [Verbose] > │     let v4 : string = $"%A{v3}"                                              │
00:01:42 #8281 [Verbose] > │     System.Console.WriteLine v4                                              │
00:01:42 #8282 [Verbose] > │     let v23 : UH0 = UH0_1                                                    │
00:01:42 #8283 [Verbose] > │     let v24 : UH0 = UH0_0(0, v23)                                            │
00:01:42 #8284 [Verbose] > │     let v25 : UH0 = UH0_0(1, v24)                                            │
00:01:42 #8285 [Verbose] > │     let v26 : UH0 = UH0_0(2, v25)                                            │
00:01:42 #8286 [Verbose] > │     let v27 : UH0 = UH0_1                                                    │
00:01:42 #8287 [Verbose] > │     let v28 : UH0 = UH0_0(0, v27)                                            │
00:01:42 #8288 [Verbose] > │     let v29 : UH0 = UH0_0(1, v28)                                            │
00:01:42 #8289 [Verbose] > │     let v30 : UH0 = UH0_0(2, v29)                                            │
00:01:42 #8290 [Verbose] > │     let v31 : string = $"__expect / actual: %A{v26} / expected: %A{v30}"     │
00:01:42 #8291 [Verbose] > │     ()                                                                       │
00:01:42 #8292 [Verbose] > │ method0()                                                                    │
00:01:42 #8293 [Verbose] > │                                                                              │
00:01:42 #8294 [Verbose] > │ UH0_0 (2, UH0_0 (1, UH0_0 (0, UH0_1)))                                       │
00:01:42 #8295 [Verbose] > │                                                                              │
00:01:42 #8296 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:42 #8297 [Verbose] >
00:01:42 #8298 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:42 #8299 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:42 #8300 [Verbose] > │ ## try_item                                                                  │
00:01:42 #8301 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:42 #8302 [Verbose] >
00:01:42 #8303 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:42 #8304 [Verbose] > inl try_item i s =
00:01:42 #8305 [Verbose] >     inl rec body i = function
00:01:42 #8306 [Verbose] >         | StreamCons (x, _) when i <= 0 => Some x
00:01:42 #8307 [Verbose] >         | StreamCons (_, fn) => loop (i - 1) (fn ())
00:01:42 #8308 [Verbose] >         | StreamNil => None
00:01:42 #8309 [Verbose] >     and inl loop acc s' =
00:01:42 #8310 [Verbose] >         match var_is acc, var_is s' with
00:01:42 #8311 [Verbose] >         | false, false => body acc s'
00:01:42 #8312 [Verbose] >         | _ =>
00:01:42 #8313 [Verbose] >             inl acc = dyn acc
00:01:42 #8314 [Verbose] >             inl s' = dyn s'
00:01:42 #8315 [Verbose] >             join body acc s'
00:01:42 #8316 [Verbose] >     loop i s
00:01:42 #8317 [Verbose] >
00:01:42 #8318 [Verbose] > inl item i =
00:01:42 #8319 [Verbose] >     try_item i >> optionm.value
00:01:42 #8320 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-1163-6366-640d9c02d1e9/main.spi
00:01:42 #8321 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-1169-6917-6f0cdfa793a6/main.spi
00:01:42 #8322 [Verbose] >
00:01:42 #8323 [Verbose] > ╭─[ 151.79ms - stdout ]────────────────────────────────────────────────────────╮
00:01:42 #8324 [Verbose] > │ ()                                                                           │
00:01:42 #8325 [Verbose] > │                                                                              │
00:01:42 #8326 [Verbose] > │                                                                              │
00:01:42 #8327 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:42 #8328 [Verbose] >
00:01:42 #8329 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:42 #8330 [Verbose] > // // test
00:01:42 #8331 [Verbose] >
00:01:42 #8332 [Verbose] > listm.init 10i32 id
00:01:42 #8333 [Verbose] > |> from_list
00:01:42 #8334 [Verbose] > |> item 9i32
00:01:42 #8335 [Verbose] > |> _assert_eq 9
00:01:42 #8336 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-1184-8459-8de1db047614/main.spi
00:01:42 #8337 [Verbose] >
00:01:42 #8338 [Verbose] > ╭─[ 228.92ms - stdout ]────────────────────────────────────────────────────────╮
00:01:42 #8339 [Verbose] > │ let rec method0 () : unit =                                                  │
00:01:42 #8340 [Verbose] > │     let v0 : string = $"%A{9}"                                               │
00:01:42 #8341 [Verbose] > │     System.Console.WriteLine v0                                              │
00:01:42 #8342 [Verbose] > │     let v1 : string = $"__expect / actual: %A{9} / expected: %A{9}"          │
00:01:42 #8343 [Verbose] > │     ()                                                                       │
00:01:42 #8344 [Verbose] > │ method0()                                                                    │
00:01:42 #8345 [Verbose] > │                                                                              │
00:01:42 #8346 [Verbose] > │ 9                                                                            │
00:01:42 #8347 [Verbose] > │                                                                              │
00:01:42 #8348 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:42 #8349 [Verbose] >
00:01:42 #8350 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:42 #8351 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:42 #8352 [Verbose] > │ ## new_infinite_stream                                                       │
00:01:42 #8353 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:42 #8354 [Verbose] >
00:01:42 #8355 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:42 #8356 [Verbose] > inl new_infinite_stream fn =
00:01:42 #8357 [Verbose] >     inl rec loop n =
00:01:42 #8358 [Verbose] >         StreamCons (fn n, fun () => loop (n + 1))
00:01:42 #8359 [Verbose] >     loop 0
00:01:42 #8360 [Verbose] >
00:01:42 #8361 [Verbose] > inl new_infinite_stream_ fn =
00:01:42 #8362 [Verbose] >     let rec loop n =
00:01:42 #8363 [Verbose] >         StreamCons (fn n, fun () => loop (n + 1))
00:01:42 #8364 [Verbose] >     loop 0
00:01:42 #8365 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-1207-0753-0f613a78d123/main.spi
00:01:43 #8366 [Verbose] >
00:01:43 #8367 [Verbose] > ╭─[ 183.78ms - stdout ]────────────────────────────────────────────────────────╮
00:01:43 #8368 [Verbose] > │ ()                                                                           │
00:01:43 #8369 [Verbose] > │                                                                              │
00:01:43 #8370 [Verbose] > │                                                                              │
00:01:43 #8371 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:43 #8372 [Verbose] >
00:01:43 #8373 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:43 #8374 [Verbose] > // // test
00:01:43 #8375 [Verbose] >
00:01:43 #8376 [Verbose] > new_infinite_stream print_and_return
00:01:43 #8377 [Verbose] > |> item 4i32
00:01:43 #8378 [Verbose] > |> _assert_eq 4i32
00:01:43 #8379 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-1225-2596-252d394bf026/main.spi
00:01:43 #8380 [Verbose] >
00:01:43 #8381 [Verbose] > ╭─[ 278.76ms - stdout ]────────────────────────────────────────────────────────╮
00:01:43 #8382 [Verbose] > │ let rec method0 () : unit =                                                  │
00:01:43 #8383 [Verbose] > │     printfn $"print_and_return / x: {0}"                                     │
00:01:43 #8384 [Verbose] > │     printfn $"print_and_return / x: {1}"                                     │
00:01:43 #8385 [Verbose] > │     printfn $"print_and_return / x: {2}"                                     │
00:01:43 #8386 [Verbose] > │     printfn $"print_and_return / x: {3}"                                     │
00:01:43 #8387 [Verbose] > │     printfn $"print_and_return / x: {4}"                                     │
00:01:43 #8388 [Verbose] > │     let v0 : string = $"%A{4}"                                               │
00:01:43 #8389 [Verbose] > │     System.Console.WriteLine v0                                              │
00:01:43 #8390 [Verbose] > │     let v1 : string = $"__expect / actual: %A{4} / expected: %A{4}"          │
00:01:43 #8391 [Verbose] > │     ()                                                                       │
00:01:43 #8392 [Verbose] > │ method0()                                                                    │
00:01:43 #8393 [Verbose] > │                                                                              │
00:01:43 #8394 [Verbose] > │ print_and_return / x: 0                                                      │
00:01:43 #8395 [Verbose] > │ print_and_return / x: 1                                                      │
00:01:43 #8396 [Verbose] > │ print_and_return / x: 2                                                      │
00:01:43 #8397 [Verbose] > │ print_and_return / x: 3                                                      │
00:01:43 #8398 [Verbose] > │ print_and_return / x: 4                                                      │
00:01:43 #8399 [Verbose] > │ 4                                                                            │
00:01:43 #8400 [Verbose] > │                                                                              │
00:01:43 #8401 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:43 #8402 [Verbose] >
00:01:43 #8403 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:43 #8404 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:43 #8405 [Verbose] > │ ## new_finite_stream                                                         │
00:01:43 #8406 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:43 #8407 [Verbose] >
00:01:43 #8408 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:43 #8409 [Verbose] > inl new_finite_stream fn max =
00:01:43 #8410 [Verbose] >     inl rec loop n =
00:01:43 #8411 [Verbose] >         if n >= max
00:01:43 #8412 [Verbose] >         then StreamNil
00:01:43 #8413 [Verbose] >         else StreamCons (fn n, fun () => loop (n + 1))
00:01:43 #8414 [Verbose] >     loop 0
00:01:43 #8415 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-1254-5401-55ecc6f81018/main.spi
00:01:43 #8416 [Verbose] >
00:01:43 #8417 [Verbose] > ╭─[ 161.43ms - stdout ]────────────────────────────────────────────────────────╮
00:01:43 #8418 [Verbose] > │ ()                                                                           │
00:01:43 #8419 [Verbose] > │                                                                              │
00:01:43 #8420 [Verbose] > │                                                                              │
00:01:43 #8421 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:43 #8422 [Verbose] >
00:01:43 #8423 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:43 #8424 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:43 #8425 [Verbose] > │ ## memoize                                                                   │
00:01:43 #8426 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:43 #8427 [Verbose] >
00:01:43 #8428 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:43 #8429 [Verbose] > union memoized_stream t =
00:01:43 #8430 [Verbose] >     | NotComputed : () -> stream t
00:01:43 #8431 [Verbose] >     | Computed : stream t
00:01:43 #8432 [Verbose] >
00:01:43 #8433 [Verbose] > inl memoize s =
00:01:43 #8434 [Verbose] >     inl rec body s =
00:01:43 #8435 [Verbose] >         inl state = mut (NotComputed s)
00:01:43 #8436 [Verbose] >         fun () =>
00:01:43 #8437 [Verbose] >             match *state with
00:01:43 #8438 [Verbose] >             | Computed x => x
00:01:43 #8439 [Verbose] >             | NotComputed fn =>
00:01:43 #8440 [Verbose] >                 inl new_state =
00:01:43 #8441 [Verbose] >                     match fn () with
00:01:43 #8442 [Verbose] >                     | StreamNil => StreamNil
00:01:43 #8443 [Verbose] >                     | StreamCons (x, fn) => StreamCons (x, loop fn)
00:01:43 #8444 [Verbose] >                 state <- Computed new_state
00:01:43 #8445 [Verbose] >                 new_state
00:01:43 #8446 [Verbose] >     and inl loop s' = join_body_unit body s s'
00:01:43 #8447 [Verbose] >     loop (fun () => s)
00:01:43 #8448 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-1270-7062-7ab8ea7e70c8/main.spi
00:01:43 #8449 [Verbose] >
00:01:43 #8450 [Verbose] > ╭─[ 176.14ms - stdout ]────────────────────────────────────────────────────────╮
00:01:43 #8451 [Verbose] > │ ()                                                                           │
00:01:43 #8452 [Verbose] > │                                                                              │
00:01:43 #8453 [Verbose] > │                                                                              │
00:01:43 #8454 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:43 #8455 [Verbose] >
00:01:43 #8456 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:43 #8457 [Verbose] > // // test
00:01:43 #8458 [Verbose] >
00:01:43 #8459 [Verbose] > inl memo_stream = new_finite_stream print_and_return 10 |> memoize
00:01:43 #8460 [Verbose] >
00:01:43 #8461 [Verbose] > memo_stream ()
00:01:43 #8462 [Verbose] > |> item 3i32
00:01:43 #8463 [Verbose] > |> _assert_eq 3i32
00:01:43 #8464 [Verbose] >
00:01:43 #8465 [Verbose] > memo_stream ()
00:01:43 #8466 [Verbose] > |> item 5i32
00:01:43 #8467 [Verbose] > |> _assert_eq 5i32
00:01:43 #8468 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-1288-8810-87e5a7ae3c09/main.spi
00:01:44 #8469 [Verbose] >
00:01:44 #8470 [Verbose] > ╭─[ 8.13s - stdout ]───────────────────────────────────────────────────────────╮
00:01:44 #8471 [Verbose] > │ type UH0 =                                                                   │
00:01:44 #8472 [Verbose] > │     | UH0_0 of string * string * string * UH0                                │
00:01:44 #8473 [Verbose] > │     | UH0_1                                                                  │
00:01:44 #8474 [Verbose] > │ and Mut0 = {mutable l0 : uint64}                                             │
00:01:44 #8475 [Verbose] > │ and UH1 =                                                                    │
00:01:44 #8476 [Verbose] > │     | UH1_0 of int32 * string * (struct (string * string) -> string) * UH1   │
00:01:44 #8477 [Verbose] > │     | UH1_1                                                                  │
00:01:44 #8478 [Verbose] > │ and Mut1 = {mutable l0 : int32}                                              │
00:01:44 #8479 [Verbose] > │ and UH2 =                                                                    │
00:01:44 #8480 [Verbose] > │     | UH2_0 of string * UH2                                                  │
00:01:44 #8481 [Verbose] > │     | UH2_1                                                                  │
00:01:44 #8482 [Verbose] > │ and [<Struct>] US0 =                                                         │
00:01:44 #8483 [Verbose] > │     | US0_0                                                                  │
00:01:44 #8484 [Verbose] > │     | US0_1 of f1_0 : System.ConsoleColor                                    │
00:01:44 #8485 [Verbose] > │ and UH3 =                                                                    │
00:01:44 #8486 [Verbose] > │     | UH3_0 of int64 * int64 * UH3                                           │
00:01:44 #8487 [Verbose] > │     | UH3_1                                                                  │
00:01:44 #8488 [Verbose] > │ and Mut2 = {mutable l0 : uint64; mutable l1 : UH3; mutable l2 : int64}       │
00:01:44 #8489 [Verbose] > │ and UH4 =                                                                    │
00:01:44 #8490 [Verbose] > │     | UH4_0 of UH2 * US0 * UH4                                               │
00:01:44 #8491 [Verbose] > │     | UH4_1                                                                  │
00:01:44 #8492 [Verbose] > │ and [<Struct>] US1 =                                                         │
00:01:44 #8493 [Verbose] > │     | US1_0                                                                  │
00:01:44 #8494 [Verbose] > │     | US1_1 of f1_0 : int64                                                  │
00:01:44 #8495 [Verbose] > │ and UH5 =                                                                    │
00:01:44 #8496 [Verbose] > │     | UH5_0 of int32 * int64 * UH5                                           │
00:01:44 #8497 [Verbose] > │     | UH5_1                                                                  │
00:01:44 #8498 [Verbose] > │ and Mut3 = {mutable l0 : uint64; mutable l1 : UH5; mutable l2 : int32}       │
00:01:44 #8499 [Verbose] > │ and UH6 =                                                                    │
00:01:44 #8500 [Verbose] > │     | UH6_0 of int32 * string * UH6                                          │
00:01:44 #8501 [Verbose] > │     | UH6_1                                                                  │
00:01:44 #8502 [Verbose] > │ let rec method2 (v0 : UH0, v1 : uint64) : uint64 =                           │
00:01:44 #8503 [Verbose] > │     match v0 with                                                            │
00:01:44 #8504 [Verbose] > │     | UH0_0(v2, v3, v4, v5) -> (* Cons *)                                    │
00:01:44 #8505 [Verbose] > │         let v6 : uint64 = v1 + 1UL                                           │
00:01:44 #8506 [Verbose] > │         method2(v5, v6)                                                      │
00:01:44 #8507 [Verbose] > │     | UH0_1 -> (* Nil *)                                                     │
00:01:44 #8508 [Verbose] > │         v1                                                                   │
00:01:44 #8509 [Verbose] > │ and method3 (v0 : (struct (string * string * string) []), v1 : UH0, v2 :     │
00:01:44 #8510 [Verbose] > │ uint64) : uint64 =                                                           │
00:01:44 #8511 [Verbose] > │     match v1 with                                                            │
00:01:44 #8512 [Verbose] > │     | UH0_0(v3, v4, v5, v6) -> (* Cons *)                                    │
00:01:44 #8513 [Verbose] > │         v0.[int v2] <- struct (v3, v4, v5)                                   │
00:01:44 #8514 [Verbose] > │         let v7 : uint64 = v2 + 1UL                                           │
00:01:44 #8515 [Verbose] > │         method3(v0, v6, v7)                                                  │
00:01:44 #8516 [Verbose] > │     | UH0_1 -> (* Nil *)                                                     │
00:01:44 #8517 [Verbose] > │         v2                                                                   │
00:01:44 #8518 [Verbose] > │ and method1 (v0 : UH0) : (struct (string * string * string) []) =            │
00:01:44 #8519 [Verbose] > │     let v1 : uint64 = 0UL                                                    │
00:01:44 #8520 [Verbose] > │     let v2 : uint64 = method2(v0, v1)                                        │
00:01:44 #8521 [Verbose] > │     let v3 : (struct (string * string * string) []) =                        │
00:01:44 #8522 [Verbose] > │ Array.zeroCreate<struct (string * string * string)>                          │
00:01:44 #8523 [Verbose] > │ (System.Convert.ToInt32(v2))                                                 │
00:01:44 #8524 [Verbose] > │     let v4 : uint64 = 0UL                                                    │
00:01:44 #8525 [Verbose] > │     let v5 : uint64 = method3(v3, v0, v4)                                    │
00:01:44 #8526 [Verbose] > │     v3                                                                       │
00:01:44 #8527 [Verbose] > │ and method4 (v0 : uint64, v1 : Mut0) : bool =                                │
00:01:44 #8528 [Verbose] > │     let v2 : uint64 = v1.l0                                                  │
00:01:44 #8529 [Verbose] > │     let v3 : bool = v2 < v0                                                  │
00:01:44 #8530 [Verbose] > │     v3                                                                       │
00:01:44 #8531 [Verbose] > │ and closure1 () struct (v0 : string, v1 : string) : string =                 │
00:01:44 #8532 [Verbose] > │     v0                                                                       │
00:01:44 #8533 [Verbose] > │ and closure2 () struct (v0 : string, v1 : string) : string =                 │
00:01:44 #8534 [Verbose] > │     v1                                                                       │
00:01:44 #8535 [Verbose] > │ and method6 (v0 : UH1, v1 : uint64) : uint64 =                               │
00:01:44 #8536 [Verbose] > │     match v0 with                                                            │
00:01:44 #8537 [Verbose] > │     | UH1_0(v2, v3, v4, v5) -> (* Cons *)                                    │
00:01:44 #8538 [Verbose] > │         let v6 : uint64 = v1 + 1UL                                           │
00:01:44 #8539 [Verbose] > │         method6(v5, v6)                                                      │
00:01:44 #8540 [Verbose] > │     | UH1_1 -> (* Nil *)                                                     │
00:01:44 #8541 [Verbose] > │         v1                                                                   │
00:01:44 #8542 [Verbose] > │ and method7 (v0 : (struct (int32 * string * (struct (string * string) ->     │
00:01:44 #8543 [Verbose] > │ string)) []), v1 : UH1, v2 : uint64) : uint64 =                              │
00:01:44 #8544 [Verbose] > │     match v1 with                                                            │
00:01:44 #8545 [Verbose] > │     | UH1_0(v3, v4, v5, v6) -> (* Cons *)                                    │
00:01:44 #8546 [Verbose] > │         v0.[int v2] <- struct (v3, v4, v5)                                   │
00:01:44 #8547 [Verbose] > │         let v7 : uint64 = v2 + 1UL                                           │
00:01:44 #8548 [Verbose] > │         method7(v0, v6, v7)                                                  │
00:01:44 #8549 [Verbose] > │     | UH1_1 -> (* Nil *)                                                     │
00:01:44 #8550 [Verbose] > │         v2                                                                   │
00:01:44 #8551 [Verbose] > │ and method5 (v0 : UH1) : (struct (int32 * string * (struct (string * string) │
00:01:44 #8552 [Verbose] > │ -> string)) []) =                                                            │
00:01:44 #8553 [Verbose] > │     let v1 : uint64 = 0UL                                                    │
00:01:44 #8554 [Verbose] > │     let v2 : uint64 = method6(v0, v1)                                        │
00:01:44 #8555 [Verbose] > │     let v3 : (struct (int32 * string * (struct (string * string) -> string)) │
00:01:44 #8556 [Verbose] > │ []) = Array.zeroCreate<struct (int32 * string * (struct (string * string) -> │
00:01:44 #8557 [Verbose] > │ string))> (System.Convert.ToInt32(v2))                                       │
00:01:44 #8558 [Verbose] > │     let v4 : uint64 = 0UL                                                    │
00:01:44 #8559 [Verbose] > │     let v5 : uint64 = method7(v3, v0, v4)                                    │
00:01:44 #8560 [Verbose] > │     v3                                                                       │
00:01:44 #8561 [Verbose] > │ and method8 (v0 : Mut1) : bool =                                             │
00:01:44 #8562 [Verbose] > │     let v1 : int32 = v0.l0                                                   │
00:01:44 #8563 [Verbose] > │     let v2 : bool = v1 < 2000001                                             │
00:01:44 #8564 [Verbose] > │     v2                                                                       │
00:01:44 #8565 [Verbose] > │ and closure3 (v0 : string, v1 : string, v2 : (struct (string * string) ->    │
00:01:44 #8566 [Verbose] > │ string)) (v3 : int32) : string =                                             │
00:01:44 #8567 [Verbose] > │     v2 struct (v0, v1)                                                       │
00:01:44 #8568 [Verbose] > │ and method9 (v0 : string, v1 : (string []), v2 : uint64) : bool =            │
00:01:44 #8569 [Verbose] > │     let v3 : uint64 = System.Convert.ToUInt64 v1.Length                      │
00:01:44 #8570 [Verbose] > │     let v4 : bool = v2 < v3                                                  │
00:01:44 #8571 [Verbose] > │     if v4 then                                                               │
00:01:44 #8572 [Verbose] > │         let v5 : string = v1.[int v2]                                        │
00:01:44 #8573 [Verbose] > │         let v6 : bool = v0 = v5                                              │
00:01:44 #8574 [Verbose] > │         if v6 then                                                           │
00:01:44 #8575 [Verbose] > │             let v7 : uint64 = v2 + 1UL                                       │
00:01:44 #8576 [Verbose] > │             method9(v0, v1, v7)                                              │
00:01:44 #8577 [Verbose] > │         else                                                                 │
00:01:44 #8578 [Verbose] > │             false                                                            │
00:01:44 #8579 [Verbose] > │     else                                                                     │
00:01:44 #8580 [Verbose] > │         true                                                                 │
00:01:44 #8581 [Verbose] > │ and method10 (v0 : uint64, v1 : Mut2) : bool =                               │
00:01:44 #8582 [Verbose] > │     let v2 : uint64 = v1.l0                                                  │
00:01:44 #8583 [Verbose] > │     let v3 : bool = v2 < v0                                                  │
00:01:44 #8584 [Verbose] > │     v3                                                                       │
00:01:44 #8585 [Verbose] > │ and method11 (v0 : UH3, v1 : UH3) : UH3 =                                    │
00:01:44 #8586 [Verbose] > │     match v0 with                                                            │
00:01:44 #8587 [Verbose] > │     | UH3_0(v2, v3, v4) -> (* Cons *)                                        │
00:01:44 #8588 [Verbose] > │         let v5 : UH3 = UH3_0(v2, v3, v1)                                     │
00:01:44 #8589 [Verbose] > │         method11(v4, v5)                                                     │
00:01:44 #8590 [Verbose] > │     | UH3_1 -> (* Nil *)                                                     │
00:01:44 #8591 [Verbose] > │         v1                                                                   │
00:01:44 #8592 [Verbose] > │ and method13 (v0 : UH3, v1 : int32) : int32 =                                │
00:01:44 #8593 [Verbose] > │     match v0 with                                                            │
00:01:44 #8594 [Verbose] > │     | UH3_0(v2, v3, v4) -> (* Cons *)                                        │
00:01:44 #8595 [Verbose] > │         let v5 : int32 = v1 + 1                                              │
00:01:44 #8596 [Verbose] > │         method13(v4, v5)                                                     │
00:01:44 #8597 [Verbose] > │     | UH3_1 -> (* Nil *)                                                     │
00:01:44 #8598 [Verbose] > │         v1                                                                   │
00:01:44 #8599 [Verbose] > │ and method14 (v0 : (struct (int64 * int64) []), v1 : UH3, v2 : int32) :      │
00:01:44 #8600 [Verbose] > │ int32 =                                                                      │
00:01:44 #8601 [Verbose] > │     match v1 with                                                            │
00:01:44 #8602 [Verbose] > │     | UH3_0(v3, v4, v5) -> (* Cons *)                                        │
00:01:44 #8603 [Verbose] > │         v0.[int v2] <- struct (v3, v4)                                       │
00:01:44 #8604 [Verbose] > │         let v6 : int32 = v2 + 1                                              │
00:01:44 #8605 [Verbose] > │         method14(v0, v5, v6)                                                 │
00:01:44 #8606 [Verbose] > │     | UH3_1 -> (* Nil *)                                                     │
00:01:44 #8607 [Verbose] > │         v2                                                                   │
00:01:44 #8608 [Verbose] > │ and method12 (v0 : UH3) : (struct (int64 * int64) []) =                      │
00:01:44 #8609 [Verbose] > │     let v1 : int32 = 0                                                       │
00:01:44 #8610 [Verbose] > │     let v2 : int32 = method13(v0, v1)                                        │
00:01:44 #8611 [Verbose] > │     let v3 : (struct (int64 * int64) []) = Array.zeroCreate<struct (int64 *  │
00:01:44 #8612 [Verbose] > │ int64)> (v2)                                                                 │
00:01:44 #8613 [Verbose] > │     let v4 : int32 = 0                                                       │
00:01:44 #8614 [Verbose] > │     let v5 : int32 = method14(v3, v0, v4)                                    │
00:01:44 #8615 [Verbose] > │     v3                                                                       │
00:01:44 #8616 [Verbose] > │ and method15 (v0 : int32, v1 : Mut1) : bool =                                │
00:01:44 #8617 [Verbose] > │     let v2 : int32 = v1.l0                                                   │
00:01:44 #8618 [Verbose] > │     let v3 : bool = v2 < v0                                                  │
00:01:44 #8619 [Verbose] > │     v3                                                                       │
00:01:44 #8620 [Verbose] > │ and closure4 () struct (v0 : int64, v1 : int64) : int64 =                    │
00:01:44 #8621 [Verbose] > │     v1                                                                       │
00:01:44 #8622 [Verbose] > │ and method17 (v0 : UH4, v1 : uint64) : uint64 =                              │
00:01:44 #8623 [Verbose] > │     match v0 with                                                            │
00:01:44 #8624 [Verbose] > │     | UH4_0(v2, v3, v4) -> (* Cons *)                                        │
00:01:44 #8625 [Verbose] > │         let v5 : uint64 = v1 + 1UL                                           │
00:01:44 #8626 [Verbose] > │         method17(v4, v5)                                                     │
00:01:44 #8627 [Verbose] > │     | UH4_1 -> (* Nil *)                                                     │
00:01:44 #8628 [Verbose] > │         v1                                                                   │
00:01:44 #8629 [Verbose] > │ and method18 (v0 : (struct (UH2 * US0) []), v1 : UH4, v2 : uint64) : uint64  │
00:01:44 #8630 [Verbose] > │ =                                                                            │
00:01:44 #8631 [Verbose] > │     match v1 with                                                            │
00:01:44 #8632 [Verbose] > │     | UH4_0(v3, v4, v5) -> (* Cons *)                                        │
00:01:44 #8633 [Verbose] > │         v0.[int v2] <- struct (v3, v4)                                       │
00:01:44 #8634 [Verbose] > │         let v6 : uint64 = v2 + 1UL                                           │
00:01:44 #8635 [Verbose] > │         method18(v0, v5, v6)                                                 │
00:01:44 #8636 [Verbose] > │     | UH4_1 -> (* Nil *)                                                     │
00:01:44 #8637 [Verbose] > │         v2                                                                   │
00:01:44 #8638 [Verbose] > │ and method16 (v0 : UH4) : (struct (UH2 * US0) []) =                          │
00:01:44 #8639 [Verbose] > │     let v1 : uint64 = 0UL                                                    │
00:01:44 #8640 [Verbose] > │     let v2 : uint64 = method17(v0, v1)                                       │
00:01:44 #8641 [Verbose] > │     let v3 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * US0)>  │
00:01:44 #8642 [Verbose] > │ (System.Convert.ToInt32(v2))                                                 │
00:01:44 #8643 [Verbose] > │     let v4 : uint64 = 0UL                                                    │
00:01:44 #8644 [Verbose] > │     let v5 : uint64 = method18(v3, v0, v4)                                   │
00:01:44 #8645 [Verbose] > │     v3                                                                       │
00:01:44 #8646 [Verbose] > │ and method20 (v0 : UH2, v1 : uint64) : uint64 =                              │
00:01:44 #8647 [Verbose] > │     match v0 with                                                            │
00:01:44 #8648 [Verbose] > │     | UH2_0(v2, v3) -> (* Cons *)                                            │
00:01:44 #8649 [Verbose] > │         let v4 : uint64 = v1 + 1UL                                           │
00:01:44 #8650 [Verbose] > │         method20(v3, v4)                                                     │
00:01:44 #8651 [Verbose] > │     | UH2_1 -> (* Nil *)                                                     │
00:01:44 #8652 [Verbose] > │         v1                                                                   │
00:01:44 #8653 [Verbose] > │ and method21 (v0 : (string []), v1 : UH2, v2 : uint64) : uint64 =            │
00:01:44 #8654 [Verbose] > │     match v1 with                                                            │
00:01:44 #8655 [Verbose] > │     | UH2_0(v3, v4) -> (* Cons *)                                            │
00:01:44 #8656 [Verbose] > │         v0.[int v2] <- v3                                                    │
00:01:44 #8657 [Verbose] > │         let v5 : uint64 = v2 + 1UL                                           │
00:01:44 #8658 [Verbose] > │         method21(v0, v4, v5)                                                 │
00:01:44 #8659 [Verbose] > │     | UH2_1 -> (* Nil *)                                                     │
00:01:44 #8660 [Verbose] > │         v2                                                                   │
00:01:44 #8661 [Verbose] > │ and method19 (v0 : UH2) : (string []) =                                      │
00:01:44 #8662 [Verbose] > │     let v1 : uint64 = 0UL                                                    │
00:01:44 #8663 [Verbose] > │     let v2 : uint64 = method20(v0, v1)                                       │
00:01:44 #8664 [Verbose] > │     let v3 : (string []) = Array.zeroCreate<string>                          │
00:01:44 #8665 [Verbose] > │ (System.Convert.ToInt32(v2))                                                 │
00:01:44 #8666 [Verbose] > │     let v4 : uint64 = 0UL                                                    │
00:01:44 #8667 [Verbose] > │     let v5 : uint64 = method21(v3, v0, v4)                                   │
00:01:44 #8668 [Verbose] > │     v3                                                                       │
00:01:44 #8669 [Verbose] > │ and closure5 () (v0 : int64) : US1 =                                         │
00:01:44 #8670 [Verbose] > │     US1_1(v0)                                                                │
00:01:44 #8671 [Verbose] > │ and method22 (v0 : uint64, v1 : Mut3) : bool =                               │
00:01:44 #8672 [Verbose] > │     let v2 : uint64 = v1.l0                                                  │
00:01:44 #8673 [Verbose] > │     let v3 : bool = v2 < v0                                                  │
00:01:44 #8674 [Verbose] > │     v3                                                                       │
00:01:44 #8675 [Verbose] > │ and method23 (v0 : UH5, v1 : UH5) : UH5 =                                    │
00:01:44 #8676 [Verbose] > │     match v0 with                                                            │
00:01:44 #8677 [Verbose] > │     | UH5_0(v2, v3, v4) -> (* Cons *)                                        │
00:01:44 #8678 [Verbose] > │         let v5 : UH5 = UH5_0(v2, v3, v1)                                     │
00:01:44 #8679 [Verbose] > │         method23(v4, v5)                                                     │
00:01:44 #8680 [Verbose] > │     | UH5_1 -> (* Nil *)                                                     │
00:01:44 #8681 [Verbose] > │         v1                                                                   │
00:01:44 #8682 [Verbose] > │ and method25 (v0 : UH5, v1 : int32) : int32 =                                │
00:01:44 #8683 [Verbose] > │     match v0 with                                                            │
00:01:44 #8684 [Verbose] > │     | UH5_0(v2, v3, v4) -> (* Cons *)                                        │
00:01:44 #8685 [Verbose] > │         let v5 : int32 = v1 + 1                                              │
00:01:44 #8686 [Verbose] > │         method25(v4, v5)                                                     │
00:01:44 #8687 [Verbose] > │     | UH5_1 -> (* Nil *)                                                     │
00:01:44 #8688 [Verbose] > │         v1                                                                   │
00:01:44 #8689 [Verbose] > │ and method26 (v0 : (struct (int32 * int64) []), v1 : UH5, v2 : int32) :      │
00:01:44 #8690 [Verbose] > │ int32 =                                                                      │
00:01:44 #8691 [Verbose] > │     match v1 with                                                            │
00:01:44 #8692 [Verbose] > │     | UH5_0(v3, v4, v5) -> (* Cons *)                                        │
00:01:44 #8693 [Verbose] > │         v0.[int v2] <- struct (v3, v4)                                       │
00:01:44 #8694 [Verbose] > │         let v6 : int32 = v2 + 1                                              │
00:01:44 #8695 [Verbose] > │         method26(v0, v5, v6)                                                 │
00:01:44 #8696 [Verbose] > │     | UH5_1 -> (* Nil *)                                                     │
00:01:44 #8697 [Verbose] > │         v2                                                                   │
00:01:44 #8698 [Verbose] > │ and method24 (v0 : UH5) : (struct (int32 * int64) []) =                      │
00:01:44 #8699 [Verbose] > │     let v1 : int32 = 0                                                       │
00:01:44 #8700 [Verbose] > │     let v2 : int32 = method25(v0, v1)                                        │
00:01:44 #8701 [Verbose] > │     let v3 : (struct (int32 * int64) []) = Array.zeroCreate<struct (int32 *  │
00:01:44 #8702 [Verbose] > │ int64)> (v2)                                                                 │
00:01:44 #8703 [Verbose] > │     let v4 : int32 = 0                                                       │
00:01:44 #8704 [Verbose] > │     let v5 : int32 = method26(v3, v0, v4)                                    │
00:01:44 #8705 [Verbose] > │     v3                                                                       │
00:01:44 #8706 [Verbose] > │ and method27 (v0 : UH2, v1 : UH6, v2 : int32) : struct (UH6 * int32) =       │
00:01:44 #8707 [Verbose] > │     match v0 with                                                            │
00:01:44 #8708 [Verbose] > │     | UH2_0(v3, v4) -> (* Cons *)                                            │
00:01:44 #8709 [Verbose] > │         let v5 : int32 = v2 + 1                                              │
00:01:44 #8710 [Verbose] > │         let v6 : UH6 = UH6_0(v2, v3, v1)                                     │
00:01:44 #8711 [Verbose] > │         method27(v4, v6, v5)                                                 │
00:01:44 #8712 [Verbose] > │     | UH2_1 -> (* Nil *)                                                     │
00:01:44 #8713 [Verbose] > │         struct (v1, v2)                                                      │
00:01:44 #8714 [Verbose] > │ and method28 (v0 : UH6, v1 : UH6) : UH6 =                                    │
00:01:44 #8715 [Verbose] > │     match v0 with                                                            │
00:01:44 #8716 [Verbose] > │     | UH6_0(v2, v3, v4) -> (* Cons *)                                        │
00:01:44 #8717 [Verbose] > │         let v5 : UH6 = UH6_0(v2, v3, v1)                                     │
00:01:44 #8718 [Verbose] > │         method28(v4, v5)                                                     │
00:01:44 #8719 [Verbose] > │     | UH6_1 -> (* Nil *)                                                     │
00:01:44 #8720 [Verbose] > │         v1                                                                   │
00:01:44 #8721 [Verbose] > │ and method29 (v0 : Map<int32, int64>, v1 : UH6, v2 : UH2) : UH2 =            │
00:01:44 #8722 [Verbose] > │     match v1 with                                                            │
00:01:44 #8723 [Verbose] > │     | UH6_0(v3, v4, v5) -> (* Cons *)                                        │
00:01:44 #8724 [Verbose] > │         let v6 : UH2 = method29(v0, v5, v2)                                  │
00:01:44 #8725 [Verbose] > │         let v7 : int64 = v0.[v3]                                             │
00:01:44 #8726 [Verbose] > │         let v8 : int32 = int32 v7                                            │
00:01:44 #8727 [Verbose] > │         let v9 : string = v4.PadRight v8                                     │
00:01:44 #8728 [Verbose] > │         UH2_0(v9, v6)                                                        │
00:01:44 #8729 [Verbose] > │     | UH6_1 -> (* Nil *)                                                     │
00:01:44 #8730 [Verbose] > │         v2                                                                   │
00:01:44 #8731 [Verbose] > │ and method31 (v0 : UH2, v1 : int32) : int32 =                                │
00:01:44 #8732 [Verbose] > │     match v0 with                                                            │
00:01:44 #8733 [Verbose] > │     | UH2_0(v2, v3) -> (* Cons *)                                            │
00:01:44 #8734 [Verbose] > │         let v4 : int32 = v1 + 1                                              │
00:01:44 #8735 [Verbose] > │         method31(v3, v4)                                                     │
00:01:44 #8736 [Verbose] > │     | UH2_1 -> (* Nil *)                                                     │
00:01:44 #8737 [Verbose] > │         v1                                                                   │
00:01:44 #8738 [Verbose] > │ and method32 (v0 : (string []), v1 : UH2, v2 : int32) : int32 =              │
00:01:44 #8739 [Verbose] > │     match v1 with                                                            │
00:01:44 #8740 [Verbose] > │     | UH2_0(v3, v4) -> (* Cons *)                                            │
00:01:44 #8741 [Verbose] > │         v0.[int v2] <- v3                                                    │
00:01:44 #8742 [Verbose] > │         let v5 : int32 = v2 + 1                                              │
00:01:44 #8743 [Verbose] > │         method32(v0, v4, v5)                                                 │
00:01:44 #8744 [Verbose] > │     | UH2_1 -> (* Nil *)                                                     │
00:01:44 #8745 [Verbose] > │         v2                                                                   │
00:01:44 #8746 [Verbose] > │ and method30 (v0 : UH2) : (string []) =                                      │
00:01:44 #8747 [Verbose] > │     let v1 : int32 = 0                                                       │
00:01:44 #8748 [Verbose] > │     let v2 : int32 = method31(v0, v1)                                        │
00:01:44 #8749 [Verbose] > │     let v3 : (string []) = Array.zeroCreate<string> (v2)                     │
00:01:44 #8750 [Verbose] > │     let v4 : int32 = 0                                                       │
00:01:44 #8751 [Verbose] > │     let v5 : int32 = method32(v3, v0, v4)                                    │
00:01:44 #8752 [Verbose] > │     v3                                                                       │
00:01:44 #8753 [Verbose] > │ and method34 (v0 : UH5, v1 : uint64) : uint64 =                              │
00:01:44 #8754 [Verbose] > │     match v0 with                                                            │
00:01:44 #8755 [Verbose] > │     | UH5_0(v2, v3, v4) -> (* Cons *)                                        │
00:01:44 #8756 [Verbose] > │         let v5 : uint64 = v1 + 1UL                                           │
00:01:44 #8757 [Verbose] > │         method34(v4, v5)                                                     │
00:01:44 #8758 [Verbose] > │     | UH5_1 -> (* Nil *)                                                     │
00:01:44 #8759 [Verbose] > │         v1                                                                   │
00:01:44 #8760 [Verbose] > │ and method35 (v0 : (struct (int32 * int64) []), v1 : UH5, v2 : uint64) :     │
00:01:44 #8761 [Verbose] > │ uint64 =                                                                     │
00:01:44 #8762 [Verbose] > │     match v1 with                                                            │
00:01:44 #8763 [Verbose] > │     | UH5_0(v3, v4, v5) -> (* Cons *)                                        │
00:01:44 #8764 [Verbose] > │         v0.[int v2] <- struct (v3, v4)                                       │
00:01:44 #8765 [Verbose] > │         let v6 : uint64 = v2 + 1UL                                           │
00:01:44 #8766 [Verbose] > │         method35(v0, v5, v6)                                                 │
00:01:44 #8767 [Verbose] > │     | UH5_1 -> (* Nil *)                                                     │
00:01:44 #8768 [Verbose] > │         v2                                                                   │
00:01:44 #8769 [Verbose] > │ and method33 (v0 : UH5) : (struct (int32 * int64) []) =                      │
00:01:44 #8770 [Verbose] > │     let v1 : uint64 = 0UL                                                    │
00:01:44 #8771 [Verbose] > │     let v2 : uint64 = method34(v0, v1)                                       │
00:01:44 #8772 [Verbose] > │     let v3 : (struct (int32 * int64) []) = Array.zeroCreate<struct (int32 *  │
00:01:44 #8773 [Verbose] > │ int64)> (System.Convert.ToInt32(v2))                                         │
00:01:44 #8774 [Verbose] > │     let v4 : uint64 = 0UL                                                    │
00:01:44 #8775 [Verbose] > │     let v5 : uint64 = method35(v3, v0, v4)                                   │
00:01:44 #8776 [Verbose] > │     v3                                                                       │
00:01:44 #8777 [Verbose] > │ and closure6 () struct (v0 : int32, v1 : int64) : int64 =                    │
00:01:44 #8778 [Verbose] > │     v1                                                                       │
00:01:44 #8779 [Verbose] > │ and closure0 () () : unit =                                                  │
00:01:44 #8780 [Verbose] > │     let v0 : (unit -> unit) = closure0()                                     │
00:01:44 #8781 [Verbose] > │     let v1 : string = nameof v0                                              │
00:01:44 #8782 [Verbose] > │     let v2 : string = ""                                                     │
00:01:44 #8783 [Verbose] > │     System.Console.WriteLine v2                                              │
00:01:44 #8784 [Verbose] > │     System.Console.WriteLine v2                                              │
00:01:44 #8785 [Verbose] > │     let v3 : string = $"Test: {v1}"                                          │
00:01:44 #8786 [Verbose] > │     System.Console.WriteLine v3                                              │
00:01:44 #8787 [Verbose] > │     let v4 : string = "a"                                                    │
00:01:44 #8788 [Verbose] > │     let v5 : string = "b"                                                    │
00:01:44 #8789 [Verbose] > │     let v6 : UH0 = UH0_1                                                     │
00:01:44 #8790 [Verbose] > │     let v7 : UH0 = UH0_0(v5, v5, v5, v6)                                     │
00:01:44 #8791 [Verbose] > │     let v8 : UH0 = UH0_0(v4, v4, v4, v7)                                     │
00:01:44 #8792 [Verbose] > │     let v9 : (struct (string * string * string) []) = method1(v8)            │
00:01:44 #8793 [Verbose] > │     let v10 : uint64 = System.Convert.ToUInt64 v9.Length                     │
00:01:44 #8794 [Verbose] > │     let v11 : (struct (string * string * string * (int64 [])) []) =          │
00:01:44 #8795 [Verbose] > │ Array.zeroCreate<struct (string * string * string * (int64 []))>             │
00:01:44 #8796 [Verbose] > │ (System.Convert.ToInt32(v10))                                                │
00:01:44 #8797 [Verbose] > │     let v12 : Mut0 = {l0 = 0UL} : Mut0                                       │
00:01:44 #8798 [Verbose] > │     while method4(v10, v12) do                                               │
00:01:44 #8799 [Verbose] > │         let v14 : uint64 = v12.l0                                            │
00:01:44 #8800 [Verbose] > │         let struct (v15 : string, v16 : string, v17 : string) = v9.[int v14] │
00:01:44 #8801 [Verbose] > │         let v18 : string = $"%A{struct (v15, v16)}"                          │
00:01:44 #8802 [Verbose] > │         System.Console.WriteLine v2                                          │
00:01:44 #8803 [Verbose] > │         let v19 : string = $"Solution: {v18}  "                              │
00:01:44 #8804 [Verbose] > │         System.Console.WriteLine v19                                         │
00:01:44 #8805 [Verbose] > │         let v20 : int32 = 0                                                  │
00:01:44 #8806 [Verbose] > │         let v21 : string = "A"                                               │
00:01:44 #8807 [Verbose] > │         let v22 : (struct (string * string) -> string) = closure1()          │
00:01:44 #8808 [Verbose] > │         let v23 : int32 = 1                                                  │
00:01:44 #8809 [Verbose] > │         let v24 : string = "B"                                               │
00:01:44 #8810 [Verbose] > │         let v25 : (struct (string * string) -> string) = closure2()          │
00:01:44 #8811 [Verbose] > │         let v26 : UH1 = UH1_1                                                │
00:01:44 #8812 [Verbose] > │         let v27 : UH1 = UH1_0(v23, v24, v25, v26)                            │
00:01:44 #8813 [Verbose] > │         let v28 : UH1 = UH1_0(v20, v21, v22, v27)                            │
00:01:44 #8814 [Verbose] > │         let v29 : (struct (int32 * string * (struct (string * string) ->     │
00:01:44 #8815 [Verbose] > │ string)) []) = method5(v28)                                                  │
00:01:44 #8816 [Verbose] > │         let v30 : uint64 = System.Convert.ToUInt64 v29.Length                │
00:01:44 #8817 [Verbose] > │         let v31 : (struct (string * int64) []) = Array.zeroCreate<struct     │
00:01:44 #8818 [Verbose] > │ (string * int64)> (System.Convert.ToInt32(v30))                              │
00:01:44 #8819 [Verbose] > │         let v32 : Mut0 = {l0 = 0UL} : Mut0                                   │
00:01:44 #8820 [Verbose] > │         while method4(v30, v32) do                                           │
00:01:44 #8821 [Verbose] > │             let v34 : uint64 = v32.l0                                        │
00:01:44 #8822 [Verbose] > │             let struct (v35 : int32, v36 : string, v37 : (struct (string *   │
00:01:44 #8823 [Verbose] > │ string) -> string)) = v29.[int v34]                                          │
00:01:44 #8824 [Verbose] > │             let mutable result = None                                        │
00:01:44 #8825 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM                                 │
00:01:44 #8826 [Verbose] > │             ()                                                               │
00:01:44 #8827 [Verbose] > │             #endif                                                           │
00:01:44 #8828 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │
00:01:44 #8829 [Verbose] > │             ()                                                               │
00:01:44 #8830 [Verbose] > │             #endif                                                           │
00:01:44 #8831 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │
00:01:44 #8832 [Verbose] > │             System.GC.Collect ()                                             │
00:01:44 #8833 [Verbose] > │             ()                                                               │
00:01:44 #8834 [Verbose] > │             #endif                                                           │
00:01:44 #8835 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │
00:01:44 #8836 [Verbose] > │             System.GC.Collect ()                                             │
00:01:44 #8837 [Verbose] > │             ()                                                               │
00:01:44 #8838 [Verbose] > │             #endif                                                           │
00:01:44 #8839 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │
00:01:44 #8840 [Verbose] > │             System.GC.Collect ()                                             │
00:01:44 #8841 [Verbose] > │             ()                                                               │
00:01:44 #8842 [Verbose] > │             #endif                                                           │
00:01:44 #8843 [Verbose] > │             |> fun x -> result <- Some x                                     │
00:01:44 #8844 [Verbose] > │             result |> Option.get                                             │
00:01:44 #8845 [Verbose] > │             let v38 : (unit -> System.Diagnostics.Stopwatch) =               │
00:01:44 #8846 [Verbose] > │ System.Diagnostics.Stopwatch                                                 │
00:01:44 #8847 [Verbose] > │             let v39 : System.Diagnostics.Stopwatch = v38 ()                  │
00:01:44 #8848 [Verbose] > │             v39.Start ()                                                     │
00:01:44 #8849 [Verbose] > │             let v40 : int64 = v39.ElapsedMilliseconds                        │
00:01:44 #8850 [Verbose] > │             let v41 : (int32 []) = Array.zeroCreate<int32> (2000001)         │
00:01:44 #8851 [Verbose] > │             let v42 : Mut1 = {l0 = 0} : Mut1                                 │
00:01:44 #8852 [Verbose] > │             while method8(v42) do                                            │
00:01:44 #8853 [Verbose] > │                 let v44 : int32 = v42.l0                                     │
00:01:44 #8854 [Verbose] > │                 v41.[int v44] <- v44                                         │
00:01:44 #8855 [Verbose] > │                 let v45 : int32 = v44 + 1                                    │
00:01:44 #8856 [Verbose] > │                 v42.l0 <- v45                                                │
00:01:44 #8857 [Verbose] > │                 ()                                                           │
00:01:44 #8858 [Verbose] > │             let v46 : (int32 -> string) = closure3(v15, v16, v37)            │
00:01:44 #8859 [Verbose] > │             let v47 : (string []) = v41 |> Array.Parallel.map v46            │
00:01:44 #8860 [Verbose] > │             let v48 : int32 = v47.Length                                     │
00:01:44 #8861 [Verbose] > │             let v49 : int32 = v48 - 1                                        │
00:01:44 #8862 [Verbose] > │             let v50 : string = v47.[int v49]                                 │
00:01:44 #8863 [Verbose] > │             let v51 : int64 = v39.ElapsedMilliseconds                        │
00:01:44 #8864 [Verbose] > │             let v52 : int64 = v51 - v40                                      │
00:01:44 #8865 [Verbose] > │             let v53 : string = $"Test case {v35 + 1}. {v36}. Time: {v52}  "  │
00:01:44 #8866 [Verbose] > │             System.Console.WriteLine v53                                     │
00:01:44 #8867 [Verbose] > │             v31.[int v34] <- struct (v50, v52)                               │
00:01:44 #8868 [Verbose] > │             let v54 : uint64 = v34 + 1UL                                     │
00:01:44 #8869 [Verbose] > │             v32.l0 <- v54                                                    │
00:01:44 #8870 [Verbose] > │             ()                                                               │
00:01:44 #8871 [Verbose] > │         let v55 : uint64 = System.Convert.ToUInt64 v31.Length                │
00:01:44 #8872 [Verbose] > │         let v56 : (string []) = Array.zeroCreate<string>                     │
00:01:44 #8873 [Verbose] > │ (System.Convert.ToInt32(v55))                                                │
00:01:44 #8874 [Verbose] > │         let v57 : Mut0 = {l0 = 0UL} : Mut0                                   │
00:01:44 #8875 [Verbose] > │         while method4(v55, v57) do                                           │
00:01:44 #8876 [Verbose] > │             let v59 : uint64 = v57.l0                                        │
00:01:44 #8877 [Verbose] > │             let struct (v60 : string, v61 : int64) = v31.[int v59]           │
00:01:44 #8878 [Verbose] > │             v56.[int v59] <- v60                                             │
00:01:44 #8879 [Verbose] > │             let v62 : uint64 = v59 + 1UL                                     │
00:01:44 #8880 [Verbose] > │             v57.l0 <- v62                                                    │
00:01:44 #8881 [Verbose] > │             ()                                                               │
00:01:44 #8882 [Verbose] > │         let v63 : uint64 = System.Convert.ToUInt64 v56.Length                │
00:01:44 #8883 [Verbose] > │         let v64 : bool = v63 <= 1UL                                          │
00:01:44 #8884 [Verbose] > │         if v64 then                                                          │
00:01:44 #8885 [Verbose] > │             ()                                                               │
00:01:44 #8886 [Verbose] > │         else                                                                 │
00:01:44 #8887 [Verbose] > │             let v65 : string = v56.[int 0UL]                                 │
00:01:44 #8888 [Verbose] > │             let v66 : uint64 = 0UL                                           │
00:01:44 #8889 [Verbose] > │             let v67 : bool = method9(v65, v56, v66)                          │
00:01:44 #8890 [Verbose] > │             if v67 then                                                      │
00:01:44 #8891 [Verbose] > │                 ()                                                           │
00:01:44 #8892 [Verbose] > │             else                                                             │
00:01:44 #8893 [Verbose] > │                 let v68 : string = $"Challenge error: {v56}"                 │
00:01:44 #8894 [Verbose] > │                 failwith<unit> v68                                           │
00:01:44 #8895 [Verbose] > │         let v69 : string = $"%A{v17}"                                        │
00:01:44 #8896 [Verbose] > │         let v70 : (string []) = Array.zeroCreate<string>                     │
00:01:44 #8897 [Verbose] > │ (System.Convert.ToInt32(v55))                                                │
00:01:44 #8898 [Verbose] > │         let v71 : Mut0 = {l0 = 0UL} : Mut0                                   │
00:01:44 #8899 [Verbose] > │         while method4(v55, v71) do                                           │
00:01:44 #8900 [Verbose] > │             let v73 : uint64 = v71.l0                                        │
00:01:44 #8901 [Verbose] > │             let struct (v74 : string, v75 : int64) = v31.[int v73]           │
00:01:44 #8902 [Verbose] > │             v70.[int v73] <- v74                                             │
00:01:44 #8903 [Verbose] > │             let v76 : uint64 = v73 + 1UL                                     │
00:01:44 #8904 [Verbose] > │             v71.l0 <- v76                                                    │
00:01:44 #8905 [Verbose] > │             ()                                                               │
00:01:44 #8906 [Verbose] > │         let v77 : string = v70.[int 0UL]                                     │
00:01:44 #8907 [Verbose] > │         let v78 : string = $"%A{v77}"                                        │
00:01:44 #8908 [Verbose] > │         let v79 : (int64 []) = Array.zeroCreate<int64>                       │
00:01:44 #8909 [Verbose] > │ (System.Convert.ToInt32(v55))                                                │
00:01:44 #8910 [Verbose] > │         let v80 : Mut0 = {l0 = 0UL} : Mut0                                   │
00:01:44 #8911 [Verbose] > │         while method4(v55, v80) do                                           │
00:01:44 #8912 [Verbose] > │             let v82 : uint64 = v80.l0                                        │
00:01:44 #8913 [Verbose] > │             let struct (v83 : string, v84 : int64) = v31.[int v82]           │
00:01:44 #8914 [Verbose] > │             v79.[int v82] <- v84                                             │
00:01:44 #8915 [Verbose] > │             let v85 : uint64 = v82 + 1UL                                     │
00:01:44 #8916 [Verbose] > │             v80.l0 <- v85                                                    │
00:01:44 #8917 [Verbose] > │             ()                                                               │
00:01:44 #8918 [Verbose] > │         v11.[int v14] <- struct (v69, v18, v78, v79)                         │
00:01:44 #8919 [Verbose] > │         let v86 : uint64 = v14 + 1UL                                         │
00:01:44 #8920 [Verbose] > │         v12.l0 <- v86                                                        │
00:01:44 #8921 [Verbose] > │         ()                                                                   │
00:01:44 #8922 [Verbose] > │     let v87 : uint64 = System.Convert.ToUInt64 v11.Length                    │
00:01:44 #8923 [Verbose] > │     let v88 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * US0)> │
00:01:44 #8924 [Verbose] > │ (System.Convert.ToInt32(v87))                                                │
00:01:44 #8925 [Verbose] > │     let v89 : Mut0 = {l0 = 0UL} : Mut0                                       │
00:01:44 #8926 [Verbose] > │     while method4(v87, v89) do                                               │
00:01:44 #8927 [Verbose] > │         let v91 : uint64 = v89.l0                                            │
00:01:44 #8928 [Verbose] > │         let struct (v92 : string, v93 : string, v94 : string, v95 : (int64 [ │
00:01:44 #8929 [Verbose] > │ ])) = v11.[int v91]                                                          │
00:01:44 #8930 [Verbose] > │         let v96 : uint64 = System.Convert.ToUInt64 v95.Length                │
00:01:44 #8931 [Verbose] > │         let v97 : UH3 = UH3_1                                                │
00:01:44 #8932 [Verbose] > │         let v98 : Mut2 = {l0 = 0UL; l1 = v97; l2 = 0L} : Mut2                │
00:01:44 #8933 [Verbose] > │         while method10(v96, v98) do                                          │
00:01:44 #8934 [Verbose] > │             let v100 : uint64 = v98.l0                                       │
00:01:44 #8935 [Verbose] > │             let struct (v101 : UH3, v102 : int64) = v98.l1, v98.l2           │
00:01:44 #8936 [Verbose] > │             let v103 : int64 = v95.[int v100]                                │
00:01:44 #8937 [Verbose] > │             let v104 : int64 = v102 + 1L                                     │
00:01:44 #8938 [Verbose] > │             let v105 : uint64 = v100 + 1UL                                   │
00:01:44 #8939 [Verbose] > │             let v106 : UH3 = UH3_0(v102, v103, v101)                         │
00:01:44 #8940 [Verbose] > │             v98.l0 <- v105                                                   │
00:01:44 #8941 [Verbose] > │             v98.l1 <- v106                                                   │
00:01:44 #8942 [Verbose] > │             v98.l2 <- v104                                                   │
00:01:44 #8943 [Verbose] > │             ()                                                               │
00:01:44 #8944 [Verbose] > │         let struct (v107 : UH3, v108 : int64) = v98.l1, v98.l2               │
00:01:44 #8945 [Verbose] > │         let v109 : UH3 = UH3_1                                               │
00:01:44 #8946 [Verbose] > │         let v110 : UH3 = method11(v107, v109)                                │
00:01:44 #8947 [Verbose] > │         let v111 : (struct (int64 * int64) []) = method12(v110)              │
00:01:44 #8948 [Verbose] > │         let v112 : int32 = v111.Length                                       │
00:01:44 #8949 [Verbose] > │         let v113 : (struct (int64 * int64) []) = Array.zeroCreate<struct     │
00:01:44 #8950 [Verbose] > │ (int64 * int64)> (v112)                                                      │
00:01:44 #8951 [Verbose] > │         let v114 : Mut1 = {l0 = 0} : Mut1                                    │
00:01:44 #8952 [Verbose] > │         while method15(v112, v114) do                                        │
00:01:44 #8953 [Verbose] > │             let v116 : int32 = v114.l0                                       │
00:01:44 #8954 [Verbose] > │             let struct (v117 : int64, v118 : int64) = v111.[int v116]        │
00:01:44 #8955 [Verbose] > │             let v119 : int64 = v117 + 1L                                     │
00:01:44 #8956 [Verbose] > │             v113.[int v116] <- struct (v119, v118)                           │
00:01:44 #8957 [Verbose] > │             let v120 : int32 = v116 + 1                                      │
00:01:44 #8958 [Verbose] > │             v114.l0 <- v120                                                  │
00:01:44 #8959 [Verbose] > │             ()                                                               │
00:01:44 #8960 [Verbose] > │         let v121 : (struct (int64 * int64) -> int64) = closure4()            │
00:01:44 #8961 [Verbose] > │         let v122 : (struct (int64 * int64) []) = v113 |> Array.sortBy v121   │
00:01:44 #8962 [Verbose] > │         let struct (v123 : int64, v124 : int64) = v122.[int 0]               │
00:01:44 #8963 [Verbose] > │         let v125 : string = $"%A{struct (v123, v124)}"                       │
00:01:44 #8964 [Verbose] > │         let v126 : bool = v92 = v94                                          │
00:01:44 #8965 [Verbose] > │         let v131 : US0 =                                                     │
00:01:44 #8966 [Verbose] > │             if v126 then                                                     │
00:01:44 #8967 [Verbose] > │                 let v127 : System.ConsoleColor =                             │
00:01:44 #8968 [Verbose] > │ System.ConsoleColor.DarkGreen                                                │
00:01:44 #8969 [Verbose] > │                 US0_1(v127)                                                  │
00:01:44 #8970 [Verbose] > │             else                                                             │
00:01:44 #8971 [Verbose] > │                 let v129 : System.ConsoleColor = System.ConsoleColor.DarkRed │
00:01:44 #8972 [Verbose] > │                 US0_1(v129)                                                  │
00:01:44 #8973 [Verbose] > │         let v132 : UH2 = UH2_1                                               │
00:01:44 #8974 [Verbose] > │         let v133 : UH2 = UH2_0(v125, v132)                                   │
00:01:44 #8975 [Verbose] > │         let v134 : UH2 = UH2_0(v94, v133)                                    │
00:01:44 #8976 [Verbose] > │         let v135 : UH2 = UH2_0(v92, v134)                                    │
00:01:44 #8977 [Verbose] > │         let v136 : UH2 = UH2_0(v93, v135)                                    │
00:01:44 #8978 [Verbose] > │         v88.[int v91] <- struct (v136, v131)                                 │
00:01:44 #8979 [Verbose] > │         let v137 : uint64 = v91 + 1UL                                        │
00:01:44 #8980 [Verbose] > │         v89.l0 <- v137                                                       │
00:01:44 #8981 [Verbose] > │         ()                                                                   │
00:01:44 #8982 [Verbose] > │     let v138 : string = "Input"                                              │
00:01:44 #8983 [Verbose] > │     let v139 : string = "Expected"                                           │
00:01:44 #8984 [Verbose] > │     let v140 : string = "Result"                                             │
00:01:44 #8985 [Verbose] > │     let v141 : string = "Best"                                               │
00:01:44 #8986 [Verbose] > │     let v142 : UH2 = UH2_1                                                   │
00:01:44 #8987 [Verbose] > │     let v143 : UH2 = UH2_0(v141, v142)                                       │
00:01:44 #8988 [Verbose] > │     let v144 : UH2 = UH2_0(v140, v143)                                       │
00:01:44 #8989 [Verbose] > │     let v145 : UH2 = UH2_0(v139, v144)                                       │
00:01:44 #8990 [Verbose] > │     let v146 : UH2 = UH2_0(v138, v145)                                       │
00:01:44 #8991 [Verbose] > │     let v147 : US0 = US0_0                                                   │
00:01:44 #8992 [Verbose] > │     let v148 : string = "---"                                                │
00:01:44 #8993 [Verbose] > │     let v149 : UH2 = UH2_1                                                   │
00:01:44 #8994 [Verbose] > │     let v150 : UH2 = UH2_0(v148, v149)                                       │
00:01:44 #8995 [Verbose] > │     let v151 : UH2 = UH2_0(v148, v150)                                       │
00:01:44 #8996 [Verbose] > │     let v152 : UH2 = UH2_0(v148, v151)                                       │
00:01:44 #8997 [Verbose] > │     let v153 : UH2 = UH2_0(v148, v152)                                       │
00:01:44 #8998 [Verbose] > │     let v154 : US0 = US0_0                                                   │
00:01:44 #8999 [Verbose] > │     let v155 : UH4 = UH4_1                                                   │
00:01:44 #9000 [Verbose] > │     let v156 : UH4 = UH4_0(v153, v154, v155)                                 │
00:01:44 #9001 [Verbose] > │     let v157 : UH4 = UH4_0(v146, v147, v156)                                 │
00:01:44 #9002 [Verbose] > │     let v158 : (struct (UH2 * US0) []) = method16(v157)                      │
00:01:44 #9003 [Verbose] > │     let v159 : uint64 = System.Convert.ToUInt64 v158.Length                  │
00:01:44 #9004 [Verbose] > │     let v160 : uint64 = System.Convert.ToUInt64 v88.Length                   │
00:01:44 #9005 [Verbose] > │     let v161 : uint64 = v159 + v160                                          │
00:01:44 #9006 [Verbose] > │     let v162 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 *      │
00:01:44 #9007 [Verbose] > │ US0)> (System.Convert.ToInt32(v161))                                         │
00:01:44 #9008 [Verbose] > │     let v163 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:01:44 #9009 [Verbose] > │     while method4(v161, v163) do                                             │
00:01:44 #9010 [Verbose] > │         let v165 : uint64 = v163.l0                                          │
00:01:44 #9011 [Verbose] > │         let v166 : bool = v165 < v159                                        │
00:01:44 #9012 [Verbose] > │         let struct (v172 : UH2, v173 : US0) =                                │
00:01:44 #9013 [Verbose] > │             if v166 then                                                     │
00:01:44 #9014 [Verbose] > │                 let struct (v167 : UH2, v168 : US0) = v158.[int v165]        │
00:01:44 #9015 [Verbose] > │                 struct (v167, v168)                                          │
00:01:44 #9016 [Verbose] > │             else                                                             │
00:01:44 #9017 [Verbose] > │                 let v169 : uint64 = v165 - v159                              │
00:01:44 #9018 [Verbose] > │                 let struct (v170 : UH2, v171 : US0) = v88.[int v169]         │
00:01:44 #9019 [Verbose] > │                 struct (v170, v171)                                          │
00:01:44 #9020 [Verbose] > │         v162.[int v165] <- struct (v172, v173)                               │
00:01:44 #9021 [Verbose] > │         let v174 : uint64 = v165 + 1UL                                       │
00:01:44 #9022 [Verbose] > │         v163.l0 <- v174                                                      │
00:01:44 #9023 [Verbose] > │         ()                                                                   │
00:01:44 #9024 [Verbose] > │     let v175 : uint64 = System.Convert.ToUInt64 v162.Length                  │
00:01:44 #9025 [Verbose] > │     let v176 : ((string []) []) = Array.zeroCreate<(string [])>              │
00:01:44 #9026 [Verbose] > │ (System.Convert.ToInt32(v175))                                               │
00:01:44 #9027 [Verbose] > │     let v177 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:01:44 #9028 [Verbose] > │     while method4(v175, v177) do                                             │
00:01:44 #9029 [Verbose] > │         let v179 : uint64 = v177.l0                                          │
00:01:44 #9030 [Verbose] > │         let struct (v180 : UH2, v181 : US0) = v162.[int v179]                │
00:01:44 #9031 [Verbose] > │         let v182 : (string []) = method19(v180)                              │
00:01:44 #9032 [Verbose] > │         v176.[int v179] <- v182                                              │
00:01:44 #9033 [Verbose] > │         let v183 : uint64 = v179 + 1UL                                       │
00:01:44 #9034 [Verbose] > │         v177.l0 <- v183                                                      │
00:01:44 #9035 [Verbose] > │         ()                                                                   │
00:01:44 #9036 [Verbose] > │     let v184 : ((string []) []) = v176 |> Array.transpose                    │
00:01:44 #9037 [Verbose] > │     let v185 : uint64 = System.Convert.ToUInt64 v184.Length                  │
00:01:44 #9038 [Verbose] > │     let v186 : (int64 []) = Array.zeroCreate<int64>                          │
00:01:44 #9039 [Verbose] > │ (System.Convert.ToInt32(v185))                                               │
00:01:44 #9040 [Verbose] > │     let v187 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:01:44 #9041 [Verbose] > │     while method4(v185, v187) do                                             │
00:01:44 #9042 [Verbose] > │         let v189 : uint64 = v187.l0                                          │
00:01:44 #9043 [Verbose] > │         let v190 : (string []) = v184.[int v189]                             │
00:01:44 #9044 [Verbose] > │         let v191 : uint64 = System.Convert.ToUInt64 v190.Length              │
00:01:44 #9045 [Verbose] > │         let v192 : (int64 []) = Array.zeroCreate<int64>                      │
00:01:44 #9046 [Verbose] > │ (System.Convert.ToInt32(v191))                                               │
00:01:44 #9047 [Verbose] > │         let v193 : Mut0 = {l0 = 0UL} : Mut0                                  │
00:01:44 #9048 [Verbose] > │         while method4(v191, v193) do                                         │
00:01:44 #9049 [Verbose] > │             let v195 : uint64 = v193.l0                                      │
00:01:44 #9050 [Verbose] > │             let v196 : string = v190.[int v195]                              │
00:01:44 #9051 [Verbose] > │             let v197 : int64 = System.Convert.ToInt64 v196.Length            │
00:01:44 #9052 [Verbose] > │             v192.[int v195] <- v197                                          │
00:01:44 #9053 [Verbose] > │             let v198 : uint64 = v195 + 1UL                                   │
00:01:44 #9054 [Verbose] > │             v193.l0 <- v198                                                  │
00:01:44 #9055 [Verbose] > │             ()                                                               │
00:01:44 #9056 [Verbose] > │         let v199 : (int64 []) = v192 |> Array.sortDescending                 │
00:01:44 #9057 [Verbose] > │         let v200 : int64 option = v199 |> Array.tryItem 0                    │
00:01:44 #9058 [Verbose] > │         let v201 : (int64 -> US1) = closure5()                               │
00:01:44 #9059 [Verbose] > │         let v202 : US1 = US1_0                                               │
00:01:44 #9060 [Verbose] > │         let v203 : US1 = v200 |> Option.map v201 |> Option.defaultValue v202 │
00:01:44 #9061 [Verbose] > │         let v206 : int64 =                                                   │
00:01:44 #9062 [Verbose] > │             match v203 with                                                  │
00:01:44 #9063 [Verbose] > │             | US1_0 -> (* None *)                                            │
00:01:44 #9064 [Verbose] > │                 0L                                                           │
00:01:44 #9065 [Verbose] > │             | US1_1(v204) -> (* Some *)                                      │
00:01:44 #9066 [Verbose] > │                 v204                                                         │
00:01:44 #9067 [Verbose] > │         v186.[int v189] <- v206                                              │
00:01:44 #9068 [Verbose] > │         let v207 : uint64 = v189 + 1UL                                       │
00:01:44 #9069 [Verbose] > │         v187.l0 <- v207                                                      │
00:01:44 #9070 [Verbose] > │         ()                                                                   │
00:01:44 #9071 [Verbose] > │     let v208 : uint64 = System.Convert.ToUInt64 v186.Length                  │
00:01:44 #9072 [Verbose] > │     let v209 : UH5 = UH5_1                                                   │
00:01:44 #9073 [Verbose] > │     let v210 : Mut3 = {l0 = 0UL; l1 = v209; l2 = 0} : Mut3                   │
00:01:44 #9074 [Verbose] > │     while method22(v208, v210) do                                            │
00:01:44 #9075 [Verbose] > │         let v212 : uint64 = v210.l0                                          │
00:01:44 #9076 [Verbose] > │         let struct (v213 : UH5, v214 : int32) = v210.l1, v210.l2             │
00:01:44 #9077 [Verbose] > │         let v215 : int64 = v186.[int v212]                                   │
00:01:44 #9078 [Verbose] > │         let v216 : int32 = v214 + 1                                          │
00:01:44 #9079 [Verbose] > │         let v217 : uint64 = v212 + 1UL                                       │
00:01:44 #9080 [Verbose] > │         let v218 : UH5 = UH5_0(v214, v215, v213)                             │
00:01:44 #9081 [Verbose] > │         v210.l0 <- v217                                                      │
00:01:44 #9082 [Verbose] > │         v210.l1 <- v218                                                      │
00:01:44 #9083 [Verbose] > │         v210.l2 <- v216                                                      │
00:01:44 #9084 [Verbose] > │         ()                                                                   │
00:01:44 #9085 [Verbose] > │     let struct (v219 : UH5, v220 : int32) = v210.l1, v210.l2                 │
00:01:44 #9086 [Verbose] > │     let v221 : UH5 = UH5_1                                                   │
00:01:44 #9087 [Verbose] > │     let v222 : UH5 = method23(v219, v221)                                    │
00:01:44 #9088 [Verbose] > │     let v223 : (struct (int32 * int64) []) = method24(v222)                  │
00:01:44 #9089 [Verbose] > │     let v224 : Map<int32, int64> = v223 |> Array.map (fun (struct (a, b)) -> │
00:01:44 #9090 [Verbose] > │ a, b) |> Map.ofArray                                                         │
00:01:44 #9091 [Verbose] > │     let v225 : (struct ((string []) * US0) []) = Array.zeroCreate<struct     │
00:01:44 #9092 [Verbose] > │ ((string []) * US0)> (System.Convert.ToInt32(v175))                          │
00:01:44 #9093 [Verbose] > │     let v226 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:01:44 #9094 [Verbose] > │     while method4(v175, v226) do                                             │
00:01:44 #9095 [Verbose] > │         let v228 : uint64 = v226.l0                                          │
00:01:44 #9096 [Verbose] > │         let struct (v229 : UH2, v230 : US0) = v162.[int v228]                │
00:01:44 #9097 [Verbose] > │         let v231 : UH6 = UH6_1                                               │
00:01:44 #9098 [Verbose] > │         let v232 : int32 = 0                                                 │
00:01:44 #9099 [Verbose] > │         let struct (v233 : UH6, v234 : int32) = method27(v229, v231, v232)   │
00:01:44 #9100 [Verbose] > │         let v235 : UH6 = UH6_1                                               │
00:01:44 #9101 [Verbose] > │         let v236 : UH6 = method28(v233, v235)                                │
00:01:44 #9102 [Verbose] > │         let v237 : UH2 = UH2_1                                               │
00:01:44 #9103 [Verbose] > │         let v238 : UH2 = method29(v224, v236, v237)                          │
00:01:44 #9104 [Verbose] > │         let v239 : (string []) = method30(v238)                              │
00:01:44 #9105 [Verbose] > │         v225.[int v228] <- struct (v239, v230)                               │
00:01:44 #9106 [Verbose] > │         let v240 : uint64 = v228 + 1UL                                       │
00:01:44 #9107 [Verbose] > │         v226.l0 <- v240                                                      │
00:01:44 #9108 [Verbose] > │         ()                                                                   │
00:01:44 #9109 [Verbose] > │     System.Console.WriteLine v2                                              │
00:01:44 #9110 [Verbose] > │     let v241 : uint64 = System.Convert.ToUInt64 v225.Length                  │
00:01:44 #9111 [Verbose] > │     let v242 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:01:44 #9112 [Verbose] > │     while method4(v241, v242) do                                             │
00:01:44 #9113 [Verbose] > │         let v244 : uint64 = v242.l0                                          │
00:01:44 #9114 [Verbose] > │         let struct (v245 : (string []), v246 : US0) = v225.[int v244]        │
00:01:44 #9115 [Verbose] > │         match v246 with                                                      │
00:01:44 #9116 [Verbose] > │         | US0_0 -> (* None *)                                                │
00:01:44 #9117 [Verbose] > │             let mutable result = None                                        │
00:01:44 #9118 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM                                 │
00:01:44 #9119 [Verbose] > │             ()                                                               │
00:01:44 #9120 [Verbose] > │             #endif                                                           │
00:01:44 #9121 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │
00:01:44 #9122 [Verbose] > │             ()                                                               │
00:01:44 #9123 [Verbose] > │             #endif                                                           │
00:01:44 #9124 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │
00:01:44 #9125 [Verbose] > │             System.Console.ResetColor ()                                     │
00:01:44 #9126 [Verbose] > │             ()                                                               │
00:01:44 #9127 [Verbose] > │             #endif                                                           │
00:01:44 #9128 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │
00:01:44 #9129 [Verbose] > │             System.Console.ResetColor ()                                     │
00:01:44 #9130 [Verbose] > │             ()                                                               │
00:01:44 #9131 [Verbose] > │             #endif                                                           │
00:01:44 #9132 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │
00:01:44 #9133 [Verbose] > │             System.Console.ResetColor ()                                     │
00:01:44 #9134 [Verbose] > │             ()                                                               │
00:01:44 #9135 [Verbose] > │             #endif                                                           │
00:01:44 #9136 [Verbose] > │             |> fun x -> result <- Some x                                     │
00:01:44 #9137 [Verbose] > │             result |> Option.get                                             │
00:01:44 #9138 [Verbose] > │             ()                                                               │
00:01:44 #9139 [Verbose] > │         | US0_1(v247) -> (* Some *)                                          │
00:01:44 #9140 [Verbose] > │             let mutable result = None                                        │
00:01:44 #9141 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM                                 │
00:01:44 #9142 [Verbose] > │             ()                                                               │
00:01:44 #9143 [Verbose] > │             #endif                                                           │
00:01:44 #9144 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │
00:01:44 #9145 [Verbose] > │             ()                                                               │
00:01:44 #9146 [Verbose] > │             #endif                                                           │
00:01:44 #9147 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │
00:01:44 #9148 [Verbose] > │             System.Console.ForegroundColor <- v247                           │
00:01:44 #9149 [Verbose] > │             ()                                                               │
00:01:44 #9150 [Verbose] > │             #endif                                                           │
00:01:44 #9151 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │
00:01:44 #9152 [Verbose] > │             System.Console.ForegroundColor <- v247                           │
00:01:44 #9153 [Verbose] > │             ()                                                               │
00:01:44 #9154 [Verbose] > │             #endif                                                           │
00:01:44 #9155 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │
00:01:44 #9156 [Verbose] > │             System.Console.ForegroundColor <- v247                           │
00:01:44 #9157 [Verbose] > │             ()                                                               │
00:01:44 #9158 [Verbose] > │             #endif                                                           │
00:01:44 #9159 [Verbose] > │             |> fun x -> result <- Some x                                     │
00:01:44 #9160 [Verbose] > │             result |> Option.get                                             │
00:01:44 #9161 [Verbose] > │             ()                                                               │
00:01:44 #9162 [Verbose] > │         let v248 : string = "\t| "                                           │
00:01:44 #9163 [Verbose] > │         let v249 : string = System.String.Join (v248, v245)                  │
00:01:44 #9164 [Verbose] > │         System.Console.WriteLine v249                                        │
00:01:44 #9165 [Verbose] > │         let mutable result = None                                            │
00:01:44 #9166 [Verbose] > │         #if FABLE_COMPILER_RUST && !WASM                                     │
00:01:44 #9167 [Verbose] > │         ()                                                                   │
00:01:44 #9168 [Verbose] > │         #endif                                                               │
00:01:44 #9169 [Verbose] > │         #if FABLE_COMPILER_RUST && WASM                                      │
00:01:44 #9170 [Verbose] > │         ()                                                                   │
00:01:44 #9171 [Verbose] > │         #endif                                                               │
00:01:44 #9172 [Verbose] > │         #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                 │
00:01:44 #9173 [Verbose] > │         System.Console.ResetColor ()                                         │
00:01:44 #9174 [Verbose] > │         ()                                                                   │
00:01:44 #9175 [Verbose] > │         #endif                                                               │
00:01:44 #9176 [Verbose] > │         #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                  │
00:01:44 #9177 [Verbose] > │         System.Console.ResetColor ()                                         │
00:01:44 #9178 [Verbose] > │         ()                                                                   │
00:01:44 #9179 [Verbose] > │         #endif                                                               │
00:01:44 #9180 [Verbose] > │         #if !FABLE_COMPILER_RUST && WASM                                     │
00:01:44 #9181 [Verbose] > │         System.Console.ResetColor ()                                         │
00:01:44 #9182 [Verbose] > │         ()                                                                   │
00:01:44 #9183 [Verbose] > │         #endif                                                               │
00:01:44 #9184 [Verbose] > │         |> fun x -> result <- Some x                                         │
00:01:44 #9185 [Verbose] > │         result |> Option.get                                                 │
00:01:44 #9186 [Verbose] > │         let v250 : uint64 = v244 + 1UL                                       │
00:01:44 #9187 [Verbose] > │         v242.l0 <- v250                                                      │
00:01:44 #9188 [Verbose] > │         ()                                                                   │
00:01:44 #9189 [Verbose] > │     let v251 : ((float []) []) = Array.zeroCreate<(float [])>                │
00:01:44 #9190 [Verbose] > │ (System.Convert.ToInt32(v87))                                                │
00:01:44 #9191 [Verbose] > │     let v252 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:01:44 #9192 [Verbose] > │     while method4(v87, v252) do                                              │
00:01:44 #9193 [Verbose] > │         let v254 : uint64 = v252.l0                                          │
00:01:44 #9194 [Verbose] > │         let struct (v255 : string, v256 : string, v257 : string, v258 :      │
00:01:44 #9195 [Verbose] > │ (int64 [])) = v11.[int v254]                                                 │
00:01:44 #9196 [Verbose] > │         let v259 : (int64 -> float) = float                                  │
00:01:44 #9197 [Verbose] > │         let v260 : uint64 = System.Convert.ToUInt64 v258.Length              │
00:01:44 #9198 [Verbose] > │         let v261 : (float []) = Array.zeroCreate<float>                      │
00:01:44 #9199 [Verbose] > │ (System.Convert.ToInt32(v260))                                               │
00:01:44 #9200 [Verbose] > │         let v262 : Mut0 = {l0 = 0UL} : Mut0                                  │
00:01:44 #9201 [Verbose] > │         while method4(v260, v262) do                                         │
00:01:44 #9202 [Verbose] > │             let v264 : uint64 = v262.l0                                      │
00:01:44 #9203 [Verbose] > │             let v265 : int64 = v258.[int v264]                               │
00:01:44 #9204 [Verbose] > │             let v266 : float = v259 v265                                     │
00:01:44 #9205 [Verbose] > │             v261.[int v264] <- v266                                          │
00:01:44 #9206 [Verbose] > │             let v267 : uint64 = v264 + 1UL                                   │
00:01:44 #9207 [Verbose] > │             v262.l0 <- v267                                                  │
00:01:44 #9208 [Verbose] > │             ()                                                               │
00:01:44 #9209 [Verbose] > │         v251.[int v254] <- v261                                              │
00:01:44 #9210 [Verbose] > │         let v268 : uint64 = v254 + 1UL                                       │
00:01:44 #9211 [Verbose] > │         v252.l0 <- v268                                                      │
00:01:44 #9212 [Verbose] > │         ()                                                                   │
00:01:44 #9213 [Verbose] > │     let v269 : ((float []) []) = v251 |> Array.transpose                     │
00:01:44 #9214 [Verbose] > │     let v270 : uint64 = System.Convert.ToUInt64 v269.Length                  │
00:01:44 #9215 [Verbose] > │     let v271 : (float []) = Array.zeroCreate<float>                          │
00:01:44 #9216 [Verbose] > │ (System.Convert.ToInt32(v270))                                               │
00:01:44 #9217 [Verbose] > │     let v272 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:01:44 #9218 [Verbose] > │     while method4(v270, v272) do                                             │
00:01:44 #9219 [Verbose] > │         let v274 : uint64 = v272.l0                                          │
00:01:44 #9220 [Verbose] > │         let v275 : (float []) = v269.[int v274]                              │
00:01:44 #9221 [Verbose] > │         let v276 : float = v275 |> Array.average                             │
00:01:44 #9222 [Verbose] > │         v271.[int v274] <- v276                                              │
00:01:44 #9223 [Verbose] > │         let v277 : uint64 = v274 + 1UL                                       │
00:01:44 #9224 [Verbose] > │         v272.l0 <- v277                                                      │
00:01:44 #9225 [Verbose] > │         ()                                                                   │
00:01:44 #9226 [Verbose] > │     let v278 : (float -> int64) = int64                                      │
00:01:44 #9227 [Verbose] > │     let v279 : uint64 = System.Convert.ToUInt64 v271.Length                  │
00:01:44 #9228 [Verbose] > │     let v280 : (int64 []) = Array.zeroCreate<int64>                          │
00:01:44 #9229 [Verbose] > │ (System.Convert.ToInt32(v279))                                               │
00:01:44 #9230 [Verbose] > │     let v281 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:01:44 #9231 [Verbose] > │     while method4(v279, v281) do                                             │
00:01:44 #9232 [Verbose] > │         let v283 : uint64 = v281.l0                                          │
00:01:44 #9233 [Verbose] > │         let v284 : float = v271.[int v283]                                   │
00:01:44 #9234 [Verbose] > │         let v285 : int64 = v278 v284                                         │
00:01:44 #9235 [Verbose] > │         v280.[int v283] <- v285                                              │
00:01:44 #9236 [Verbose] > │         let v286 : uint64 = v283 + 1UL                                       │
00:01:44 #9237 [Verbose] > │         v281.l0 <- v286                                                      │
00:01:44 #9238 [Verbose] > │         ()                                                                   │
00:01:44 #9239 [Verbose] > │     let v287 : uint64 = System.Convert.ToUInt64 v280.Length                  │
00:01:44 #9240 [Verbose] > │     let v288 : UH5 = UH5_1                                                   │
00:01:44 #9241 [Verbose] > │     let v289 : Mut3 = {l0 = 0UL; l1 = v288; l2 = 0} : Mut3                   │
00:01:44 #9242 [Verbose] > │     while method22(v287, v289) do                                            │
00:01:44 #9243 [Verbose] > │         let v291 : uint64 = v289.l0                                          │
00:01:44 #9244 [Verbose] > │         let struct (v292 : UH5, v293 : int32) = v289.l1, v289.l2             │
00:01:44 #9245 [Verbose] > │         let v294 : int64 = v280.[int v291]                                   │
00:01:44 #9246 [Verbose] > │         let v295 : int32 = v293 + 1                                          │
00:01:44 #9247 [Verbose] > │         let v296 : uint64 = v291 + 1UL                                       │
00:01:44 #9248 [Verbose] > │         let v297 : UH5 = UH5_0(v293, v294, v292)                             │
00:01:44 #9249 [Verbose] > │         v289.l0 <- v296                                                      │
00:01:44 #9250 [Verbose] > │         v289.l1 <- v297                                                      │
00:01:44 #9251 [Verbose] > │         v289.l2 <- v295                                                      │
00:01:44 #9252 [Verbose] > │         ()                                                                   │
00:01:44 #9253 [Verbose] > │     let struct (v298 : UH5, v299 : int32) = v289.l1, v289.l2                 │
00:01:44 #9254 [Verbose] > │     let v300 : UH5 = UH5_1                                                   │
00:01:44 #9255 [Verbose] > │     let v301 : UH5 = method23(v298, v300)                                    │
00:01:44 #9256 [Verbose] > │     let v302 : (struct (int32 * int64) []) = method33(v301)                  │
00:01:44 #9257 [Verbose] > │     System.Console.WriteLine v2                                              │
00:01:44 #9258 [Verbose] > │     let v303 : string = "Average Ranking  "                                  │
00:01:44 #9259 [Verbose] > │     System.Console.WriteLine v303                                            │
00:01:44 #9260 [Verbose] > │     let v304 : (struct (int32 * int64) -> int64) = closure6()                │
00:01:44 #9261 [Verbose] > │     let v305 : (struct (int32 * int64) []) = v302 |> Array.sortBy v304       │
00:01:44 #9262 [Verbose] > │     let v306 : uint64 = System.Convert.ToUInt64 v305.Length                  │
00:01:44 #9263 [Verbose] > │     let v307 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:01:44 #9264 [Verbose] > │     while method4(v306, v307) do                                             │
00:01:44 #9265 [Verbose] > │         let v309 : uint64 = v307.l0                                          │
00:01:44 #9266 [Verbose] > │         let struct (v310 : int32, v311 : int64) = v305.[int v309]            │
00:01:44 #9267 [Verbose] > │         let v312 : string = $"Test case %d{v310 + 1}. Average Time: %A{v311} │
00:01:44 #9268 [Verbose] > │ "                                                                            │
00:01:44 #9269 [Verbose] > │         System.Console.WriteLine v312                                        │
00:01:44 #9270 [Verbose] > │         let v313 : uint64 = v309 + 1UL                                       │
00:01:44 #9271 [Verbose] > │         v307.l0 <- v313                                                      │
00:01:44 #9272 [Verbose] > │         ()                                                                   │
00:01:44 #9273 [Verbose] > │     ()                                                                       │
00:01:44 #9274 [Verbose] > │ and method0 () : unit =                                                      │
00:01:44 #9275 [Verbose] > │     let v0 : (unit -> unit) = closure0()                                     │
00:01:44 #9276 [Verbose] > │     let v1 : string = nameof v0                                              │
00:01:44 #9277 [Verbose] > │     let v2 : string = ""                                                     │
00:01:44 #9278 [Verbose] > │     System.Console.WriteLine v2                                              │
00:01:44 #9279 [Verbose] > │     System.Console.WriteLine v2                                              │
00:01:44 #9280 [Verbose] > │     let v3 : string = $"Test: {v1}"                                          │
00:01:44 #9281 [Verbose] > │     System.Console.WriteLine v3                                              │
00:01:44 #9282 [Verbose] > │     let v4 : string = "a"                                                    │
00:01:44 #9283 [Verbose] > │     let v5 : string = "b"                                                    │
00:01:44 #9284 [Verbose] > │     let v6 : UH0 = UH0_1                                                     │
00:01:44 #9285 [Verbose] > │     let v7 : UH0 = UH0_0(v5, v5, v5, v6)                                     │
00:01:44 #9286 [Verbose] > │     let v8 : UH0 = UH0_0(v4, v4, v4, v7)                                     │
00:01:44 #9287 [Verbose] > │     let v9 : (struct (string * string * string) []) = method1(v8)            │
00:01:44 #9288 [Verbose] > │     let v10 : uint64 = System.Convert.ToUInt64 v9.Length                     │
00:01:44 #9289 [Verbose] > │     let v11 : (struct (string * string * string * (int64 [])) []) =          │
00:01:44 #9290 [Verbose] > │ Array.zeroCreate<struct (string * string * string * (int64 []))>             │
00:01:44 #9292 [Verbose] >
00:01:44 #9291 [Verbose] > │ (System.Convert.ToInt32(v10))                                                │
00:01:44 #9293 [Verbose] > │     let v12 : Mut0 = {l0 = 0UL} : Mut0                                       │
00:01:44 #9294 [Verbose] > │     while method4(v10, v12) do                                               │
00:01:44 #9295 [Verbose] > │         let v14 : uint64 = v12.l0                                            │
00:01:44 #9296 [Verbose] > │         let struct (v15 : string, v16 : string, v17 : string) = v9.[int v14] │
00:01:44 #9297 [Verbose] > │         let v18 : string = $"%A{struct (v15, v16)}"                          │
00:01:44 #9298 [Verbose] > │         System.Console.WriteLine v2                                          │
00:01:44 #9299 [Verbose] > │         let v19 : string = $"Solution: {v18}  "                              │
00:01:44 #9300 [Verbose] > │         System.Console.WriteLine v19                                         │
00:01:44 #9301 [Verbose] > │         let v20 : int32 = 0                                                  │
00:01:44 #9302 [Verbose] > │         let v21 : string = "A"                                               │
00:01:44 #9303 [Verbose] > │         let v22 : (struct (string * string) -> string) = closure1()          │
00:01:44 #9304 [Verbose] > │         let v23 : int32 = 1                                                  │
00:01:44 #9305 [Verbose] > │         let v24 : string = "B"                                               │
00:01:44 #9306 [Verbose] > │         let v25 : (struct (string * string) -> string) = closure2()          │
00:01:44 #9307 [Verbose] > │         let v26 : UH1 = UH1_1                                                │
00:01:44 #9308 [Verbose] > │         let v27 : UH1 = UH1_0(v23, v24, v25, v26)                            │
00:01:44 #9309 [Verbose] > │         let v28 : UH1 = UH1_0(v20, v21, v22, v27)                            │
00:01:44 #9310 [Verbose] > │         let v29 : (struct (int32 * string * (struct (string * string) ->     │
00:01:44 #9311 [Verbose] > │ string)) []) = method5(v28)                                                  │
00:01:44 #9312 [Verbose] > │         let v30 : uint64 = System.Convert.ToUInt64 v29.Length                │
00:01:44 #9313 [Verbose] > │         let v31 : (struct (string * int64) []) = Array.zeroCreate<struct     │
00:01:44 #9314 [Verbose] > │ (string * int64)> (System.Convert.ToInt32(v30))                              │
00:01:44 #9315 [Verbose] > │         let v32 : Mut0 = {l0 = 0UL} : Mut0                                   │
00:01:44 #9316 [Verbose] > │         while method4(v30, v32) do                                           │
00:01:44 #9317 [Verbose] > │             let v34 : uint64 = v32.l0                                        │
00:01:44 #9318 [Verbose] > │             let struct (v35 : int32, v36 : string, v37 : (struct (string *   │
00:01:44 #9319 [Verbose] > │ string) -> string)) = v29.[int v34]                                          │
00:01:44 #9320 [Verbose] > │             let mutable result = None                                        │
00:01:44 #9321 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM                                 │
00:01:44 #9322 [Verbose] > │             ()                                                               │
00:01:44 #9323 [Verbose] > │             #endif                                                           │
00:01:44 #9324 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │
00:01:44 #9325 [Verbose] > │             ()                                                               │
00:01:44 #9326 [Verbose] > │             #endif                                                           │
00:01:44 #9327 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │
00:01:44 #9328 [Verbose] > │             System.GC.Collect ()                                             │
00:01:44 #9329 [Verbose] > │             ()                                                               │
00:01:44 #9330 [Verbose] > │             #endif                                                           │
00:01:44 #9331 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │
00:01:44 #9332 [Verbose] > │             System.GC.Collect ()                                             │
00:01:44 #9333 [Verbose] > │             ()                                                               │
00:01:44 #9334 [Verbose] > │             #endif                                                           │
00:01:44 #9335 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │
00:01:44 #9336 [Verbose] > │             System.GC.Collect ()                                             │
00:01:44 #9337 [Verbose] > │             ()                                                               │
00:01:44 #9338 [Verbose] > │             #endif                                                           │
00:01:44 #9339 [Verbose] > │             |> fun x -> result <- Some x                                     │
00:01:44 #9340 [Verbose] > │             result |> Option.get                                             │
00:01:44 #9341 [Verbose] > │             let v38 : (unit -> System.Diagnostics.Stopwatch) =               │
00:01:44 #9342 [Verbose] > │ System.Diagnostics.Stopwatch                                                 │
00:01:44 #9343 [Verbose] > │             let v39 : System.Diagnostics.Stopwatch = v38 ()                  │
00:01:44 #9344 [Verbose] > │             v39.Start ()                                                     │
00:01:44 #9345 [Verbose] > │             let v40 : int64 = v39.ElapsedMilliseconds                        │
00:01:44 #9346 [Verbose] > │             let v41 : (int32 []) = Array.zeroCreate<int32> (2000001)         │
00:01:44 #9347 [Verbose] > │             let v42 : Mut1 = {l0 = 0} : Mut1                                 │
00:01:44 #9348 [Verbose] > │             while method8(v42) do                                            │
00:01:44 #9349 [Verbose] > │                 let v44 : int32 = v42.l0                                     │
00:01:44 #9350 [Verbose] > │                 v41.[int v44] <- v44                                         │
00:01:44 #9351 [Verbose] > │                 let v45 : int32 = v44 + 1                                    │
00:01:44 #9352 [Verbose] > │                 v42.l0 <- v45                                                │
00:01:44 #9353 [Verbose] > │                 ()                                                           │
00:01:44 #9354 [Verbose] > │             let v46 : (int32 -> string) = closure3(v15, v16, v37)            │
00:01:44 #9355 [Verbose] > │             let v47 : (string []) = v41 |> Array.Parallel.map v46            │
00:01:44 #9356 [Verbose] > │             let v48 : int32 = v47.Length                                     │
00:01:44 #9357 [Verbose] > │             let v49 : int32 = v48 - 1                                        │
00:01:44 #9358 [Verbose] > │             let v50 : string = v47.[int v49]                                 │
00:01:44 #9359 [Verbose] > │             let v51 : int64 = v39.ElapsedMilliseconds                        │
00:01:44 #9360 [Verbose] > │             let v52 : int64 = v51 - v40                                      │
00:01:44 #9361 [Verbose] > │             let v53 : string = $"Test case {v35 + 1}. {v36}. Time: {v52}  "  │
00:01:44 #9362 [Verbose] > │             System.Console.WriteLine v53                                     │
00:01:44 #9363 [Verbose] > │             v31.[int v34] <- struct (v50, v52)                               │
00:01:44 #9364 [Verbose] > │             let v54 : uint64 = v34 + 1UL                                     │
00:01:44 #9365 [Verbose] > │             v32.l0 <- v54                                                    │
00:01:44 #9366 [Verbose] > │             ()                                                               │
00:01:44 #9367 [Verbose] > │         let v55 : uint64 = System.Convert.ToUInt64 v31.Length                │
00:01:44 #9368 [Verbose] > │         let v56 : (string []) = Array.zeroCreate<string>                     │
00:01:44 #9369 [Verbose] > │ (System.Convert.ToInt32(v55))                                                │
00:01:44 #9370 [Verbose] > │         let v57 : Mut0 = {l0 = 0UL} : Mut0                                   │
00:01:44 #9371 [Verbose] > │         while method4(v55, v57) do                                           │
00:01:44 #9372 [Verbose] > │             let v59 : uint64 = v57.l0                                        │
00:01:44 #9373 [Verbose] > │             let struct (v60 : string, v61 : int64) = v31.[int v59]           │
00:01:44 #9374 [Verbose] > │             v56.[int v59] <- v60                                             │
00:01:44 #9375 [Verbose] > │             let v62 : uint64 = v59 + 1UL                                     │
00:01:44 #9376 [Verbose] > │             v57.l0 <- v62                                                    │
00:01:44 #9377 [Verbose] > │             ()                                                               │
00:01:44 #9378 [Verbose] > │         let v63 : uint64 = System.Convert.ToUInt64 v56.Length                │
00:01:44 #9379 [Verbose] > │         let v64 : bool = v63 <= 1UL                                          │
00:01:44 #9380 [Verbose] > │         if v64 then                                                          │
00:01:44 #9381 [Verbose] > │             ()                                                               │
00:01:44 #9382 [Verbose] > │         else                                                                 │
00:01:44 #9383 [Verbose] > │             let v65 : string = v56.[int 0UL]                                 │
00:01:44 #9384 [Verbose] > │             let v66 : uint64 = 0UL                                           │
00:01:44 #9385 [Verbose] > │             let v67 : bool = method9(v65, v56, v66)                          │
00:01:44 #9386 [Verbose] > │             if v67 then                                                      │
00:01:44 #9387 [Verbose] > │                 ()                                                           │
00:01:44 #9388 [Verbose] > │             else                                                             │
00:01:44 #9389 [Verbose] > │                 let v68 : string = $"Challenge error: {v56}"                 │
00:01:44 #9390 [Verbose] > │                 failwith<unit> v68                                           │
00:01:44 #9391 [Verbose] > │         let v69 : string = $"%A{v17}"                                        │
00:01:44 #9392 [Verbose] > │         let v70 : (string []) = Array.zeroCreate<string>                     │
00:01:44 #9393 [Verbose] > │ (System.Convert.ToInt32(v55))                                                │
00:01:44 #9394 [Verbose] > │         let v71 : Mut0 = {l0 = 0UL} : Mut0                                   │
00:01:44 #9395 [Verbose] > │         while method4(v55, v71) do                                           │
00:01:44 #9396 [Verbose] > │             let v73 : uint64 = v71.l0                                        │
00:01:44 #9397 [Verbose] > │             let struct (v74 : string, v75 : int64) = v31.[int v73]           │
00:01:44 #9398 [Verbose] > │             v70.[int v73] <- v74                                             │
00:01:44 #9399 [Verbose] > │             let v76 : uint64 = v73 + 1UL                                     │
00:01:44 #9400 [Verbose] > │             v71.l0 <- v76                                                    │
00:01:44 #9401 [Verbose] > │             ()                                                               │
00:01:44 #9402 [Verbose] > │         let v77 : string = v70.[int 0UL]                                     │
00:01:44 #9403 [Verbose] > │         let v78 : string = $"%A{v77}"                                        │
00:01:44 #9404 [Verbose] > │         let v79 : (int64 []) = Array.zeroCreate<int64>                       │
00:01:44 #9406 [Verbose] > ╭─[ 822.89ms - stdout ]────────────────────────────────────────────────────────╮
00:01:44 #9407 [Verbose] > │ type UH0 =                                                                   │
00:01:44 #9408 [Verbose] > │     | UH0_0 of int32 * (unit -> UH0)                                         │
00:01:44 #9409 [Verbose] > │     | UH0_1                                                                  │
00:01:44 #9410 [Verbose] > │ and [<Struct>] US0 =                                                         │
00:01:44 #9411 [Verbose] > │     | US0_0 of f0_0 : UH0                                                    │
00:01:44 #9412 [Verbose] > │     | US0_1 of f1_0 : (unit -> UH0)                                          │
00:01:44 #9413 [Verbose] > │ and Mut0 = {mutable l0 : US0}                                                │
00:01:44 #9414 [Verbose] > │ and [<Struct>] US1 =                                                         │
00:01:44 #9415 [Verbose] > │     | US1_0                                                                  │
00:01:44 #9416 [Verbose] > │     | US1_1 of f1_0 : int32                                                  │
00:01:44 #9417 [Verbose] > │ let rec closure10 () () : UH0 =                                              │
00:01:44 #9418 [Verbose] > │     UH0_1                                                                    │
00:01:44 #9419 [Verbose] > │ and closure9 () () : UH0 =                                                   │
00:01:44 #9420 [Verbose] > │     printfn $"print_and_return / x: {9}"                                     │
00:01:44 #9421 [Verbose] > │     let v0 : (unit -> UH0) = closure10()                                     │
00:01:44 #9422 [Verbose] > │     UH0_0(9, v0)                                                             │
00:01:44 #9423 [Verbose] > │ and closure8 () () : UH0 =                                                   │
00:01:44 #9424 [Verbose] > │     printfn $"print_and_return / x: {8}"                                     │
00:01:44 #9425 [Verbose] > │     let v0 : (unit -> UH0) = closure9()                                      │
00:01:44 #9426 [Verbose] > │     UH0_0(8, v0)                                                             │
00:01:44 #9427 [Verbose] > │ and closure7 () () : UH0 =                                                   │
00:01:44 #9428 [Verbose] > │     printfn $"print_and_return / x: {7}"                                     │
00:01:44 #9429 [Verbose] > │     let v0 : (unit -> UH0) = closure8()                                      │
00:01:44 #9430 [Verbose] > │     UH0_0(7, v0)                                                             │
00:01:44 #9431 [Verbose] > │ and closure6 () () : UH0 =                                                   │
00:01:44 #9432 [Verbose] > │     printfn $"print_and_return / x: {6}"                                     │
00:01:44 #9433 [Verbose] > │     let v0 : (unit -> UH0) = closure7()                                      │
00:01:44 #9434 [Verbose] > │     UH0_0(6, v0)                                                             │
00:01:44 #9435 [Verbose] > │ and closure5 () () : UH0 =                                                   │
00:01:44 #9436 [Verbose] > │     printfn $"print_and_return / x: {5}"                                     │
00:01:44 #9437 [Verbose] > │     let v0 : (unit -> UH0) = closure6()                                      │
00:01:44 #9438 [Verbose] > │     UH0_0(5, v0)                                                             │
00:01:44 #9439 [Verbose] > │ and closure4 () () : UH0 =                                                   │
00:01:44 #9440 [Verbose] > │     printfn $"print_and_return / x: {4}"                                     │
00:01:44 #9441 [Verbose] > │     let v0 : (unit -> UH0) = closure5()                                      │
00:01:44 #9442 [Verbose] > │     UH0_0(4, v0)                                                             │
00:01:44 #9443 [Verbose] > │ and closure3 () () : UH0 =                                                   │
00:01:44 #9444 [Verbose] > │     printfn $"print_and_return / x: {3}"                                     │
00:01:44 #9445 [Verbose] > │     let v0 : (unit -> UH0) = closure4()                                      │
00:01:44 #9446 [Verbose] > │     UH0_0(3, v0)                                                             │
00:01:44 #9447 [Verbose] > │ and closure2 () () : UH0 =                                                   │
00:01:44 #9448 [Verbose] > │     printfn $"print_and_return / x: {2}"                                     │
00:01:44 #9449 [Verbose] > │     let v0 : (unit -> UH0) = closure3()                                      │
00:01:44 #9450 [Verbose] > │     UH0_0(2, v0)                                                             │
00:01:44 #9451 [Verbose] > │ and closure1 () () : UH0 =                                                   │
00:01:44 #9452 [Verbose] > │     printfn $"print_and_return / x: {1}"                                     │
00:01:44 #9453 [Verbose] > │     let v0 : (unit -> UH0) = closure2()                                      │
00:01:44 #9454 [Verbose] > │     UH0_0(1, v0)                                                             │
00:01:44 #9455 [Verbose] > │ and closure0 () () : UH0 =                                                   │
00:01:44 #9456 [Verbose] > │     let v0 : (unit -> UH0) = closure1()                                      │
00:01:44 #9457 [Verbose] > │     UH0_0(0, v0)                                                             │
00:01:44 #9458 [Verbose] > │ and closure11 (v0 : Mut0) () : UH0 =                                         │
00:01:44 #9459 [Verbose] > │     let v1 : US0 = v0.l0                                                     │
00:01:44 #9460 [Verbose] > │     match v1 with                                                            │
00:01:44 #9461 [Verbose] > │     | US0_0(v2) -> (* Computed *)                                            │
00:01:44 #9462 [Verbose] > │         v2                                                                   │
00:01:44 #9463 [Verbose] > │     | US0_1(v3) -> (* NotComputed *)                                         │
00:01:44 #9464 [Verbose] > │         let v4 : UH0 = v3 ()                                                 │
00:01:44 #9465 [Verbose] > │         let v13 : UH0 =                                                      │
00:01:44 #9466 [Verbose] > │             match v4 with                                                    │
00:01:44 #9467 [Verbose] > │             | UH0_0(v6, v7) -> (* StreamCons *)                              │
00:01:44 #9468 [Verbose] > │                 let v8 : US0 = US0_1(v7)                                     │
00:01:44 #9469 [Verbose] > │                 let v9 : Mut0 = {l0 = v8} : Mut0                             │
00:01:44 #9470 [Verbose] > │                 let v10 : (unit -> UH0) = closure11(v9)                      │
00:01:44 #9471 [Verbose] > │                 UH0_0(v6, v10)                                               │
00:01:44 #9472 [Verbose] > │             | UH0_1 -> (* StreamNil *)                                       │
00:01:44 #9473 [Verbose] > │                 UH0_1                                                        │
00:01:44 #9474 [Verbose] > │         let v14 : US0 = US0_0(v13)                                           │
00:01:44 #9475 [Verbose] > │         v0.l0 <- v14                                                         │
00:01:44 #9476 [Verbose] > │         v13                                                                  │
00:01:44 #9477 [Verbose] > │ and method1 (v0 : int32, v1 : UH0) : US1 =                                   │
00:01:44 #9478 [Verbose] > │     match v1 with                                                            │
00:01:44 #9479 [Verbose] > │     | UH0_0(v2, v3) -> (* StreamCons *)                                      │
00:01:44 #9480 [Verbose] > │         let v4 : bool = v0 <= 0                                              │
00:01:44 #9481 [Verbose] > │         if v4 then                                                           │
00:01:44 #9482 [Verbose] > │             US1_1(v2)                                                        │
00:01:44 #9483 [Verbose] > │         else                                                                 │
00:01:44 #9484 [Verbose] > │             let v6 : int32 = v0 - 1                                          │
00:01:44 #9485 [Verbose] > │             let v7 : UH0 = v3 ()                                             │
00:01:44 #9486 [Verbose] > │             method1(v6, v7)                                                  │
00:01:44 #9487 [Verbose] > │     | UH0_1 -> (* StreamNil *)                                               │
00:01:44 #9488 [Verbose] > │         US1_0                                                                │
00:01:44 #9489 [Verbose] > │ and method2 (v0 : bool) : bool =                                             │
00:01:44 #9490 [Verbose] > │     v0                                                                       │
00:01:44 #9491 [Verbose] > │ and method0 () : unit =                                                      │
00:01:44 #9492 [Verbose] > │     printfn $"print_and_return / x: {0}"                                     │
00:01:44 #9493 [Verbose] > │     let v0 : (unit -> UH0) = closure0()                                      │
00:01:44 #9494 [Verbose] > │     let v1 : US0 = US0_1(v0)                                                 │
00:01:44 #9495 [Verbose] > │     let v2 : Mut0 = {l0 = v1} : Mut0                                         │
00:01:44 #9496 [Verbose] > │     let v3 : US0 = v2.l0                                                     │
00:01:44 #9497 [Verbose] > │     let v18 : UH0 =                                                          │
00:01:44 #9498 [Verbose] > │         match v3 with                                                        │
00:01:44 #9499 [Verbose] > │         | US0_0(v4) -> (* Computed *)                                        │
00:01:44 #9500 [Verbose] > │             v4                                                               │
00:01:44 #9501 [Verbose] > │         | US0_1(v5) -> (* NotComputed *)                                     │
00:01:44 #9502 [Verbose] > │             let v6 : UH0 = v5 ()                                             │
00:01:44 #9503 [Verbose] > │             let v15 : UH0 =                                                  │
00:01:44 #9504 [Verbose] > │                 match v6 with                                                │
00:01:44 #9405 [Verbose] > │ (System.Convert.ToInt32(v55))                                                │
00:01:44 #9505 [Verbose] > │                 | UH0_0(v8, v9) -> (* StreamCons *)                          │
00:01:44 #9507 [Verbose] > │                     let v10 : US0 = US0_1(v9)                                │
00:01:44 #9508 [Verbose] > │                     let v11 : Mut0 = {l0 = v10} : Mut0                       │
00:01:44 #9509 [Verbose] > │                     let v12 : (unit -> UH0) = closure11(v11)                 │
00:01:44 #9510 [Verbose] > │                     UH0_0(v8, v12)                                           │
00:01:44 #9511 [Verbose] > │                 | UH0_1 -> (* StreamNil *)                                   │
00:01:44 #9506 [Verbose] > │         let v80 : Mut0 = {l0 = 0UL} : Mut0                                   │
00:01:44 #9512 [Verbose] > │                     UH0_1                                                    │
00:01:44 #9513 [Verbose] > │         while method4(v55, v80) do                                           │
00:01:44 #9514 [Verbose] > │             let v16 : US0 = US0_0(v15)                                       │
00:01:44 #9515 [Verbose] > │             let v82 : uint64 = v80.l0                                        │
00:01:44 #9516 [Verbose] > │             v2.l0 <- v16                                                     │
00:01:44 #9517 [Verbose] > │             let struct (v83 : string, v84 : int64) = v31.[int v82]           │
00:01:44 #9519 [Verbose] > │             v79.[int v82] <- v84                                             │
00:01:44 #9520 [Verbose] > │             let v85 : uint64 = v82 + 1UL                                     │
00:01:44 #9521 [Verbose] > │             v80.l0 <- v85                                                    │
00:01:44 #9522 [Verbose] > │             ()                                                               │
00:01:44 #9523 [Verbose] > │         v11.[int v14] <- struct (v69, v18, v78, v79)                         │
00:01:44 #9524 [Verbose] > │         let v86 : uint64 = v14 + 1UL                                         │
00:01:44 #9525 [Verbose] > │         v12.l0 <- v86                                                        │
00:01:44 #9526 [Verbose] > │         ()                                                                   │
00:01:44 #9527 [Verbose] > │     let v87 : uint64 = System.Convert.ToUInt64 v11.Length                    │
00:01:44 #9528 [Verbose] > │     let v88 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * US0)> │
00:01:44 #9529 [Verbose] > │ (System.Convert.ToInt32(v87))                                                │
00:01:44 #9530 [Verbose] > │     let v89 : Mut0 = {l0 = 0UL} : Mut0                                       │
00:01:44 #9531 [Verbose] > │     while method4(v87, v89) do                                               │
00:01:44 #9532 [Verbose] > │         let v91 : uint64 = v89.l0                                            │
00:01:44 #9533 [Verbose] > │         let struct (v92 : string, v93 : string, v94 : string, v95 : (int64 [ │
00:01:44 #9534 [Verbose] > │ ])) = v11.[int v91]                                                          │
00:01:44 #9535 [Verbose] > │         let v96 : uint64 = System.Convert.ToUInt64 v95.Length                │
00:01:44 #9536 [Verbose] > │         let v97 : UH3 = UH3_1                                                │
00:01:44 #9537 [Verbose] > │         let v98 : Mut2 = {l0 = 0UL; l1 = v97; l2 = 0L} : Mut2                │
00:01:44 #9538 [Verbose] > │         while method10(v96, v98) do                                          │
00:01:44 #9539 [Verbose] > │             let v100 : uint64 = v98.l0                                       │
00:01:44 #9540 [Verbose] > │             let struct (v101 : UH3, v102 : int64) = v98.l1, v98.l2           │
00:01:44 #9541 [Verbose] > │             let v103 : int64 = v95.[int v100]                                │
00:01:44 #9542 [Verbose] > │             let v104 : int64 = v102 + 1L                                     │
00:01:44 #9543 [Verbose] > │             let v105 : uint64 = v100 + 1UL                                   │
00:01:44 #9544 [Verbose] > │             let v106 : UH3 = UH3_0(v102, v103, v101)                         │
00:01:44 #9545 [Verbose] > │             v98.l0 <- v105                                                   │
00:01:44 #9546 [Verbose] > │             v98.l1 <- v106                                                   │
00:01:44 #9547 [Verbose] > │             v98.l2 <- v104                                                   │
00:01:44 #9548 [Verbose] > │             ()                                                               │
00:01:44 #9549 [Verbose] > │         let struct (v107 : UH3, v108 : int64) = v98.l1, v98.l2               │
00:01:44 #9550 [Verbose] > │         let v109 : UH3 = UH3_1                                               │
00:01:44 #9551 [Verbose] > │         let v110 : UH3 = method11(v107, v109)                                │
00:01:44 #9552 [Verbose] > │         let v111 : (struct (int64 * int64) []) = method12(v110)              │
00:01:44 #9553 [Verbose] > │         let v112 : int32 = v111.Length                                       │
00:01:44 #9554 [Verbose] > │         let v113 : (struct (int64 * int64) []) = Array.zeroCreate<struct     │
00:01:44 #9555 [Verbose] > │ (int64 * int64)> (v112)                                                      │
00:01:44 #9556 [Verbose] > │         let v114 : Mut1 = {l0 = 0} : Mut1                                    │
00:01:44 #9557 [Verbose] > │         while method15(v112, v114) do                                        │
00:01:44 #9558 [Verbose] > │             let v116 : int32 = v114.l0                                       │
00:01:44 #9559 [Verbose] > │             let struct (v117 : int64, v118 : int64) = v111.[int v116]        │
00:01:44 #9560 [Verbose] > │             let v119 : int64 = v117 + 1L                                     │
00:01:44 #9561 [Verbose] > │             v113.[int v116] <- struct (v119, v118)                           │
00:01:44 #9562 [Verbose] > │             let v120 : int32 = v116 + 1                                      │
00:01:44 #9563 [Verbose] > │             v114.l0 <- v120                                                  │
00:01:44 #9564 [Verbose] > │             ()                                                               │
00:01:44 #9565 [Verbose] > │         let v121 : (struct (int64 * int64) -> int64) = closure4()            │
00:01:44 #9566 [Verbose] > │         let v122 : (struct (int64 * int64) []) = v113 |> Array.sortBy v121   │
00:01:44 #9567 [Verbose] > │         let struct (v123 : int64, v124 : int64) = v122.[int 0]               │
00:01:44 #9568 [Verbose] > │         let v125 : string = $"%A{struct (v123, v124)}"                       │
00:01:44 #9569 [Verbose] > │         let v126 : bool = v92 = v94                                          │
00:01:44 #9570 [Verbose] > │         let v131 : US0 =                                                     │
00:01:44 #9571 [Verbose] > │             if v126 then                                                     │
00:01:44 #9572 [Verbose] > │                 let v127 : System.ConsoleColor =                             │
00:01:44 #9518 [Verbose] > │             v15                                                              │
00:01:44 #9574 [Verbose] > │     let v19 : int32 = 3                                                      │
00:01:44 #9575 [Verbose] > │     let v20 : US1 = method1(v19, v18)                                        │
00:01:44 #9576 [Verbose] > │     let v24 : int32 =                                                        │
00:01:44 #9577 [Verbose] > │         match v20 with                                                       │
00:01:44 #9578 [Verbose] > │         | US1_0 -> (* None *)                                                │
00:01:44 #9579 [Verbose] > │             failwith<int32> "Option does not have a value."                  │
00:01:44 #9580 [Verbose] > │         | US1_1(v21) -> (* Some *)                                           │
00:01:44 #9581 [Verbose] > │             v21                                                              │
00:01:44 #9582 [Verbose] > │     let v25 : string = $"%A{v24}"                                            │
00:01:44 #9583 [Verbose] > │     System.Console.WriteLine v25                                             │
00:01:44 #9584 [Verbose] > │     let v26 : bool = v24 = 3                                                 │
00:01:44 #9585 [Verbose] > │     let v28 : bool =                                                         │
00:01:44 #9586 [Verbose] > │         if v26 then                                                          │
00:01:44 #9587 [Verbose] > │             true                                                             │
00:01:44 #9588 [Verbose] > │         else                                                                 │
00:01:44 #9589 [Verbose] > │             method2(v26)                                                     │
00:01:44 #9590 [Verbose] > │     let v29 : string = $"__expect / actual: %A{v24} / expected: %A{3}"       │
00:01:44 #9591 [Verbose] > │     let v30 : bool = v28 = false                                             │
00:01:44 #9592 [Verbose] > │     if v30 then                                                              │
00:01:44 #9593 [Verbose] > │         failwith<unit> v29                                                   │
00:01:44 #9594 [Verbose] > │     let v31 : US0 = v2.l0                                                    │
00:01:44 #9595 [Verbose] > │     let v46 : UH0 =                                                          │
00:01:44 #9596 [Verbose] > │         match v31 with                                                       │
00:01:44 #9597 [Verbose] > │         | US0_0(v32) -> (* Computed *)                                       │
00:01:44 #9598 [Verbose] > │             v32                                                              │
00:01:44 #9599 [Verbose] > │         | US0_1(v33) -> (* NotComputed *)                                    │
00:01:44 #9600 [Verbose] > │             let v34 : UH0 = v33 ()                                           │
00:01:44 #9601 [Verbose] > │             let v43 : UH0 =                                                  │
00:01:44 #9602 [Verbose] > │                 match v34 with                                               │
00:01:44 #9603 [Verbose] > │                 | UH0_0(v36, v37) -> (* StreamCons *)                        │
00:01:44 #9604 [Verbose] > │                     let v38 : US0 = US0_1(v37)                               │
00:01:44 #9605 [Verbose] > │                     let v39 : Mut0 = {l0 = v38} : Mut0                       │
00:01:44 #9573 [Verbose] > │ System.ConsoleColor.DarkGreen                                                │
00:01:44 #9606 [Verbose] > │                     let v40 : (unit -> UH0) = closure11(v39)                 │
00:01:44 #9607 [Verbose] > │                 US0_1(v127)                                                  │
00:01:44 #9608 [Verbose] > │                     UH0_0(v36, v40)                                          │
00:01:44 #9609 [Verbose] > │             else                                                             │
00:01:44 #9610 [Verbose] > │                 | UH0_1 -> (* StreamNil *)                                   │
00:01:44 #9611 [Verbose] > │                 let v129 : System.ConsoleColor = System.ConsoleColor.DarkRed │
00:01:44 #9612 [Verbose] > │                     UH0_1                                                    │
00:01:44 #9613 [Verbose] > │                 US0_1(v129)                                                  │
00:01:44 #9614 [Verbose] > │             let v44 : US0 = US0_0(v43)                                       │
00:01:44 #9616 [Verbose] > │             v2.l0 <- v44                                                     │
00:01:44 #9617 [Verbose] > │             v43                                                              │
00:01:44 #9618 [Verbose] > │     let v47 : int32 = 5                                                      │
00:01:44 #9619 [Verbose] > │     let v48 : US1 = method1(v47, v46)                                        │
00:01:44 #9620 [Verbose] > │     let v52 : int32 =                                                        │
00:01:44 #9621 [Verbose] > │         match v48 with                                                       │
00:01:44 #9622 [Verbose] > │         | US1_0 -> (* None *)                                                │
00:01:44 #9623 [Verbose] > │             failwith<int32> "Option does not have a value."                  │
00:01:44 #9624 [Verbose] > │         | US1_1(v49) -> (* Some *)                                           │
00:01:44 #9625 [Verbose] > │             v49                                                              │
00:01:44 #9626 [Verbose] > │     let v53 : string = $"%A{v52}"                                            │
00:01:44 #9627 [Verbose] > │     System.Console.WriteLine v53                                             │
00:01:44 #9628 [Verbose] > │     let v54 : bool = v52 = 5                                                 │
00:01:44 #9629 [Verbose] > │     let v56 : bool =                                                         │
00:01:44 #9630 [Verbose] > │         if v54 then                                                          │
00:01:44 #9631 [Verbose] > │             true                                                             │
00:01:44 #9632 [Verbose] > │         else                                                                 │
00:01:44 #9633 [Verbose] > │             method2(v54)                                                     │
00:01:44 #9634 [Verbose] > │     let v57 : string = $"__expect / actual: %A{v52} / expected: %A{5}"       │
00:01:44 #9635 [Verbose] > │     let v58 : bool = v56 = false                                             │
00:01:44 #9636 [Verbose] > │     if v58 then                                                              │
00:01:44 #9637 [Verbose] > │         failwith<unit> v57                                                   │
00:01:44 #9638 [Verbose] > │ method0()                                                                    │
00:01:44 #9639 [Verbose] > │                                                                              │
00:01:44 #9640 [Verbose] > │ print_and_return / x: 0                                                      │
00:01:44 #9641 [Verbose] > │ print_and_return / x: 1                                                      │
00:01:44 #9642 [Verbose] > │ print_and_return / x: 2                                                      │
00:01:44 #9643 [Verbose] > │ print_and_return / x: 3                                                      │
00:01:44 #9644 [Verbose] > │ 3                                                                            │
00:01:44 #9645 [Verbose] > │ print_and_return / x: 4                                                      │
00:01:44 #9646 [Verbose] > │ print_and_return / x: 5                                                      │
00:01:44 #9647 [Verbose] > │ 5                                                                            │
00:01:44 #9648 [Verbose] > │                                                                              │
00:01:44 #9649 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:44 #9650 [Verbose] >
00:01:44 #9651 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:44 #9652 [Verbose] > // // test
00:01:44 #9653 [Verbose] >
00:01:44 #9654 [Verbose] > inl memo_stream = new_infinite_stream_ print_and_return |> memoize
00:01:44 #9655 [Verbose] >
00:01:44 #9656 [Verbose] > memo_stream ()
00:01:44 #9657 [Verbose] > |> item 3i32
00:01:44 #9658 [Verbose] > |> _assert_eq 3i32
00:01:44 #9659 [Verbose] >
00:01:44 #9660 [Verbose] > memo_stream ()
00:01:44 #9661 [Verbose] > |> item 5i32
00:01:44 #9662 [Verbose] > |> _assert_eq 5i32
00:01:44 #9615 [Verbose] > │         let v132 : UH2 = UH2_1                                               │
00:01:44 #9663 [Verbose] > │         let v133 : UH2 = UH2_0(v125, v132)                                   │
00:01:44 #9664 [Verbose] > │         let v134 : UH2 = UH2_0(v94, v133)                                    │
00:01:44 #9665 [Verbose] > │         let v135 : UH2 = UH2_0(v92, v134)                                    │
00:01:44 #9666 [Verbose] > │         let v136 : UH2 = UH2_0(v93, v135)                                    │
00:01:44 #9667 [Verbose] > │         v88.[int v91] <- struct (v136, v131)                                 │
00:01:44 #9668 [Verbose] > │         let v137 : uint64 = v91 + 1UL                                        │
00:01:44 #9669 [Verbose] > │         v89.l0 <- v137                                                       │
00:01:44 #9670 [Verbose] > │         ()                                                                   │
00:01:44 #9671 [Verbose] > │     let v138 : string = "Input"                                              │
00:01:44 #9672 [Verbose] > │     let v139 : string = "Expected"                                           │
00:01:44 #9673 [Verbose] > │     let v140 : string = "Result"                                             │
00:01:44 #9674 [Verbose] > │     let v141 : string = "Best"                                               │
00:01:44 #9675 [Verbose] > │     let v142 : UH2 = UH2_1                                                   │
00:01:44 #9676 [Verbose] > │     let v143 : UH2 = UH2_0(v141, v142)                                       │
00:01:44 #9677 [Verbose] > │     let v144 : UH2 = UH2_0(v140, v143)                                       │
00:01:44 #9678 [Verbose] > │     let v145 : UH2 = UH2_0(v139, v144)                                       │
00:01:44 #9679 [Verbose] > │     let v146 : UH2 = UH2_0(v138, v145)                                       │
00:01:44 #9680 [Verbose] > │     let v147 : US0 = US0_0                                                   │
00:01:44 #9681 [Verbose] > │     let v148 : string = "---"                                                │
00:01:44 #9682 [Verbose] > │     let v149 : UH2 = UH2_1                                                   │
00:01:44 #9683 [Verbose] > │     let v150 : UH2 = UH2_0(v148, v149)                                       │
00:01:44 #9684 [Verbose] > │     let v151 : UH2 = UH2_0(v148, v150)                                       │
00:01:44 #9685 [Verbose] > │     let v152 : UH2 = UH2_0(v148, v151)                                       │
00:01:44 #9686 [Verbose] > │     let v153 : UH2 = UH2_0(v148, v152)                                       │
00:01:44 #9687 [Verbose] > │     let v154 : US0 = US0_0                                                   │
00:01:44 #9688 [Verbose] > │     let v155 : UH4 = UH4_1                                                   │
00:01:44 #9689 [Verbose] > │     let v156 : UH4 = UH4_0(v153, v154, v155)                                 │
00:01:44 #9690 [Verbose] > │     let v157 : UH4 = UH4_0(v146, v147, v156)                                 │
00:01:44 #9691 [Verbose] > │     let v158 : (struct (UH2 * US0) []) = method16(v157)                      │
00:01:44 #9692 [Verbose] > │     let v159 : uint64 = System.Convert.ToUInt64 v158.Length                  │
00:01:44 #9693 [Verbose] > │     let v160 : uint64 = System.Convert.ToUInt64 v88.Length                   │
00:01:44 #9694 [Verbose] > │     let v161 : uint64 = v159 + v160                                          │
00:01:44 #9695 [Verbose] > │     let v162 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 *      │
00:01:44 #9696 [Verbose] > │ US0)> (System.Convert.ToInt32(v161))                                         │
00:01:44 #9697 [Verbose] > │     let v163 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:01:44 #9698 [Verbose] > │     while method4(v161, v163) do                                             │
00:01:44 #9699 [Verbose] > │         let v165 : uint64 = v163.l0                                          │
00:01:44 #9700 [Verbose] > │         let v166 : bool = v165 < v159                                        │
00:01:44 #9701 [Verbose] > │         let struct (v172 : UH2, v173 : US0) =                                │
00:01:44 #9702 [Verbose] > │             if v166 then                                                     │
00:01:44 #9703 [Verbose] > │                 let struct (v167 : UH2, v168 : US0) = v158.[int v165]        │
00:01:44 #9704 [Verbose] > │                 struct (v167, v168)                                          │
00:01:44 #9705 [Verbose] > │             else                                                             │
00:01:44 #9706 [Verbose] > │                 let v169 : uint64 = v165 - v159                              │
00:01:44 #9707 [Verbose] > │                 let struct (v170 : UH2, v171 : US0) = v88.[int v169]         │
00:01:44 #9708 [Verbose] > │                 struct (v170, v171)                                          │
00:01:44 #9709 [Verbose] > │         v162.[int v165] <- struct (v172, v173)                               │
00:01:44 #9710 [Verbose] > │         let v174 : uint64 = v165 + 1UL                                       │
00:01:44 #9711 [Verbose] > │         v163.l0 <- v174                                                      │
00:01:44 #9712 [Verbose] > │         ()                                                                   │
00:01:44 #9713 [Verbose] > │     let v175 : uint64 = System.Convert.ToUInt64 v162.Length                  │
00:01:44 #9714 [Verbose] > │     let v176 : ((string []) []) = Array.zeroCreate<(string [])>              │
00:01:44 #9715 [Verbose] > │ (System.Convert.ToInt32(v175))                                               │
00:01:44 #9716 [Verbose] > │     let v177 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:01:44 #9717 [Verbose] > │     while method4(v175, v177) do                                             │
00:01:44 #9718 [Verbose] > │         let v179 : uint64 = v177.l0                                          │
00:01:44 #9719 [Verbose] > │         let struct (v180 : UH2, v181 : US0) = v162.[int v179]                │
00:01:44 #9720 [Verbose] > │         let v182 : (string []) = method19(v180)                              │
00:01:44 #9721 [Verbose] > │         v176.[int v179] <- v182                                              │
00:01:44 #9722 [Verbose] > │         let v183 : uint64 = v179 + 1UL                                       │
00:01:44 #9723 [Verbose] > │         v177.l0 <- v183                                                      │
00:01:44 #9724 [Verbose] > │         ()                                                                   │
00:01:44 #9725 [Verbose] > │     let v184 : ((string []) []) = v176 |> Array.transpose                    │
00:01:44 #9726 [Verbose] > │     let v185 : uint64 = System.Convert.ToUInt64 v184.Length                  │
00:01:44 #9727 [Verbose] > │     let v186 : (int64 []) = Array.zeroCreate<int64>                          │
00:01:44 #9728 [Verbose] > │ (System.Convert.ToInt32(v185))                                               │
00:01:44 #9729 [Verbose] > │     let v187 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:01:44 #9730 [Verbose] > │     while method4(v185, v187) do                                             │
00:01:44 #9731 [Verbose] > │         let v189 : uint64 = v187.l0                                          │
00:01:44 #9732 [Verbose] > │         let v190 : (string []) = v184.[int v189]                             │
00:01:44 #9733 [Verbose] > │         let v191 : uint64 = System.Convert.ToUInt64 v190.Length              │
00:01:44 #9734 [Verbose] > │         let v192 : (int64 []) = Array.zeroCreate<int64>                      │
00:01:44 #9735 [Verbose] > │ (System.Convert.ToInt32(v191))                                               │
00:01:44 #9736 [Verbose] > │         let v193 : Mut0 = {l0 = 0UL} : Mut0                                  │
00:01:44 #9737 [Verbose] > │         while method4(v191, v193) do                                         │
00:01:44 #9738 [Verbose] > │             let v195 : uint64 = v193.l0                                      │
00:01:44 #9739 [Verbose] > │             let v196 : string = v190.[int v195]                              │
00:01:44 #9740 [Verbose] > │             let v197 : int64 = System.Convert.ToInt64 v196.Length            │
00:01:44 #9741 [Verbose] > │             v192.[int v195] <- v197                                          │
00:01:44 #9742 [Verbose] > │             let v198 : uint64 = v195 + 1UL                                   │
00:01:44 #9743 [Verbose] > │             v193.l0 <- v198                                                  │
00:01:44 #9744 [Verbose] > │             ()                                                               │
00:01:44 #9745 [Verbose] > │         let v199 : (int64 []) = v192 |> Array.sortDescending                 │
00:01:44 #9746 [Verbose] > │         let v200 : int64 option = v199 |> Array.tryItem 0                    │
00:01:44 #9747 [Verbose] > │         let v201 : (int64 -> US1) = closure5()                               │
00:01:44 #9748 [Verbose] > │         let v202 : US1 = US1_0                                               │
00:01:44 #9749 [Verbose] > │         let v203 : US1 = v200 |> Option.map v201 |> Option.defaultValue v202 │
00:01:44 #9750 [Verbose] > │         let v206 : int64 =                                                   │
00:01:44 #9751 [Verbose] > │             match v203 with                                                  │
00:01:44 #9752 [Verbose] > │             | US1_0 -> (* None *)                                            │
00:01:44 #9753 [Verbose] > │                 0L                                                           │
00:01:44 #9754 [Verbose] > │             | US1_1(v204) -> (* Some *)                                      │
00:01:44 #9755 [Verbose] > │                 v204                                                         │
00:01:44 #9756 [Verbose] > │         v186.[int v189] <- v206                                              │
00:01:44 #9757 [Verbose] > │         let v207 : uint64 = v189 + 1UL                                       │
00:01:44 #9758 [Verbose] > │         v187.l0 <- v207                                                      │
00:01:44 #9759 [Verbose] > │         ()                                                                   │
00:01:44 #9760 [Verbose] > │     let v208 : uint64 = System.Convert.ToUInt64 v186.Length                  │
00:01:44 #9761 [Verbose] > │     let v209 : UH5 = UH5_1                                                   │
00:01:44 #9762 [Verbose] > │     let v210 : Mut3 = {l0 = 0UL; l1 = v209; l2 = 0} : Mut3                   │
00:01:44 #9763 [Verbose] > │     while method22(v208, v210) do                                            │
00:01:44 #9764 [Verbose] > │         let v212 : uint64 = v210.l0                                          │
00:01:44 #9765 [Verbose] > │         let struct (v213 : UH5, v214 : int32) = v210.l1, v210.l2             │
00:01:44 #9766 [Verbose] > │         let v215 : int64 = v186.[int v212]                                   │
00:01:44 #9767 [Verbose] > │         let v216 : int32 = v214 + 1                                          │
00:01:44 #9768 [Verbose] > │         let v217 : uint64 = v212 + 1UL                                       │
00:01:44 #9769 [Verbose] > │         let v218 : UH5 = UH5_0(v214, v215, v213)                             │
00:01:44 #9770 [Verbose] > │         v210.l0 <- v217                                                      │
00:01:44 #9771 [Verbose] > │         v210.l1 <- v218                                                      │
00:01:44 #9772 [Verbose] > │         v210.l2 <- v216                                                      │
00:01:44 #9773 [Verbose] > │         ()                                                                   │
00:01:44 #9774 [Verbose] > │     let struct (v219 : UH5, v220 : int32) = v210.l1, v210.l2                 │
00:01:44 #9775 [Verbose] > │     let v221 : UH5 = UH5_1                                                   │
00:01:44 #9776 [Verbose] > │     let v222 : UH5 = method23(v219, v221)                                    │
00:01:44 #9777 [Verbose] > │     let v223 : (struct (int32 * int64) []) = method24(v222)                  │
00:01:44 #9778 [Verbose] > │     let v224 : Map<int32, int64> = v223 |> Array.map (fun (struct (a, b)) -> │
00:01:44 #9779 [Verbose] > │ a, b) |> Map.ofArray                                                         │
00:01:44 #9780 [Verbose] > │     let v225 : (struct ((string []) * US0) []) = Array.zeroCreate<struct     │
00:01:44 #9781 [Verbose] > │ ((string []) * US0)> (System.Convert.ToInt32(v175))                          │
00:01:44 #9782 [Verbose] > │     let v226 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:01:44 #9783 [Verbose] > │     while method4(v175, v226) do                                             │
00:01:44 #9784 [Verbose] > │         let v228 : uint64 = v226.l0                                          │
00:01:44 #9785 [Verbose] > │         let struct (v229 : UH2, v230 : US0) = v162.[int v228]                │
00:01:44 #9786 [Verbose] > │         let v231 : UH6 = UH6_1                                               │
00:01:44 #9787 [Verbose] > │         let v232 : int32 = 0                                                 │
00:01:44 #9788 [Verbose] > │         let struct (v233 : UH6, v234 : int32) = method27(v229, v231, v232)   │
00:01:44 #9789 [Verbose] > │         let v235 : UH6 = UH6_1                                               │
00:01:44 #9790 [Verbose] > │         let v236 : UH6 = method28(v233, v235)                                │
00:01:44 #9791 [Verbose] > │         let v237 : UH2 = UH2_1                                               │
00:01:44 #9792 [Verbose] > │         let v238 : UH2 = method29(v224, v236, v237)                          │
00:01:44 #9793 [Verbose] > │         let v239 : (string []) = method30(v238)                              │
00:01:44 #9794 [Verbose] > │         v225.[int v228] <- struct (v239, v230)                               │
00:01:44 #9795 [Verbose] > │         let v240 : uint64 = v228 + 1UL                                       │
00:01:44 #9796 [Verbose] > │         v226.l0 <- v240                                                      │
00:01:44 #9797 [Verbose] > │         ()                                                                   │
00:01:44 #9798 [Verbose] > │     System.Console.WriteLine v2                                              │
00:01:44 #9799 [Verbose] > │     let v241 : uint64 = System.Convert.ToUInt64 v225.Length                  │
00:01:44 #9800 [Verbose] > │     let v242 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:01:44 #9801 [Verbose] > │     while method4(v241, v242) do                                             │
00:01:44 #9802 [Verbose] > │         let v244 : uint64 = v242.l0                                          │
00:01:44 #9803 [Verbose] > │         let struct (v245 : (string []), v246 : US0) = v225.[int v244]        │
00:01:44 #9804 [Verbose] > │         match v246 with                                                      │
00:01:44 #9805 [Verbose] > │         | US0_0 -> (* None *)                                                │
00:01:44 #9806 [Verbose] > │             let mutable result = None                                        │
00:01:44 #9807 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM                                 │
00:01:44 #9808 [Verbose] > │             ()                                                               │
00:01:44 #9809 [Verbose] > │             #endif                                                           │
00:01:44 #9810 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │
00:01:44 #9811 [Verbose] > │             ()                                                               │
00:01:44 #9812 [Verbose] > │             #endif                                                           │
00:01:44 #9813 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │
00:01:44 #9814 [Verbose] > │             System.Console.ResetColor ()                                     │
00:01:44 #9815 [Verbose] > │             ()                                                               │
00:01:44 #9816 [Verbose] > │             #endif                                                           │
00:01:44 #9817 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │
00:01:44 #9818 [Verbose] > │             System.Console.ResetColor ()                                     │
00:01:44 #9819 [Verbose] > │             ()                                                               │
00:01:44 #9820 [Verbose] > │             #endif                                                           │
00:01:44 #9821 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │
00:01:44 #9822 [Verbose] > │             System.Console.ResetColor ()                                     │
00:01:44 #9823 [Verbose] > │             ()                                                               │
00:01:44 #9824 [Verbose] > │             #endif                                                           │
00:01:44 #9825 [Verbose] > │             |> fun x -> result <- Some x                                     │
00:01:44 #9826 [Verbose] > │             result |> Option.get                                             │
00:01:44 #9827 [Verbose] > │             ()                                                               │
00:01:44 #9828 [Verbose] > │         | US0_1(v247) -> (* Some *)                                          │
00:01:44 #9829 [Verbose] > │             let mutable result = None                                        │
00:01:44 #9830 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM                                 │
00:01:44 #9831 [Verbose] > │             ()                                                               │
00:01:44 #9832 [Verbose] > │             #endif                                                           │
00:01:44 #9833 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │
00:01:44 #9834 [Verbose] > │             ()                                                               │
00:01:44 #9835 [Verbose] > │             #endif                                                           │
00:01:44 #9836 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │
00:01:44 #9837 [Verbose] > │             System.Console.ForegroundColor <- v247                           │
00:01:44 #9838 [Verbose] > │             ()                                                               │
00:01:44 #9839 [Verbose] > │             #endif                                                           │
00:01:44 #9840 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │
00:01:44 #9841 [Verbose] > │             System.Console.ForegroundColor <- v247                           │
00:01:44 #9842 [Verbose] > │             ()                                                               │
00:01:44 #9843 [Verbose] > │             #endif                                                           │
00:01:44 #9844 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │
00:01:44 #9845 [Verbose] > │             System.Console.ForegroundColor <- v247                           │
00:01:44 #9846 [Verbose] > │             ()                                                               │
00:01:44 #9847 [Verbose] > │             #endif                                                           │
00:01:44 #9848 [Verbose] > │             |> fun x -> result <- Some x                                     │
00:01:44 #9849 [Verbose] > │             result |> Option.get                                             │
00:01:44 #9850 [Verbose] > │             ()                                                               │
00:01:44 #9851 [Verbose] > │         let v248 : string = "\t| "                                           │
00:01:44 #9852 [Verbose] > │         let v249 : string = System.String.Join (v248, v245)                  │
00:01:44 #9853 [Verbose] > │         System.Console.WriteLine v249                                        │
00:01:44 #9854 [Verbose] > │         let mutable result = None                                            │
00:01:44 #9855 [Verbose] > │         #if FABLE_COMPILER_RUST && !WASM                                     │
00:01:44 #9856 [Verbose] > │         ()                                                                   │
00:01:44 #9857 [Verbose] > │         #endif                                                               │
00:01:44 #9858 [Verbose] > │         #if FABLE_COMPILER_RUST && WASM                                      │
00:01:44 #9859 [Verbose] > │         ()                                                                   │
00:01:44 #9860 [Verbose] > │         #endif                                                               │
00:01:44 #9861 [Verbose] > │         #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                 │
00:01:44 #9862 [Verbose] > │         System.Console.ResetColor ()                                         │
00:01:44 #9863 [Verbose] > │         ()                                                                   │
00:01:44 #9864 [Verbose] > │         #endif                                                               │
00:01:44 #9865 [Verbose] > │         #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                  │
00:01:44 #9866 [Verbose] > │         System.Console.ResetColor ()                                         │
00:01:44 #9867 [Verbose] > │         ()                                                                   │
00:01:44 #9868 [Verbose] > │         #endif                                                               │
00:01:44 #9869 [Verbose] > │         #if !FABLE_COMPILER_RUST && WASM                                     │
00:01:44 #9870 [Verbose] > │         System.Console.ResetColor ()                                         │
00:01:44 #9871 [Verbose] > │         ()                                                                   │
00:01:44 #9872 [Verbose] > │         #endif                                                               │
00:01:44 #9873 [Verbose] > │         |> fun x -> result <- Some x                                         │
00:01:44 #9874 [Verbose] > │         result |> Option.get                                                 │
00:01:44 #9875 [Verbose] > │         let v250 : uint64 = v244 + 1UL                                       │
00:01:44 #9876 [Verbose] > │         v242.l0 <- v250                                                      │
00:01:44 #9877 [Verbose] > │         ()                                                                   │
00:01:44 #9878 [Verbose] > │     let v251 : ((float []) []) = Array.zeroCreate<(float [])>                │
00:01:44 #9879 [Verbose] > │ (System.Convert.ToInt32(v87))                                                │
00:01:44 #9880 [Verbose] > │     let v252 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:01:44 #9881 [Verbose] > │     while method4(v87, v252) do                                              │
00:01:44 #9882 [Verbose] > │         let v254 : uint64 = v252.l0                                          │
00:01:44 #9883 [Verbose] > │         let struct (v255 : string, v256 : string, v257 : string, v258 :      │
00:01:44 #9884 [Verbose] > │ (int64 [])) = v11.[int v254]                                                 │
00:01:44 #9885 [Verbose] > │         let v259 : (int64 -> float) = float                                  │
00:01:44 #9886 [Verbose] > │         let v260 : uint64 = System.Convert.ToUInt64 v258.Length              │
00:01:44 #9887 [Verbose] > │         let v261 : (float []) = Array.zeroCreate<float>                      │
00:01:44 #9888 [Verbose] > │ (System.Convert.ToInt32(v260))                                               │
00:01:44 #9889 [Verbose] > │         let v262 : Mut0 = {l0 = 0UL} : Mut0                                  │
00:01:44 #9890 [Verbose] > │         while method4(v260, v262) do                                         │
00:01:44 #9891 [Verbose] > │             let v264 : uint64 = v262.l0                                      │
00:01:44 #9892 [Verbose] > │             let v265 : int64 = v258.[int v264]                               │
00:01:44 #9893 [Verbose] > │             let v266 : float = v259 v265                                     │
00:01:44 #9894 [Verbose] > │             v261.[int v264] <- v266                                          │
00:01:44 #9895 [Verbose] > │             let v267 : uint64 = v264 + 1UL                                   │
00:01:44 #9896 [Verbose] > │             v262.l0 <- v267                                                  │
00:01:44 #9897 [Verbose] > │             ()                                                               │
00:01:44 #9898 [Verbose] > │         v251.[int v254] <- v261                                              │
00:01:44 #9899 [Verbose] > │         let v268 : uint64 = v254 + 1UL                                       │
00:01:44 #9900 [Verbose] > │         v252.l0 <- v268                                                      │
00:01:44 #9901 [Verbose] > │         ()                                                                   │
00:01:44 #9902 [Verbose] > │     let v269 : ((float []) []) = v251 |> Array.transpose                     │
00:01:44 #9903 [Verbose] > │     let v270 : uint64 = System.Convert.ToUInt64 v269.Length                  │
00:01:44 #9904 [Verbose] > │     let v271 : (float []) = Array.zeroCreate<float>                          │
00:01:44 #9905 [Verbose] > │ (System.Convert.ToInt32(v270))                                               │
00:01:44 #9906 [Verbose] > │     let v272 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:01:44 #9907 [Verbose] > │     while method4(v270, v272) do                                             │
00:01:44 #9908 [Verbose] > │         let v274 : uint64 = v272.l0                                          │
00:01:44 #9909 [Verbose] > │         let v275 : (float []) = v269.[int v274]                              │
00:01:44 #9910 [Verbose] > │         let v276 : float = v275 |> Array.average                             │
00:01:44 #9911 [Verbose] > │         v271.[int v274] <- v276                                              │
00:01:44 #9912 [Verbose] > │         let v277 : uint64 = v274 + 1UL                                       │
00:01:44 #9913 [Verbose] > │         v272.l0 <- v277                                                      │
00:01:44 #9914 [Verbose] > │         ()                                                                   │
00:01:44 #9915 [Verbose] > │     let v278 : (float -> int64) = int64                                      │
00:01:44 #9916 [Verbose] > │     let v279 : uint64 = System.Convert.ToUInt64 v271.Length                  │
00:01:44 #9917 [Verbose] > │     let v280 : (int64 []) = Array.zeroCreate<int64>                          │
00:01:44 #9918 [Verbose] > │ (System.Convert.ToInt32(v279))                                               │
00:01:44 #9919 [Verbose] > │     let v281 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:01:44 #9920 [Verbose] > │     while method4(v279, v281) do                                             │
00:01:44 #9921 [Verbose] > │         let v283 : uint64 = v281.l0                                          │
00:01:44 #9922 [Verbose] > │         let v284 : float = v271.[int v283]                                   │
00:01:44 #9923 [Verbose] > │         let v285 : int64 = v278 v284                                         │
00:01:44 #9924 [Verbose] > │         v280.[int v283] <- v285                                              │
00:01:44 #9925 [Verbose] > │         let v286 : uint64 = v283 + 1UL                                       │
00:01:44 #9926 [Verbose] > │         v281.l0 <- v286                                                      │
00:01:44 #9927 [Verbose] > │         ()                                                                   │
00:01:44 #9928 [Verbose] > │     let v287 : uint64 = System.Convert.ToUInt64 v280.Length                  │
00:01:44 #9929 [Verbose] > │     let v288 : UH5 = UH5_1                                                   │
00:01:44 #9930 [Verbose] > │     let v289 : Mut3 = {l0 = 0UL; l1 = v288; l2 = 0} : Mut3                   │
00:01:44 #9931 [Verbose] > │     while method22(v287, v289) do                                            │
00:01:44 #9932 [Verbose] > │         let v291 : uint64 = v289.l0                                          │
00:01:44 #9933 [Verbose] > │         let struct (v292 : UH5, v293 : int32) = v289.l1, v289.l2             │
00:01:44 #9934 [Verbose] > │         let v294 : int64 = v280.[int v291]                                   │
00:01:44 #9935 [Verbose] > │         let v295 : int32 = v293 + 1                                          │
00:01:44 #9936 [Verbose] > │         let v296 : uint64 = v291 + 1UL                                       │
00:01:44 #9937 [Verbose] > │         let v297 : UH5 = UH5_0(v293, v294, v292)                             │
00:01:44 #9938 [Verbose] > │         v289.l0 <- v296                                                      │
00:01:44 #9939 [Verbose] > │         v289.l1 <- v297                                                      │
00:01:44 #9940 [Verbose] > │         v289.l2 <- v295                                                      │
00:01:44 #9941 [Verbose] > │         ()                                                                   │
00:01:44 #9942 [Verbose] > │     let struct (v298 : UH5, v299 : int32) = v289.l1, v289.l2                 │
00:01:44 #9943 [Verbose] > │     let v300 : UH5 = UH5_1                                                   │
00:01:44 #9944 [Verbose] > │     let v301 : UH5 = method23(v298, v300)                                    │
00:01:44 #9945 [Verbose] > │     let v302 : (struct (int32 * int64) []) = method33(v301)                  │
00:01:44 #9946 [Verbose] > │     System.Console.WriteLine v2                                              │
00:01:44 #9947 [Verbose] > │     let v303 : string = "Average Ranking  "                                  │
00:01:44 #9948 [Verbose] > │     System.Console.WriteLine v303                                            │
00:01:44 #9949 [Verbose] > │     let v304 : (struct (int32 * int64) -> int64) = closure6()                │
00:01:44 #9950 [Verbose] > │     let v305 : (struct (int32 * int64) []) = v302 |> Array.sortBy v304       │
00:01:44 #9951 [Verbose] > │     let v306 : uint64 = System.Convert.ToUInt64 v305.Length                  │
00:01:44 #9952 [Verbose] > │     let v307 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:01:44 #9953 [Verbose] > │     while method4(v306, v307) do                                             │
00:01:44 #9954 [Verbose] > │         let v309 : uint64 = v307.l0                                          │
00:01:44 #9955 [Verbose] > │         let struct (v310 : int32, v311 : int64) = v305.[int v309]            │
00:01:44 #9956 [Verbose] > │         let v312 : string = $"Test case %d{v310 + 1}. Average Time: %A{v311} │
00:01:44 #9957 [Verbose] > │ "                                                                            │
00:01:44 #9958 [Verbose] > │         System.Console.WriteLine v312                                        │
00:01:44 #9959 [Verbose] > │         let v313 : uint64 = v309 + 1UL                                       │
00:01:44 #9960 [Verbose] > │         v307.l0 <- v313                                                      │
00:01:44 #9961 [Verbose] > │         ()                                                                   │
00:01:44 #9962 [Verbose] > │     ()                                                                       │
00:01:44 #9963 [Verbose] > │ method0()                                                                    │
00:01:44 #9964 [Verbose] > │                                                                              │
00:01:44 #9965 [Verbose] > │                                                                              │
00:01:44 #9966 [Verbose] > │                                                                              │
00:01:44 #9967 [Verbose] > │ Test: v0                                                                     │
00:01:44 #9968 [Verbose] > │                                                                              │
00:01:44 #9969 [Verbose] > │ Solution: struct ("a", "a")                                                  │
00:01:44 #9970 [Verbose] > │ Test case 1. A. Time: 30                                                     │
00:01:44 #9971 [Verbose] > │ Test case 2. B. Time: 31                                                     │
00:01:44 #9972 [Verbose] > │                                                                              │
00:01:44 #9973 [Verbose] > │ Solution: struct ("b", "b")                                                  │
00:01:44 #9974 [Verbose] > │ Test case 1. A. Time: 27                                                     │
00:01:44 #9975 [Verbose] > │ Test case 2. B. Time: 20                                                     │
00:01:44 #9976 [Verbose] > │                                                                              │
00:01:44 #9977 [Verbose] > │ Input            	| Expected	| Result	| Best                                       │
00:01:44 #9978 [Verbose] > │ ---              	| ---     	| ---   	| ---                                        │
00:01:44 #9979 [Verbose] > │ struct ("a", "a")	| "a"     	| "a"   	| struct (1L, 30L)                           │
00:01:44 #9980 [Verbose] > │ struct ("b", "b")	| "b"     	| "b"   	| struct (2L, 20L)                           │
00:01:44 #9981 [Verbose] > │                                                                              │
00:01:44 #9982 [Verbose] > │ Average Ranking                                                              │
00:01:44 #9983 [Verbose] > │ Test case 2. Average Time: 25L                                               │
00:01:44 #9984 [Verbose] > │ Test case 1. Average Time: 28L                                               │
00:01:44 #9985 [Verbose] > │                                                                              │
00:01:44 #9986 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:44 #9987 [Verbose] >
00:01:44 #9988 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:44 #9989 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:44 #9990 [Verbose] > │ ## emptyTests                                                                │
00:01:44 #9991 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:44 #9992 [Verbose] >
00:01:44 #9993 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:44 #9994 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:44 #9995 [Verbose] > │ Test: Empty                                                                  │
00:01:44 #9996 [Verbose] > │                                                                              │
00:01:44 #9997 [Verbose] > │ Solution: 0                                                                  │
00:01:44 #9998 [Verbose] > │ Test case 1. A. Time: 61L                                                    │
00:01:44 #9999 [Verbose] > │                                                                              │
00:01:44 #10000 [Verbose] > │ Solution: 2                                                                  │
00:01:44 #10001 [Verbose] > │ Test case 1. A. Time: 62L                                                    │
00:01:44 #10002 [Verbose] > │                                                                              │
00:01:44 #10003 [Verbose] > │ Solution: 5                                                                  │
00:01:44 #10004 [Verbose] > │ Test case 1. A. Time: 70L                                                    │
00:01:44 #10005 [Verbose] > │                                                                              │
00:01:44 #10006 [Verbose] > │ Input   | Expected        | Result  | Best                                   │
00:01:44 #10007 [Verbose] > │ ---     | ---             | ---     | ---                                    │
00:01:44 #10008 [Verbose] > │ 0       | 0               | 0       | (1, 61)                                │
00:01:44 #10009 [Verbose] > │ 2       | 2               | 2       | (1, 62)                                │
00:01:44 #10010 [Verbose] > │ 5       | 5               | 5       | (1, 70)                                │
00:01:44 #10011 [Verbose] > │                                                                              │
00:01:44 #10012 [Verbose] > │ Averages                                                                     │
00:01:44 #10013 [Verbose] > │ Test case 1. Average Time: 64L                                               │
00:01:44 #10014 [Verbose] > │                                                                              │
00:01:44 #10015 [Verbose] > │ Ranking                                                                      │
00:01:44 #10016 [Verbose] > │ Test case 1. Average Time: 64L                                               │
00:01:44 #10017 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:44 #10018 [Verbose] >
00:01:44 #10019 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:44 #10020 [Verbose] > // // test
00:01:44 #10021 [Verbose] >
00:01:44 #10022 [Verbose] > inl get_solutions () =
00:01:44 #10023 [Verbose] >     [[
00:01:44 #10024 [Verbose] >         "A",
00:01:44 #10025 [Verbose] >         fun n =>
00:01:44 #10026 [Verbose] >             n + 1f64
00:01:44 #10027 [Verbose] >     ]]
00:01:44 #10028 [Verbose] >
00:01:44 #10029 [Verbose] > inl rec empty_1_tests () =
00:01:44 #10030 [Verbose] >     inl test_cases = [[
00:01:44 #10031 [Verbose] >         0, 1
00:01:44 #10032 [Verbose] >         2, 3
00:01:44 #10033 [Verbose] >         5, 6
00:01:44 #10034 [Verbose] >     ]]
00:01:44 #10035 [Verbose] >
00:01:44 #10036 [Verbose] >     inl solutions = get_solutions ()
00:01:44 #10037 [Verbose] >
00:01:44 #10038 [Verbose] >     // inl is_fast () = true
00:01:44 #10039 [Verbose] >
00:01:44 #10040 [Verbose] >     inl count =
00:01:44 #10041 [Verbose] >         if is_fast ()
00:01:44 #10042 [Verbose] >         then 1000i32
00:01:44 #10043 [Verbose] >         else 2000000i32
00:01:44 #10044 [Verbose] >
00:01:44 #10045 [Verbose] >     run_all (nameof empty_1_tests) count solutions test_cases
00:01:44 #10046 [Verbose] >     |> sort_result_list
00:01:44 #10047 [Verbose] >
00:01:44 #10048 [Verbose] > empty_1_tests ()
00:01:44 #10049 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-1372-7202-7377de6337b7/main.spi
00:01:44 #10050 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-1371-7107-7ace535f2282/main.spi
00:01:46 #10051 [Verbose] >
00:01:46 #10052 [Verbose] > ╭─[ 1.99s - stdout ]───────────────────────────────────────────────────────────╮
00:01:46 #10053 [Verbose] > │ type UH0 =                                                                   │
00:01:46 #10054 [Verbose] > │     | UH0_0 of int32 * (unit -> UH0)                                         │
00:01:46 #10055 [Verbose] > │     | UH0_1                                                                  │
00:01:46 #10056 [Verbose] > │ and [<Struct>] US0 =                                                         │
00:01:46 #10057 [Verbose] > │     | US0_0 of f0_0 : UH0                                                    │
00:01:46 #10058 [Verbose] > │     | US0_1 of f1_0 : (unit -> UH0)                                          │
00:01:46 #10059 [Verbose] > │ and Mut0 = {mutable l0 : US0}                                                │
00:01:46 #10060 [Verbose] > │ and [<Struct>] US1 =                                                         │
00:01:46 #10061 [Verbose] > │     | US1_0                                                                  │
00:01:46 #10062 [Verbose] > │     | US1_1 of f1_0 : int32                                                  │
00:01:46 #10063 [Verbose] > │ let rec closure0 (v0 : int32) () : UH0 =                                     │
00:01:46 #10064 [Verbose] > │     let v1 : int32 = v0 + 1                                                  │
00:01:46 #10065 [Verbose] > │     method1(v1)                                                              │
00:01:46 #10066 [Verbose] > │ and method1 (v0 : int32) : UH0 =                                             │
00:01:46 #10067 [Verbose] > │     printfn $"print_and_return / x: {v0}"                                    │
00:01:46 #10068 [Verbose] > │     let v1 : (unit -> UH0) = closure0(v0)                                    │
00:01:46 #10069 [Verbose] > │     UH0_0(v0, v1)                                                            │
00:01:46 #10070 [Verbose] > │ and closure1 (v0 : UH0) () : UH0 =                                           │
00:01:46 #10071 [Verbose] > │     v0                                                                       │
00:01:46 #10072 [Verbose] > │ and closure2 (v0 : UH0, v1 : Mut0) () : UH0 =                                │
00:01:46 #10073 [Verbose] > │     let v2 : US0 = v1.l0                                                     │
00:01:46 #10074 [Verbose] > │     match v2 with                                                            │
00:01:46 #10075 [Verbose] > │     | US0_0(v3) -> (* Computed *)                                            │
00:01:46 #10076 [Verbose] > │         v3                                                                   │
00:01:46 #10077 [Verbose] > │     | US0_1(v4) -> (* NotComputed *)                                         │
00:01:46 #10078 [Verbose] > │         let v5 : UH0 = v4 ()                                                 │
00:01:46 #10079 [Verbose] > │         let v12 : UH0 =                                                      │
00:01:46 #10080 [Verbose] > │             match v5 with                                                    │
00:01:46 #10081 [Verbose] > │             | UH0_0(v7, v8) -> (* StreamCons *)                              │
00:01:46 #10082 [Verbose] > │                 let v9 : (unit -> UH0) = method2(v0, v8)                     │
00:01:46 #10083 [Verbose] > │                 UH0_0(v7, v9)                                                │
00:01:46 #10084 [Verbose] > │             | UH0_1 -> (* StreamNil *)                                       │
00:01:46 #10085 [Verbose] > │                 UH0_1                                                        │
00:01:46 #10086 [Verbose] > │         let v13 : US0 = US0_0(v12)                                           │
00:01:46 #10087 [Verbose] > │         v1.l0 <- v13                                                         │
00:01:46 #10088 [Verbose] > │         v12                                                                  │
00:01:46 #10089 [Verbose] > │ and method2 (v0 : UH0, v1 : (unit -> UH0)) : (unit -> UH0) =                 │
00:01:46 #10090 [Verbose] > │     let v2 : US0 = US0_1(v1)                                                 │
00:01:46 #10091 [Verbose] > │     let v3 : Mut0 = {l0 = v2} : Mut0                                         │
00:01:46 #10092 [Verbose] > │     closure2(v0, v3)                                                         │
00:01:46 #10093 [Verbose] > │ and method3 (v0 : int32, v1 : UH0) : US1 =                                   │
00:01:46 #10094 [Verbose] > │     match v1 with                                                            │
00:01:46 #10095 [Verbose] > │     | UH0_0(v2, v3) -> (* StreamCons *)                                      │
00:01:46 #10096 [Verbose] > │         let v4 : bool = v0 <= 0                                              │
00:01:46 #10097 [Verbose] > │         if v4 then                                                           │
00:01:46 #10098 [Verbose] > │             US1_1(v2)                                                        │
00:01:46 #10099 [Verbose] > │         else                                                                 │
00:01:46 #10100 [Verbose] > │             let v6 : int32 = v0 - 1                                          │
00:01:46 #10101 [Verbose] > │             let v7 : UH0 = v3 ()                                             │
00:01:46 #10102 [Verbose] > │             method3(v6, v7)                                                  │
00:01:46 #10103 [Verbose] > │     | UH0_1 -> (* StreamNil *)                                               │
00:01:46 #10104 [Verbose] > │         US1_0                                                                │
00:01:46 #10105 [Verbose] > │ and method4 (v0 : bool) : bool =                                             │
00:01:46 #10106 [Verbose] > │     v0                                                                       │
00:01:46 #10107 [Verbose] > │ and method0 () : unit =                                                      │
00:01:46 #10108 [Verbose] > │     let v0 : int32 = 0                                                       │
00:01:46 #10109 [Verbose] > │     let v1 : UH0 = method1(v0)                                               │
00:01:46 #10110 [Verbose] > │     let v2 : (unit -> UH0) = closure1(v1)                                    │
00:01:46 #10111 [Verbose] > │     let v3 : (unit -> UH0) = method2(v1, v2)                                 │
00:01:46 #10112 [Verbose] > │     let v4 : UH0 = v3 ()                                                     │
00:01:46 #10113 [Verbose] > │     let v5 : int32 = 3                                                       │
00:01:46 #10114 [Verbose] > │     let v6 : US1 = method3(v5, v4)                                           │
00:01:46 #10115 [Verbose] > │     let v10 : int32 =                                                        │
00:01:46 #10116 [Verbose] > │         match v6 with                                                        │
00:01:46 #10117 [Verbose] > │         | US1_0 -> (* None *)                                                │
00:01:46 #10118 [Verbose] > │             failwith<int32> "Option does not have a value."                  │
00:01:46 #10119 [Verbose] > │         | US1_1(v7) -> (* Some *)                                            │
00:01:46 #10120 [Verbose] > │             v7                                                               │
00:01:46 #10121 [Verbose] > │     let v11 : string = $"%A{v10}"                                            │
00:01:46 #10122 [Verbose] > │     System.Console.WriteLine v11                                             │
00:01:46 #10123 [Verbose] > │     let v12 : bool = v10 = 3                                                 │
00:01:46 #10124 [Verbose] > │     let v14 : bool =                                                         │
00:01:46 #10125 [Verbose] > │         if v12 then                                                          │
00:01:46 #10126 [Verbose] > │             true                                                             │
00:01:46 #10127 [Verbose] > │         else                                                                 │
00:01:46 #10128 [Verbose] > │             method4(v12)                                                     │
00:01:46 #10129 [Verbose] > │     let v15 : string = $"__expect / actual: %A{v10} / expected: %A{3}"       │
00:01:46 #10130 [Verbose] > │     let v16 : bool = v14 = false                                             │
00:01:46 #10131 [Verbose] > │     if v16 then                                                              │
00:01:46 #10132 [Verbose] > │         failwith<unit> v15                                                   │
00:01:46 #10133 [Verbose] > │     let v17 : UH0 = v3 ()                                                    │
00:01:46 #10134 [Verbose] > │     let v18 : int32 = 5                                                      │
00:01:46 #10135 [Verbose] > │     let v19 : US1 = method3(v18, v17)                                        │
00:01:46 #10136 [Verbose] > │     let v23 : int32 =                                                        │
00:01:46 #10137 [Verbose] > │         match v19 with                                                       │
00:01:46 #10138 [Verbose] > │         | US1_0 -> (* None *)                                                │
00:01:46 #10139 [Verbose] > │             failwith<int32> "Option does not have a value."                  │
00:01:46 #10140 [Verbose] > │         | US1_1(v20) -> (* Some *)                                           │
00:01:46 #10141 [Verbose] > │             v20                                                              │
00:01:46 #10142 [Verbose] > │     let v24 : string = $"%A{v23}"                                            │
00:01:46 #10143 [Verbose] > │     System.Console.WriteLine v24                                             │
00:01:46 #10144 [Verbose] > │     let v25 : bool = v23 = 5                                                 │
00:01:46 #10145 [Verbose] > │     let v27 : bool =                                                         │
00:01:46 #10146 [Verbose] > │         if v25 then                                                          │
00:01:46 #10147 [Verbose] > │             true                                                             │
00:01:46 #10148 [Verbose] > │         else                                                                 │
00:01:46 #10149 [Verbose] > │             method4(v25)                                                     │
00:01:46 #10150 [Verbose] > │     let v28 : string = $"__expect / actual: %A{v23} / expected: %A{5}"       │
00:01:46 #10151 [Verbose] > │     let v29 : bool = v27 = false                                             │
00:01:46 #10152 [Verbose] > │     if v29 then                                                              │
00:01:46 #10153 [Verbose] > │         failwith<unit> v28                                                   │
00:01:46 #10154 [Verbose] > │ method0()                                                                    │
00:01:46 #10155 [Verbose] > │                                                                              │
00:01:46 #10156 [Verbose] > │ print_and_return / x: 0                                                      │
00:01:46 #10157 [Verbose] > │ print_and_return / x: 1                                                      │
00:01:46 #10158 [Verbose] > │ print_and_return / x: 2                                                      │
00:01:46 #10159 [Verbose] > │ print_and_return / x: 3                                                      │
00:01:46 #10160 [Verbose] > │ 3                                                                            │
00:01:46 #10161 [Verbose] > │ print_and_return / x: 4                                                      │
00:01:46 #10162 [Verbose] > │ print_and_return / x: 5                                                      │
00:01:46 #10163 [Verbose] > │ 5                                                                            │
00:01:46 #10164 [Verbose] > │                                                                              │
00:01:46 #10165 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:46 #10166 [Verbose] >
00:01:46 #10167 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:46 #10168 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:46 #10169 [Verbose] > │ ## unfold                                                                    │
00:01:46 #10170 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:46 #10171 [Verbose] >
00:01:46 #10172 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:46 #10173 [Verbose] > inl unfold f x0 =
00:01:46 #10174 [Verbose] >     inl rec body x =
00:01:46 #10175 [Verbose] >         match f x with
00:01:46 #10176 [Verbose] >         | Some (x', y) => StreamCons (x', fun () => loop y)
00:01:46 #10177 [Verbose] >         | None => StreamNil
00:01:46 #10178 [Verbose] >     and inl loop x = join_body_unit body x0 x
00:01:46 #10179 [Verbose] >     loop x0
00:01:46 #10180 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-1573-7304-7ac705d4e8d3/main.spi
00:01:46 #10181 [Verbose] >
00:01:46 #10182 [Verbose] > ╭─[ 175.19ms - stdout ]────────────────────────────────────────────────────────╮
00:01:46 #10183 [Verbose] > │ ()                                                                           │
00:01:46 #10184 [Verbose] > │                                                                              │
00:01:46 #10185 [Verbose] > │                                                                              │
00:01:46 #10186 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:46 #10187 [Verbose] >
00:01:46 #10188 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:46 #10189 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:46 #10190 [Verbose] > │ ## iterate                                                                   │
00:01:46 #10191 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:46 #10192 [Verbose] >
00:01:46 #10193 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:46 #10194 [Verbose] > inl iterate f =
00:01:46 #10195 [Verbose] >     unfold (fun x => Some (x, f x))
00:01:46 #10196 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-1590-9080-97234b84d395/main.spi
00:01:46 #10197 [Verbose] >
00:01:46 #10198 [Verbose] > ╭─[ 171.07ms - stdout ]────────────────────────────────────────────────────────╮
00:01:46 #10199 [Verbose] > │ ()                                                                           │
00:01:46 #10200 [Verbose] > │                                                                              │
00:01:46 #10201 [Verbose] > │                                                                              │
00:01:46 #10202 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:46 #10203 [Verbose] >
00:01:46 #10204 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:46 #10205 [Verbose] > // // test
00:01:46 #10206 [Verbose] >
00:01:46 #10207 [Verbose] > iterate ((*) 2) 1i32
00:01:46 #10208 [Verbose] > |> item 10i32
00:01:46 #10209 [Verbose] > |> _assert_eq 1024
00:01:47 #10210 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-1607-0794-0ab2757b17a1/main.spi
00:01:47 #10211 [Verbose] >
00:01:47 #10212 [Verbose] > ╭─[ 166.92ms - stdout ]────────────────────────────────────────────────────────╮
00:01:47 #10213 [Verbose] > │ let rec method0 () : unit =                                                  │
00:01:47 #10214 [Verbose] > │     let v0 : string = $"%A{1024}"                                            │
00:01:47 #10215 [Verbose] > │     System.Console.WriteLine v0                                              │
00:01:47 #10216 [Verbose] > │     let v1 : string = $"__expect / actual: %A{1024} / expected: %A{1024}"    │
00:01:47 #10217 [Verbose] > │     ()                                                                       │
00:01:47 #10218 [Verbose] > │ method0()                                                                    │
00:01:47 #10219 [Verbose] > │                                                                              │
00:01:47 #10220 [Verbose] > │ 1024                                                                         │
00:01:47 #10221 [Verbose] > │                                                                              │
00:01:47 #10222 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:47 #10223 [Verbose] >
00:01:47 #10224 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:47 #10225 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:47 #10226 [Verbose] > │ ## take_while                                                                │
00:01:47 #10227 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:47 #10228 [Verbose] >
00:01:47 #10229 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:47 #10230 [Verbose] > inl take_while cond s =
00:01:47 #10231 [Verbose] >     inl rec body i = function
00:01:47 #10232 [Verbose] >         | StreamCons (st, fn) when cond st i => StreamCons (st, fun () => loop
00:01:47 #10233 [Verbose] > (i + 1) (fn ()))
00:01:47 #10234 [Verbose] >         | _ => StreamNil
00:01:47 #10235 [Verbose] >     and inl loop i = join_body body i
00:01:47 #10236 [Verbose] >     loop 0 s
00:01:47 #10237 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-1624-2487-2e7436815866/main.spi
00:01:47 #10238 [Verbose] >
00:01:47 #10239 [Verbose] > ╭─[ 141.80ms - stdout ]────────────────────────────────────────────────────────╮
00:01:47 #10240 [Verbose] > │ ()                                                                           │
00:01:47 #10241 [Verbose] > │                                                                              │
00:01:47 #10242 [Verbose] > │                                                                              │
00:01:47 #10243 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:47 #10244 [Verbose] >
00:01:47 #10245 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:47 #10246 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:47 #10247 [Verbose] > │ ## sum                                                                       │
00:01:47 #10248 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:47 #10249 [Verbose] >
00:01:47 #10250 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:47 #10251 [Verbose] > inl sum seq =
00:01:47 #10252 [Verbose] >     seq |> fold (+) 0
00:01:47 #10253 [Verbose] >
00:01:47 #10254 [Verbose] > ╭─[ 4.83s - return value ]─────────────────────────────────────────────────────╮
00:01:47 #10255 [Verbose] > │ .rs output:                                                                  │
00:01:47 #10256 [Verbose] > │ "1                                                                           │
00:01:47 #10257 [Verbose] > │ 2                                                                            │
00:01:47 #10258 [Verbose] > │ 3                                                                            │
00:01:47 #10259 [Verbose] > │ "                                                                            │
00:01:47 #10260 [Verbose] > │                                                                              │
00:01:47 #10261 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:47 #10262 [Verbose] >
00:01:47 #10263 [Verbose] > ╭─[ 4.83s - stdout ]───────────────────────────────────────────────────────────╮
00:01:47 #10264 [Verbose] > │                                                                              │
00:01:47 #10265 [Verbose] > │ .fsx:                                                                        │
00:01:47 #10266 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Func0<$0>")>] type Func0<'T> = class    │
00:01:47 #10267 [Verbose] > │ end                                                                          │
00:01:47 #10268 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Func1<$0, $1>")>] type Func0<'T, 'U> =  │
00:01:47 #10269 [Verbose] > │ class end                                                                    │
00:01:47 #10270 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Box<$0>")>] type Box<'T> = class end    │
00:01:47 #10271 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("dyn $0")>] type Dyn<'T> = class end     │
00:01:47 #10272 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Fn() -> $0")>] type Fn<'T> = class end  │
00:01:47 #10273 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Fn()")>] type FnUnit = class end        │
00:01:47 #10274 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("FnOnce() -> $0")>] type FnOnce<'T> =    │
00:01:47 #10275 [Verbose] > │ class end                                                                    │
00:01:47 #10276 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Fn($0, $1)")>] type ActionFn2<'T, 'U> = │
00:01:47 #10277 [Verbose] > │ class end                                                                    │
00:01:47 #10278 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("impl $0")>] type Impl<'T> = class end   │
00:01:47 #10279 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("mut $0")>] type Mut<'T> = class end     │
00:01:47 #10280 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("&$0")>] type Ref<'T> = class end        │
00:01:47 #10281 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("&'static $0")>] type StaticRef<'T> =    │
00:01:47 #10282 [Verbose] > │ class end                                                                    │
00:01:47 #10283 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("MutCell<$0>")>] type MutCell<'T> =      │
00:01:47 #10284 [Verbose] > │ class end                                                                    │
00:01:47 #10285 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::any::Any")>] type std_any_Any =    │
00:01:47 #10286 [Verbose] > │ class end                                                                    │
00:01:47 #10287 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::cell::RefCell<$0>")>] type         │
00:01:47 #10288 [Verbose] > │ std_cell_RefCell<'T> = class end                                             │
00:01:47 #10289 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::pin::Pin<$0>")>] type              │
00:01:47 #10290 [Verbose] > │ std_pin_Pin<'T> = class end                                                  │
00:01:47 #10291 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::rc::Rc<$0>")>] type std_rc_Rc<'T>  │
00:01:47 #10292 [Verbose] > │ = class end                                                                  │
00:01:47 #10293 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::rc::Weak<$0>")>] type              │
00:01:47 #10294 [Verbose] > │ std_rc_Weak<'T> = class end                                                  │
00:01:47 #10295 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::sync::Arc<$0>")>] type             │
00:01:47 #10296 [Verbose] > │ std_sync_Arc<'T> = class end                                                 │
00:01:47 #10297 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("str")>] type Str = class end            │
00:01:47 #10298 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>] type            │
00:01:47 #10299 [Verbose] > │ base64_DecodeError = class end                                               │
00:01:47 #10300 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>] type               │
00:01:47 #10301 [Verbose] > │ borsh_io_Error = class end                                                   │
00:01:47 #10302 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>] type               │
00:01:47 #10303 [Verbose] > │ js_sys_JsString = class end                                                  │
00:01:47 #10304 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>] type              │
00:01:47 #10305 [Verbose] > │ serde_json_Error = class end                                                 │
00:01:47 #10306 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>] type              │
00:01:47 #10307 [Verbose] > │ serde_json_Value = class end                                                 │
00:01:47 #10309 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>] type      │
00:01:47 #10310 [Verbose] > │ serde_wasm_bindgen_Error = class end                                         │
00:01:47 #10311 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::str::Utf8Error")>] type            │
00:01:47 #10308 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-1639-3921-3e87edff12ae/main.spi
00:01:47 #10312 [Verbose] > │ std_str_Utf8Error = class end                                                │
00:01:47 #10313 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] type            │
00:01:47 #10314 [Verbose] > │ std_string_String = class end                                                │
00:01:47 #10315 [Verbose] > │ let rec method1 () : string =                                                │
00:01:47 #10316 [Verbose] > │     let v0 : string = ""                                                     │
00:01:47 #10317 [Verbose] > │     v0                                                                       │
00:01:47 #10318 [Verbose] > │ and method2 (v0 : string) : string =                                         │
00:01:47 #10319 [Verbose] > │     v0                                                                       │
00:01:47 #10320 [Verbose] > │ and method3 () : string =                                                    │
00:01:47 #10321 [Verbose] > │     let v0 : string = "1"                                                    │
00:01:47 #10322 [Verbose] > │     v0                                                                       │
00:01:47 #10323 [Verbose] > │ and method4 () : string =                                                    │
00:01:47 #10324 [Verbose] > │     let v0 : string = "\n"                                                   │
00:01:47 #10325 [Verbose] > │     v0                                                                       │
00:01:47 #10326 [Verbose] > │ and method5 (v0 : std_string_String) : std_string_String =                   │
00:01:47 #10327 [Verbose] > │     v0                                                                       │
00:01:47 #10328 [Verbose] > │ and method6 (v0 : string) : string =                                         │
00:01:47 #10329 [Verbose] > │     v0                                                                       │
00:01:47 #10330 [Verbose] > │ and method7 () : string =                                                    │
00:01:47 #10331 [Verbose] > │     let v0 : string = "2"                                                    │
00:01:47 #10332 [Verbose] > │     v0                                                                       │
00:01:47 #10333 [Verbose] > │ and method8 () : string =                                                    │
00:01:47 #10334 [Verbose] > │     let v0 : string = "3"                                                    │
00:01:47 #10335 [Verbose] > │     v0                                                                       │
00:01:47 #10336 [Verbose] > │ and method9 (v0 : bool) : bool =                                             │
00:01:47 #10337 [Verbose] > │     v0                                                                       │
00:01:47 #10338 [Verbose] > │ and method0 () : unit =                                                      │
00:01:47 #10339 [Verbose] > │     let v0 : string = method1()                                              │
00:01:47 #10340 [Verbose] > │     let v1 : string = method2(v0)                                            │
00:01:47 #10341 [Verbose] > │     let v2 : string = $"fable_library_rust::String_::LrcStr::as_str(&v1)"    │
00:01:47 #10342 [Verbose] > │     let v3 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr () v2            │
00:01:47 #10343 [Verbose] > │     let v4 : string = "String::from(v3)"                                     │
00:01:47 #10344 [Verbose] > │     let v5 : std_string_String = Fable.Core.RustInterop.emitRustExpr () v4   │
00:01:47 #10345 [Verbose] > │     let v6 : string = method3()                                              │
00:01:47 #10346 [Verbose] > │     let v7 : string = $"fable_library_rust::String_::LrcStr::as_str(&v6)"    │
00:01:47 #10347 [Verbose] > │     let v8 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr () v7            │
00:01:47 #10348 [Verbose] > │     let v9 : string = method4()                                              │
00:01:47 #10349 [Verbose] > │     let v10 : string = $"fable_library_rust::String_::LrcStr::as_str(&v9)"   │
00:01:47 #10350 [Verbose] > │     let v11 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr () v10          │
00:01:47 #10351 [Verbose] > │     let v12 : string = "v5 + v8 + v11"                                       │
00:01:47 #10352 [Verbose] > │     let v13 : std_string_String = Fable.Core.RustInterop.emitRustExpr () v12 │
00:01:47 #10353 [Verbose] > │     let v14 : std_string_String = method5(v13)                               │
00:01:47 #10354 [Verbose] > │     let v15 : string = "fable_library_rust::String_::fromString(v14)"        │
00:01:47 #10355 [Verbose] > │     let v16 : string = Fable.Core.RustInterop.emitRustExpr () v15            │
00:01:47 #10356 [Verbose] > │     let v17 : string = method6(v16)                                          │
00:01:47 #10357 [Verbose] > │     let v18 : string = method2(v17)                                          │
00:01:47 #10358 [Verbose] > │     let v19 : string = $"fable_library_rust::String_::LrcStr::as_str(&v18)"  │
00:01:47 #10359 [Verbose] > │     let v20 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr () v19          │
00:01:47 #10360 [Verbose] > │     let v21 : string = "String::from(v20)"                                   │
00:01:47 #10361 [Verbose] > │     let v22 : std_string_String = Fable.Core.RustInterop.emitRustExpr () v21 │
00:01:47 #10362 [Verbose] > │     let v23 : string = method7()                                             │
00:01:47 #10363 [Verbose] > │     let v24 : string = $"fable_library_rust::String_::LrcStr::as_str(&v23)"  │
00:01:47 #10364 [Verbose] > │     let v25 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr () v24          │
00:01:47 #10365 [Verbose] > │     let v26 : string = method4()                                             │
00:01:47 #10366 [Verbose] > │     let v27 : string = $"fable_library_rust::String_::LrcStr::as_str(&v26)"  │
00:01:47 #10367 [Verbose] > │     let v28 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr () v27          │
00:01:47 #10368 [Verbose] > │     let v29 : string = "v22 + v25 + v28"                                     │
00:01:47 #10369 [Verbose] > │     let v30 : std_string_String = Fable.Core.RustInterop.emitRustExpr () v29 │
00:01:47 #10370 [Verbose] > │     let v31 : std_string_String = method5(v30)                               │
00:01:47 #10371 [Verbose] > │     let v32 : string = "fable_library_rust::String_::fromString(v31)"        │
00:01:47 #10372 [Verbose] > │     let v33 : string = Fable.Core.RustInterop.emitRustExpr () v32            │
00:01:47 #10373 [Verbose] > │     let v34 : string = method6(v33)                                          │
00:01:47 #10374 [Verbose] > │     let v35 : string = method2(v34)                                          │
00:01:47 #10375 [Verbose] > │     let v36 : string = $"fable_library_rust::String_::LrcStr::as_str(&v35)"  │
00:01:47 #10376 [Verbose] > │     let v37 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr () v36          │
00:01:47 #10377 [Verbose] > │     let v38 : string = "String::from(v37)"                                   │
00:01:47 #10378 [Verbose] > │     let v39 : std_string_String = Fable.Core.RustInterop.emitRustExpr () v38 │
00:01:47 #10379 [Verbose] > │     let v40 : string = method8()                                             │
00:01:47 #10380 [Verbose] > │     let v41 : string = $"fable_library_rust::String_::LrcStr::as_str(&v40)"  │
00:01:47 #10381 [Verbose] > │     let v42 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr () v41          │
00:01:47 #10382 [Verbose] > │     let v43 : string = method4()                                             │
00:01:47 #10383 [Verbose] > │     let v44 : string = $"fable_library_rust::String_::LrcStr::as_str(&v43)"  │
00:01:47 #10384 [Verbose] > │     let v45 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr () v44          │
00:01:47 #10385 [Verbose] > │     let v46 : string = "v39 + v42 + v45"                                     │
00:01:47 #10386 [Verbose] > │     let v47 : std_string_String = Fable.Core.RustInterop.emitRustExpr () v46 │
00:01:47 #10387 [Verbose] > │     let v48 : std_string_String = method5(v47)                               │
00:01:47 #10388 [Verbose] > │     let v49 : string = "fable_library_rust::String_::fromString(v48)"        │
00:01:47 #10389 [Verbose] > │     let v50 : string = Fable.Core.RustInterop.emitRustExpr () v49            │
00:01:47 #10390 [Verbose] > │     let v51 : string = $"%A{v50}"                                            │
00:01:47 #10391 [Verbose] > │     System.Console.WriteLine v51                                             │
00:01:47 #10392 [Verbose] > │     let v53 : bool = v50 = "1\n2\n3\n"                                       │
00:01:47 #10393 [Verbose] > │     let v55 : bool =                                                         │
00:01:47 #10394 [Verbose] > │         if v53 then                                                          │
00:01:47 #10395 [Verbose] > │             true                                                             │
00:01:47 #10396 [Verbose] > │         else                                                                 │
00:01:47 #10397 [Verbose] > │             method9(v53)                                                     │
00:01:47 #10398 [Verbose] > │     let v56 : string = "1\n2\n3\n"                                           │
00:01:47 #10399 [Verbose] > │     let v57 : string = $"__expect / actual: %A{v50} / expected: %A{v56}"     │
00:01:47 #10400 [Verbose] > │     let v58 : bool = v55 = false                                             │
00:01:47 #10401 [Verbose] > │     if v58 then                                                              │
00:01:47 #10402 [Verbose] > │         failwith<unit> v57                                                   │
00:01:47 #10403 [Verbose] > │ method0()                                                                    │
00:01:47 #10404 [Verbose] > │                                                                              │
00:01:47 #10405 [Verbose] > │                                                                              │
00:01:47 #10406 [Verbose] > │ .rs:                                                                         │
00:01:47 #10407 [Verbose] > │ #![allow(dead_code,)]                                                        │
00:01:47 #10408 [Verbose] > │ #![allow(non_camel_case_types,)]                                             │
00:01:47 #10409 [Verbose] > │ #![allow(non_snake_case,)]                                                   │
00:01:47 #10410 [Verbose] > │ #![allow(non_upper_case_globals,)]                                           │
00:01:47 #10411 [Verbose] > │ #![allow(unreachable_code,)]                                                 │
00:01:47 #10412 [Verbose] > │ #![allow(unused_attributes,)]                                                │
00:01:47 #10413 [Verbose] > │ #![allow(unused_imports,)]                                                   │
00:01:47 #10414 [Verbose] > │ #![allow(unused_macros,)]                                                    │
00:01:47 #10415 [Verbose] > │ #![allow(unused_parens,)]                                                    │
00:01:47 #10416 [Verbose] > │ #![allow(unused_variables,)]                                                 │
00:01:47 #10417 [Verbose] > │ mod module_ccfa04bf {                                                        │
00:01:47 #10418 [Verbose] > │     pub mod Spiral_eval {                                                    │
00:01:47 #10419 [Verbose] > │         use super::*;                                                        │
00:01:47 #10420 [Verbose] > │         use fable_library_rust::Native_::on_startup;                         │
00:01:47 #10421 [Verbose] > │         use fable_library_rust::String_::printfn;                            │
00:01:47 #10422 [Verbose] > │         use fable_library_rust::String_::sprintf;                            │
00:01:47 #10423 [Verbose] > │         use fable_library_rust::String_::string;                             │
00:01:47 #10424 [Verbose] > │         pub fn method1() -> string { string("") }                            │
00:01:47 #10425 [Verbose] > │         pub fn method2(v0: string) -> string { v0 }                          │
00:01:47 #10426 [Verbose] > │         pub fn method3() -> string { string("1") }                           │
00:01:47 #10427 [Verbose] > │         pub fn method4() -> string { string("\n") }                          │
00:01:47 #10428 [Verbose] > │         pub fn method5(v0: std::string::String) -> std::string::String { v0  │
00:01:47 #10429 [Verbose] > │ }                                                                            │
00:01:47 #10430 [Verbose] > │         pub fn method6(v0: string) -> string { v0 }                          │
00:01:47 #10431 [Verbose] > │         pub fn method7() -> string { string("2") }                           │
00:01:47 #10432 [Verbose] > │         pub fn method8() -> string { string("3") }                           │
00:01:47 #10433 [Verbose] > │         pub fn method9(v0: bool) -> bool { v0 }                              │
00:01:47 #10434 [Verbose] > │         pub fn method0() {                                                   │
00:01:47 #10435 [Verbose] > │             let v1: string = Spiral_eval::method2(Spiral_eval::method1());   │
00:01:47 #10436 [Verbose] > │             let v3: &str = fable_library_rust::String_::LrcStr::as_str(&v1); │
00:01:47 #10437 [Verbose] > │             let v5: std::string::String = String::from(v3);                  │
00:01:47 #10438 [Verbose] > │             let v6: string = Spiral_eval::method3();                         │
00:01:47 #10439 [Verbose] > │             let v8: &str = fable_library_rust::String_::LrcStr::as_str(&v6); │
00:01:47 #10440 [Verbose] > │             let v9: string = Spiral_eval::method4();                         │
00:01:47 #10441 [Verbose] > │             let v11: &str =                                                  │
00:01:47 #10442 [Verbose] > │ fable_library_rust::String_::LrcStr::as_str(&v9);                            │
00:01:47 #10443 [Verbose] > │             let v14: std::string::String =                                   │
00:01:47 #10444 [Verbose] > │                 Spiral_eval::method5(v5 + v8 + v11);                         │
00:01:47 #10445 [Verbose] > │             let v18: string =                                                │
00:01:47 #10446 [Verbose] > │                                                                              │
00:01:47 #10447 [Verbose] > │ Spiral_eval::method2(Spiral_eval::method6(fable_library_rust::String_::fromS │
00:01:47 #10448 [Verbose] > │ tring(v14)));                                                                │
00:01:47 #10449 [Verbose] > │             let v20: &str =                                                  │
00:01:47 #10450 [Verbose] > │ fable_library_rust::String_::LrcStr::as_str(&v18);                           │
00:01:47 #10451 [Verbose] > │             let v22: std::string::String = String::from(v20);                │
00:01:47 #10452 [Verbose] > │             let v23: string = Spiral_eval::method7();                        │
00:01:47 #10453 [Verbose] > │             let v25: &str =                                                  │
00:01:47 #10454 [Verbose] > │ fable_library_rust::String_::LrcStr::as_str(&v23);                           │
00:01:47 #10455 [Verbose] > │             let v26: string = Spiral_eval::method4();                        │
00:01:47 #10456 [Verbose] > │             let v28: &str =                                                  │
00:01:47 #10457 [Verbose] > │ fable_library_rust::String_::LrcStr::as_str(&v26);                           │
00:01:47 #10458 [Verbose] > │             let v31: std::string::String =                                   │
00:01:47 #10459 [Verbose] > │                 Spiral_eval::method5(v22 + v25 + v28);                       │
00:01:47 #10460 [Verbose] > │             let v35: string =                                                │
00:01:47 #10461 [Verbose] > │                                                                              │
00:01:47 #10462 [Verbose] > │ Spiral_eval::method2(Spiral_eval::method6(fable_library_rust::String_::fromS │
00:01:47 #10463 [Verbose] > │ tring(v31)));                                                                │
00:01:47 #10464 [Verbose] > │             let v37: &str =                                                  │
00:01:47 #10465 [Verbose] > │ fable_library_rust::String_::LrcStr::as_str(&v35);                           │
00:01:47 #10466 [Verbose] > │             let v39: std::string::String = String::from(v37);                │
00:01:47 #10467 [Verbose] > │             let v40: string = Spiral_eval::method8();                        │
00:01:47 #10468 [Verbose] > │             let v42: &str =                                                  │
00:01:47 #10469 [Verbose] > │ fable_library_rust::String_::LrcStr::as_str(&v40);                           │
00:01:47 #10470 [Verbose] > │             let v43: string = Spiral_eval::method4();                        │
00:01:47 #10471 [Verbose] > │             let v45: &str =                                                  │
00:01:47 #10472 [Verbose] > │ fable_library_rust::String_::LrcStr::as_str(&v43);                           │
00:01:47 #10473 [Verbose] > │             let v48: std::string::String =                                   │
00:01:47 #10474 [Verbose] > │                 Spiral_eval::method5(v39 + v42 + v45);                       │
00:01:47 #10475 [Verbose] > │             let v50: string = fable_library_rust::String_::fromString(v48);  │
00:01:47 #10476 [Verbose] > │             let v51: string = sprintf!("{:?}", v50.clone());                 │
00:01:47 #10477 [Verbose] > │             printfn!("{0}", v51);                                            │
00:01:47 #10478 [Verbose] > │             {                                                                │
00:01:47 #10479 [Verbose] > │                 let v53: bool = v50.clone() == string("1\n2\n3\n");          │
00:01:47 #10480 [Verbose] > │                 if (if v53 { true } else { Spiral_eval::method9(v53) }) ==   │
00:01:47 #10481 [Verbose] > │                        false {                                               │
00:01:47 #10482 [Verbose] > │                     panic!("{}",                                             │
00:01:47 #10483 [Verbose] > │                            sprintf!("__expect / actual: {:?} / expected:     │
00:01:47 #10484 [Verbose] > │ {:?}", v50, string("1\n2\n3\n")));                                           │
00:01:47 #10485 [Verbose] > │                 }                                                            │
00:01:47 #10486 [Verbose] > │             }                                                                │
00:01:47 #10487 [Verbose] > │         }                                                                    │
00:01:47 #10488 [Verbose] > │         on_startup!(Spiral_eval::method0());                                 │
00:01:47 #10489 [Verbose] > │     }                                                                        │
00:01:47 #10490 [Verbose] > │ }                                                                            │
00:01:47 #10491 [Verbose] > │ pub use module_ccfa04bf::*;                                                  │
00:01:47 #10492 [Verbose] > │                                                                              │
00:01:47 #10493 [Verbose] > │                                                                              │
00:01:47 #10494 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:47 #10495 [Verbose] >
00:01:47 #10496 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:47 #10497 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:47 #10498 [Verbose] > │ ## concat                                                                    │
00:01:47 #10499 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:47 #10500 [Verbose] >
00:01:47 #10501 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:47 #10502 [Verbose] > inl concat (a : string) (b : a _ _) : string =
00:01:47 #10503 [Verbose] >     $"!b |> String.concat !a"
00:01:47 #10504 [Verbose] >
00:01:47 #10505 [Verbose] > ╭─[ 153.57ms - stdout ]────────────────────────────────────────────────────────╮
00:01:47 #10506 [Verbose] > │ ()                                                                           │
00:01:47 #10507 [Verbose] > │                                                                              │
00:01:47 #10508 [Verbose] > │                                                                              │
00:01:47 #10509 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:47 #10510 [Verbose] >
00:01:47 #10511 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:47 #10512 [Verbose] > // // test
00:01:47 #10513 [Verbose] >
00:01:47 #10514 [Verbose] > listm.init 10i32 id
00:01:47 #10515 [Verbose] > |> from_list
00:01:47 #10516 [Verbose] > |> sum
00:01:47 #10517 [Verbose] > |> _assert_eq 45
00:01:47 #10518 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-1649-4933-4ba58393cbba/main.spi
00:01:47 #10519 [Verbose] >
00:01:47 #10520 [Verbose] > ╭─[ 118.76ms - stdout ]────────────────────────────────────────────────────────╮
00:01:47 #10521 [Verbose] > │ ()                                                                           │
00:01:47 #10522 [Verbose] > │                                                                              │
00:01:47 #10523 [Verbose] > │                                                                              │
00:01:47 #10524 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:47 #10525 [Verbose] >
00:01:47 #10526 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:47 #10527 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:47 #10528 [Verbose] > │ ## join'                                                                     │
00:01:47 #10529 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:47 #10530 [Verbose] >
00:01:47 #10531 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:47 #10532 [Verbose] > inl join' (concat : string) (s : a _ string) : string =
00:01:47 #10533 [Verbose] >     $"System.String.Join (!concat, !s)"
00:01:47 #10534 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-1654-5465-5bee7d2b7f34/main.spi
00:01:47 #10535 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-1661-6133-6df1d5c9a41a/main.spi
00:01:47 #10536 [Verbose] >
00:01:47 #10537 [Verbose] > ╭─[ 151.05ms - stdout ]────────────────────────────────────────────────────────╮
00:01:47 #10538 [Verbose] > │ let rec method0 () : unit =                                                  │
00:01:47 #10539 [Verbose] > │     let v0 : string = $"%A{45}"                                              │
00:01:47 #10540 [Verbose] > │     System.Console.WriteLine v0                                              │
00:01:47 #10541 [Verbose] > │     let v1 : string = $"__expect / actual: %A{45} / expected: %A{45}"        │
00:01:47 #10542 [Verbose] > │     ()                                                                       │
00:01:47 #10543 [Verbose] > │ method0()                                                                    │
00:01:47 #10544 [Verbose] > │                                                                              │
00:01:47 #10545 [Verbose] > │ 45                                                                           │
00:01:47 #10546 [Verbose] > │                                                                              │
00:01:47 #10547 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:47 #10548 [Verbose] >
00:01:47 #10549 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:47 #10550 [Verbose] > // // test
00:01:47 #10551 [Verbose] >
00:01:47 #10552 [Verbose] > new_finite_stream print_and_return 10i32
00:01:47 #10553 [Verbose] > |> take_while (fun n (_ : i32) => n < 5)
00:01:47 #10554 [Verbose] > |> sum
00:01:47 #10555 [Verbose] > |> _assert_eq 10
00:01:47 #10556 [Verbose] >
00:01:47 #10557 [Verbose] > ╭─[ 122.45ms - stdout ]────────────────────────────────────────────────────────╮
00:01:47 #10558 [Verbose] > │ ()                                                                           │
00:01:47 #10559 [Verbose] > │                                                                              │
00:01:47 #10560 [Verbose] > │                                                                              │
00:01:47 #10561 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:47 #10562 [Verbose] >
00:01:47 #10563 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:47 #10564 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:47 #10565 [Verbose] > │ ## to_char_array                                                             │
00:01:47 #10566 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:47 #10567 [Verbose] >
00:01:47 #10568 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:47 #10569 [Verbose] > inl to_char_array (str : string) : a i32 char =
00:01:47 #10570 [Verbose] >     am.init (str |> sm.length) (fun i => sm.index str i)
00:01:47 #10571 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-1669-6984-6884f243add6/main.spi
00:01:47 #10572 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-1673-7371-79714b6e4b2a/main.spi
00:01:47 #10573 [Verbose] >
00:01:47 #10574 [Verbose] > ╭─[ 110.57ms - stdout ]────────────────────────────────────────────────────────╮
00:01:47 #10575 [Verbose] > │ ()                                                                           │
00:01:47 #10576 [Verbose] > │                                                                              │
00:01:47 #10577 [Verbose] > │                                                                              │
00:01:47 #10578 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:47 #10579 [Verbose] >
00:01:47 #10580 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:47 #10581 [Verbose] > // // test
00:01:47 #10582 [Verbose] >
00:01:47 #10583 [Verbose] > "abc"
00:01:47 #10584 [Verbose] > |> to_char_array
00:01:47 #10585 [Verbose] > |> _assert_eq (a ;[['a'; 'b'; 'c']])
00:01:47 #10586 [Verbose] >
00:01:47 #10587 [Verbose] > ╭─[ 153.12ms - stdout ]────────────────────────────────────────────────────────╮
00:01:47 #10588 [Verbose] > │ let rec method0 () : unit =                                                  │
00:01:47 #10589 [Verbose] > │     printfn $"print_and_return / x: {0}"                                     │
00:01:47 #10590 [Verbose] > │     printfn $"print_and_return / x: {1}"                                     │
00:01:47 #10591 [Verbose] > │     printfn $"print_and_return / x: {2}"                                     │
00:01:47 #10592 [Verbose] > │     printfn $"print_and_return / x: {3}"                                     │
00:01:47 #10593 [Verbose] > │     printfn $"print_and_return / x: {4}"                                     │
00:01:47 #10594 [Verbose] > │     printfn $"print_and_return / x: {5}"                                     │
00:01:47 #10595 [Verbose] > │     let v0 : string = $"%A{10}"                                              │
00:01:47 #10596 [Verbose] > │     System.Console.WriteLine v0                                              │
00:01:47 #10597 [Verbose] > │     let v1 : string = $"__expect / actual: %A{10} / expected: %A{10}"        │
00:01:47 #10598 [Verbose] > │     ()                                                                       │
00:01:47 #10599 [Verbose] > │ method0()                                                                    │
00:01:47 #10600 [Verbose] > │                                                                              │
00:01:47 #10601 [Verbose] > │ print_and_return / x: 0                                                      │
00:01:47 #10602 [Verbose] > │ print_and_return / x: 1                                                      │
00:01:47 #10603 [Verbose] > │ print_and_return / x: 2                                                      │
00:01:47 #10604 [Verbose] > │ print_and_return / x: 3                                                      │
00:01:47 #10605 [Verbose] > │ print_and_return / x: 4                                                      │
00:01:47 #10606 [Verbose] > │ print_and_return / x: 5                                                      │
00:01:47 #10607 [Verbose] > │ 10                                                                           │
00:01:47 #10608 [Verbose] > │                                                                              │
00:01:47 #10609 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:47 #10610 [Verbose] >
00:01:47 #10611 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:47 #10612 [Verbose] > // // test
00:01:47 #10613 [Verbose] >
00:01:47 #10614 [Verbose] > new_infinite_stream print_and_return
00:01:47 #10615 [Verbose] > |> take_while (fun n (_ : i32) => n < 5i32)
00:01:47 #10616 [Verbose] > |> sum
00:01:47 #10617 [Verbose] > |> _assert_eq 10
00:01:47 #10618 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-1684-8478-8061616d755f/main.spi
00:01:47 #10619 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-1685-8548-8b84925bdcaf/main.spi
00:01:47 #10620 [Verbose] >
00:01:47 #10621 [Verbose] > ╭─[ 152.92ms - stdout ]────────────────────────────────────────────────────────╮
00:01:47 #10622 [Verbose] > │ let rec method0 () : unit =                                                  │
00:01:47 #10623 [Verbose] > │     printfn $"print_and_return / x: {0}"                                     │
00:01:47 #10624 [Verbose] > │     printfn $"print_and_return / x: {1}"                                     │
00:01:47 #10625 [Verbose] > │     printfn $"print_and_return / x: {2}"                                     │
00:01:47 #10626 [Verbose] > │     printfn $"print_and_return / x: {3}"                                     │
00:01:47 #10627 [Verbose] > │     printfn $"print_and_return / x: {4}"                                     │
00:01:47 #10628 [Verbose] > │     printfn $"print_and_return / x: {5}"                                     │
00:01:47 #10629 [Verbose] > │     let v0 : string = $"%A{10}"                                              │
00:01:47 #10630 [Verbose] > │     System.Console.WriteLine v0                                              │
00:01:47 #10631 [Verbose] > │     let v1 : string = $"__expect / actual: %A{10} / expected: %A{10}"        │
00:01:47 #10632 [Verbose] > │     ()                                                                       │
00:01:47 #10633 [Verbose] > │ method0()                                                                    │
00:01:47 #10634 [Verbose] > │                                                                              │
00:01:47 #10635 [Verbose] > │ print_and_return / x: 0                                                      │
00:01:47 #10636 [Verbose] > │ print_and_return / x: 1                                                      │
00:01:47 #10637 [Verbose] > │ print_and_return / x: 2                                                      │
00:01:47 #10638 [Verbose] > │ print_and_return / x: 3                                                      │
00:01:47 #10639 [Verbose] > │ print_and_return / x: 4                                                      │
00:01:47 #10640 [Verbose] > │ print_and_return / x: 5                                                      │
00:01:47 #10641 [Verbose] > │ 10                                                                           │
00:01:47 #10642 [Verbose] > │                                                                              │
00:01:47 #10643 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:47 #10644 [Verbose] >
00:01:47 #10645 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:47 #10646 [Verbose] > // // test
00:01:47 #10647 [Verbose] >
00:01:47 #10648 [Verbose] > iterate ((*) 6) 1i32
00:01:47 #10649 [Verbose] > |> take_while (fun _ i => i <= 7i32)
00:01:47 #10650 [Verbose] > |> to_list
00:01:47 #10651 [Verbose] > |> _assert_eq [[ 1i32; 6; 36; 216; 1296; 7776; 46656; 279936 ]]
00:01:47 #10652 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-1700-0073-0d07784cfdeb/main.spi
00:01:47 #10653 [Verbose] >
00:01:47 #10654 [Verbose] > ╭─[ 299.16ms - stdout ]────────────────────────────────────────────────────────╮
00:01:47 #10655 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │
00:01:47 #10656 [Verbose] > │ let rec method1 (v0 : Mut0) : bool =                                         │
00:01:47 #10657 [Verbose] > │     let v1 : int32 = v0.l0                                                   │
00:01:47 #10658 [Verbose] > │     let v2 : bool = v1 < 3                                                   │
00:01:47 #10659 [Verbose] > │     v2                                                                       │
00:01:47 #10660 [Verbose] > │ and method2 (v0 : (char [])) : (char []) =                                   │
00:01:47 #10661 [Verbose] > │     v0                                                                       │
00:01:47 #10662 [Verbose] > │ and method3 (v0 : (char []), v1 : (char []), v2 : int32) : bool =            │
00:01:47 #10663 [Verbose] > │     let v3 : int32 = v0.Length                                               │
00:01:47 #10664 [Verbose] > │     let v4 : bool = v2 < v3                                                  │
00:01:47 #10665 [Verbose] > │     if v4 then                                                               │
00:01:47 #10666 [Verbose] > │         let v5 : char = v0.[int v2]                                          │
00:01:47 #10667 [Verbose] > │         let v6 : char = v1.[int v2]                                          │
00:01:47 #10668 [Verbose] > │         let v7 : bool = v5 = v6                                              │
00:01:47 #10669 [Verbose] > │         if v7 then                                                           │
00:01:47 #10670 [Verbose] > │             let v8 : int32 = v2 + 1                                          │
00:01:47 #10671 [Verbose] > │             method3(v0, v1, v8)                                              │
00:01:47 #10672 [Verbose] > │         else                                                                 │
00:01:47 #10673 [Verbose] > │             false                                                            │
00:01:47 #10674 [Verbose] > │     else                                                                     │
00:01:47 #10675 [Verbose] > │         true                                                                 │
00:01:47 #10676 [Verbose] > │ and method4 (v0 : bool) : bool =                                             │
00:01:47 #10677 [Verbose] > │     v0                                                                       │
00:01:47 #10678 [Verbose] > │ and method0 () : unit =                                                      │
00:01:47 #10679 [Verbose] > │     let v0 : (char []) = Array.zeroCreate<char> (3)                          │
00:01:47 #10680 [Verbose] > │     let v1 : Mut0 = {l0 = 0} : Mut0                                          │
00:01:47 #10681 [Verbose] > │     while method1(v1) do                                                     │
00:01:47 #10682 [Verbose] > │         let v3 : int32 = v1.l0                                               │
00:01:47 #10683 [Verbose] > │         let v4 : char = "abc".[int v3]                                       │
00:01:47 #10684 [Verbose] > │         v0.[int v3] <- v4                                                    │
00:01:47 #10685 [Verbose] > │         let v5 : int32 = v3 + 1                                              │
00:01:47 #10686 [Verbose] > │         v1.l0 <- v5                                                          │
00:01:47 #10687 [Verbose] > │         ()                                                                   │
00:01:47 #10688 [Verbose] > │     let v6 : (char []) = [|'a'; 'b'; 'c'|]                                   │
00:01:47 #10689 [Verbose] > │     let v7 : (char []) = method2(v6)                                         │
00:01:47 #10690 [Verbose] > │     let v8 : string = $"%A{v0}"                                              │
00:01:47 #10691 [Verbose] > │     System.Console.WriteLine v8                                              │
00:01:47 #10692 [Verbose] > │     let v9 : int32 = v0.Length                                               │
00:01:47 #10693 [Verbose] > │     let v10 : int32 = v7.Length                                              │
00:01:47 #10694 [Verbose] > │     let v11 : bool = v9 = v10                                                │
00:01:47 #10695 [Verbose] > │     let v12 : bool = v11 <> true                                             │
00:01:47 #10696 [Verbose] > │     let v15 : bool =                                                         │
00:01:47 #10697 [Verbose] > │         if v12 then                                                          │
00:01:47 #10698 [Verbose] > │             false                                                            │
00:01:47 #10699 [Verbose] > │         else                                                                 │
00:01:47 #10700 [Verbose] > │             let v13 : int32 = 0                                              │
00:01:47 #10701 [Verbose] > │             method3(v0, v7, v13)                                             │
00:01:47 #10702 [Verbose] > │     let v17 : bool =                                                         │
00:01:47 #10703 [Verbose] > │         if v15 then                                                          │
00:01:47 #10704 [Verbose] > │             true                                                             │
00:01:47 #10705 [Verbose] > │         else                                                                 │
00:01:47 #10706 [Verbose] > │             method4(v15)                                                     │
00:01:47 #10707 [Verbose] > │     let v18 : string = $"__expect / actual: %A{v0} / expected: %A{v7}"       │
00:01:47 #10708 [Verbose] > │     let v19 : bool = v17 = false                                             │
00:01:47 #10709 [Verbose] > │     if v19 then                                                              │
00:01:47 #10710 [Verbose] > │         failwith<unit> v18                                                   │
00:01:47 #10711 [Verbose] > │ method0()                                                                    │
00:01:47 #10712 [Verbose] > │                                                                              │
00:01:47 #10713 [Verbose] > │ [|'a'; 'b'; 'c'|]                                                            │
00:01:47 #10714 [Verbose] > │                                                                              │
00:01:47 #10715 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:47 #10716 [Verbose] >
00:01:47 #10717 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:47 #10718 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:47 #10719 [Verbose] > │ ## to_char_list                                                              │
00:01:47 #10720 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:47 #10721 [Verbose] >
00:01:47 #10722 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:47 #10723 [Verbose] > inl to_char_list (str : string) : list char =
00:01:47 #10724 [Verbose] >     listm.init (str |> sm.length) (fun (i : i64) => sm.index str i)
00:01:48 #10725 [Verbose] >
00:01:48 #10726 [Verbose] > ╭─[ 203.98ms - stdout ]────────────────────────────────────────────────────────╮
00:01:48 #10727 [Verbose] > │ type UH0 =                                                                   │
00:01:48 #10728 [Verbose] > │     | UH0_0 of int32 * UH0                                                   │
00:01:48 #10729 [Verbose] > │     | UH0_1                                                                  │
00:01:48 #10730 [Verbose] > │ let rec method0 () : unit =                                                  │
00:01:48 #10731 [Verbose] > │     let v0 : UH0 = UH0_1                                                     │
00:01:48 #10732 [Verbose] > │     let v1 : UH0 = UH0_0(279936, v0)                                         │
00:01:48 #10733 [Verbose] > │     let v2 : UH0 = UH0_0(46656, v1)                                          │
00:01:48 #10734 [Verbose] > │     let v3 : UH0 = UH0_0(7776, v2)                                           │
00:01:48 #10735 [Verbose] > │     let v4 : UH0 = UH0_0(1296, v3)                                           │
00:01:48 #10736 [Verbose] > │     let v5 : UH0 = UH0_0(216, v4)                                            │
00:01:48 #10737 [Verbose] > │     let v6 : UH0 = UH0_0(36, v5)                                             │
00:01:48 #10738 [Verbose] > │     let v7 : UH0 = UH0_0(6, v6)                                              │
00:01:48 #10739 [Verbose] > │     let v8 : UH0 = UH0_0(1, v7)                                              │
00:01:48 #10740 [Verbose] > │     let v9 : string = $"%A{v8}"                                              │
00:01:48 #10741 [Verbose] > │     System.Console.WriteLine v9                                              │
00:01:48 #10742 [Verbose] > │     let v73 : UH0 = UH0_1                                                    │
00:01:48 #10743 [Verbose] > │     let v74 : UH0 = UH0_0(279936, v73)                                       │
00:01:48 #10744 [Verbose] > │     let v75 : UH0 = UH0_0(46656, v74)                                        │
00:01:48 #10745 [Verbose] > │     let v76 : UH0 = UH0_0(7776, v75)                                         │
00:01:48 #10746 [Verbose] > │     let v77 : UH0 = UH0_0(1296, v76)                                         │
00:01:48 #10747 [Verbose] > │     let v78 : UH0 = UH0_0(216, v77)                                          │
00:01:48 #10748 [Verbose] > │     let v79 : UH0 = UH0_0(36, v78)                                           │
00:01:48 #10749 [Verbose] > │     let v80 : UH0 = UH0_0(6, v79)                                            │
00:01:48 #10750 [Verbose] > │     let v81 : UH0 = UH0_0(1, v80)                                            │
00:01:48 #10751 [Verbose] > │     let v82 : UH0 = UH0_1                                                    │
00:01:48 #10752 [Verbose] > │     let v83 : UH0 = UH0_0(279936, v82)                                       │
00:01:48 #10753 [Verbose] > │     let v84 : UH0 = UH0_0(46656, v83)                                        │
00:01:48 #10754 [Verbose] > │     let v85 : UH0 = UH0_0(7776, v84)                                         │
00:01:48 #10755 [Verbose] > │     let v86 : UH0 = UH0_0(1296, v85)                                         │
00:01:48 #10756 [Verbose] > │     let v87 : UH0 = UH0_0(216, v86)                                          │
00:01:48 #10757 [Verbose] > │     let v88 : UH0 = UH0_0(36, v87)                                           │
00:01:48 #10758 [Verbose] > │     let v89 : UH0 = UH0_0(6, v88)                                            │
00:01:48 #10759 [Verbose] > │     let v90 : UH0 = UH0_0(1, v89)                                            │
00:01:48 #10760 [Verbose] > │     let v91 : string = $"__expect / actual: %A{v81} / expected: %A{v90}"     │
00:01:48 #10761 [Verbose] > │     ()                                                                       │
00:01:48 #10762 [Verbose] > │ method0()                                                                    │
00:01:48 #10763 [Verbose] > │                                                                              │
00:01:48 #10764 [Verbose] > │ UH0_0                                                                        │
00:01:48 #10765 [Verbose] > │   (1,                                                                        │
00:01:48 #10766 [Verbose] > │    UH0_0                                                                     │
00:01:48 #10767 [Verbose] > │      (6,                                                                     │
00:01:48 #10768 [Verbose] > │       UH0_0                                                                  │
00:01:48 #10769 [Verbose] > │         (36,                                                                 │
00:01:48 #10770 [Verbose] > │          UH0_0                                                               │
00:01:48 #10771 [Verbose] > │            (216,                                                             │
00:01:48 #10772 [Verbose] > │             UH0_0 (1296, UH0_0 (7776, UH0_0 (46656, UH0_0 (279936,           │
00:01:48 #10773 [Verbose] > │ UH0_1))))))))                                                                │
00:01:48 #10774 [Verbose] > │                                                                              │
00:01:48 #10775 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:48 #10776 [Verbose] >
00:01:48 #10777 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:48 #10778 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:48 #10779 [Verbose] > │ ## indexed                                                                   │
00:01:48 #10780 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:48 #10781 [Verbose] >
00:01:48 #10782 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:48 #10783 [Verbose] > inl indexed s =
00:01:48 #10784 [Verbose] >     ((StreamNil, 0), s)
00:01:48 #10785 [Verbose] >     ||> fold fun (acc, i) x =>
00:01:48 #10786 [Verbose] >         StreamCons ((i, x), fun () => acc), i + 1
00:01:48 #10787 [Verbose] >     |> fst
00:01:48 #10788 [Verbose] >     |> rev
00:01:48 #10789 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-1714-1475-1356216063f4/main.spi
00:01:48 #10790 [Verbose] >
00:01:48 #10791 [Verbose] > ╭─[ 136.35ms - stdout ]────────────────────────────────────────────────────────╮
00:01:48 #10792 [Verbose] > │ ()                                                                           │
00:01:48 #10793 [Verbose] > │                                                                              │
00:01:48 #10794 [Verbose] > │                                                                              │
00:01:48 #10795 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:48 #10796 [Verbose] >
00:01:48 #10797 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:48 #10798 [Verbose] > // // test
00:01:48 #10799 [Verbose] >
00:01:48 #10800 [Verbose] > "abc"
00:01:48 #10801 [Verbose] > |> to_char_list
00:01:48 #10802 [Verbose] > |> _assert_eq [['a'; 'b'; 'c']]
00:01:48 #10803 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-1721-2181-2984239937c6/main.spi
00:01:48 #10804 [Verbose] >
00:01:48 #10805 [Verbose] > ╭─[ 131.24ms - stdout ]────────────────────────────────────────────────────────╮
00:01:48 #10806 [Verbose] > │ ()                                                                           │
00:01:48 #10807 [Verbose] > │                                                                              │
00:01:48 #10808 [Verbose] > │                                                                              │
00:01:48 #10809 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:48 #10810 [Verbose] >
00:01:48 #10811 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:48 #10812 [Verbose] > // // test
00:01:48 #10813 [Verbose] >
00:01:48 #10814 [Verbose] > listm.init 10i32 ((*) 2)
00:01:48 #10815 [Verbose] > |> from_list
00:01:48 #10816 [Verbose] > |> indexed
00:01:48 #10817 [Verbose] > |> item 5i32
00:01:48 #10818 [Verbose] > |> _assert_eq (5i32, 10i32)
00:01:48 #10819 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-1728-2845-260c47818e81/main.spi
00:01:48 #10820 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-1734-3492-34d6c43ed28c/main.spi
00:01:48 #10821 [Verbose] >
00:01:48 #10822 [Verbose] > ╭─[ 168.50ms - stdout ]────────────────────────────────────────────────────────╮
00:01:48 #10823 [Verbose] > │ type UH0 =                                                                   │
00:01:48 #10824 [Verbose] > │     | UH0_0 of char * UH0                                                    │
00:01:48 #10825 [Verbose] > │     | UH0_1                                                                  │
00:01:48 #10826 [Verbose] > │ let rec method0 () : unit =                                                  │
00:01:48 #10827 [Verbose] > │     let v0 : UH0 = UH0_1                                                     │
00:01:48 #10828 [Verbose] > │     let v1 : UH0 = UH0_0('c', v0)                                            │
00:01:48 #10829 [Verbose] > │     let v2 : UH0 = UH0_0('b', v1)                                            │
00:01:48 #10830 [Verbose] > │     let v3 : UH0 = UH0_0('a', v2)                                            │
00:01:48 #10831 [Verbose] > │     let v4 : string = $"%A{v3}"                                              │
00:01:48 #10832 [Verbose] > │     System.Console.WriteLine v4                                              │
00:01:48 #10833 [Verbose] > │     let v23 : UH0 = UH0_1                                                    │
00:01:48 #10834 [Verbose] > │     let v24 : UH0 = UH0_0('c', v23)                                          │
00:01:48 #10835 [Verbose] > │     let v25 : UH0 = UH0_0('b', v24)                                          │
00:01:48 #10836 [Verbose] > │     let v26 : UH0 = UH0_0('a', v25)                                          │
00:01:48 #10837 [Verbose] > │     let v27 : UH0 = UH0_1                                                    │
00:01:48 #10838 [Verbose] > │     let v28 : UH0 = UH0_0('c', v27)                                          │
00:01:48 #10839 [Verbose] > │     let v29 : UH0 = UH0_0('b', v28)                                          │
00:01:48 #10840 [Verbose] > │     let v30 : UH0 = UH0_0('a', v29)                                          │
00:01:48 #10841 [Verbose] > │     let v31 : string = $"__expect / actual: %A{v26} / expected: %A{v30}"     │
00:01:48 #10842 [Verbose] > │     ()                                                                       │
00:01:48 #10843 [Verbose] > │ method0()                                                                    │
00:01:48 #10844 [Verbose] > │                                                                              │
00:01:48 #10845 [Verbose] > │ UH0_0 ('a', UH0_0 ('b', UH0_0 ('c', UH0_1)))                                 │
00:01:48 #10846 [Verbose] > │                                                                              │
00:01:48 #10847 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:48 #10848 [Verbose] >
00:01:48 #10849 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:48 #10850 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:48 #10851 [Verbose] > │ ## to_string std_string                                                      │
00:01:48 #10852 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:48 #10853 [Verbose] >
00:01:48 #10854 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:48 #10855 [Verbose] > open rust
00:01:48 #10856 [Verbose] > instance to_string std_string = from_std_string
00:01:48 #10857 [Verbose] >
00:01:48 #10858 [Verbose] > ╭─[ 162.74ms - stdout ]────────────────────────────────────────────────────────╮
00:01:48 #10859 [Verbose] > │ let rec method0 () : unit =                                                  │
00:01:48 #10860 [Verbose] > │     let v0 : string = $"%A{struct (5, 10)}"                                  │
00:01:48 #10861 [Verbose] > │     System.Console.WriteLine v0                                              │
00:01:48 #10862 [Verbose] > │     let v1 : string = $"__expect / actual: %A{struct (5, 10)} / expected:    │
00:01:48 #10863 [Verbose] > │ %A{struct (5, 10)}"                                                          │
00:01:48 #10864 [Verbose] > │     ()                                                                       │
00:01:48 #10865 [Verbose] > │ method0()                                                                    │
00:01:48 #10866 [Verbose] > │                                                                              │
00:01:48 #10867 [Verbose] > │ struct (5, 10)                                                               │
00:01:48 #10868 [Verbose] > │                                                                              │
00:01:48 #10869 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:48 #10870 [Verbose] >
00:01:48 #10871 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:48 #10872 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:48 #10873 [Verbose] > │ ## map                                                                       │
00:01:48 #10874 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:48 #10875 [Verbose] >
00:01:48 #10876 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:48 #10877 [Verbose] > inl map fn s =
00:01:48 #10878 [Verbose] >     (s, StreamNil)
00:01:48 #10879 [Verbose] >     ||> fold_back fun x acc =>
00:01:48 #10880 [Verbose] >         StreamCons (fn x, fun () => acc)
00:01:48 #10881 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-1745-4557-4cab98dc0d7f/main.spi
00:01:48 #10882 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-1751-5140-5b7b83e82c62/main.spi
00:01:48 #10883 [Verbose] >
00:01:48 #10884 [Verbose] > ╭─[ 173.20ms - stdout ]────────────────────────────────────────────────────────╮
00:01:48 #10885 [Verbose] > │ ()                                                                           │
00:01:48 #10886 [Verbose] > │                                                                              │
00:01:48 #10887 [Verbose] > │                                                                              │
00:01:48 #10888 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:48 #10889 [Verbose] >
00:01:48 #10890 [Verbose] > ╭─[ 120.80ms - stdout ]────────────────────────────────────────────────────────╮
00:01:48 #10891 [Verbose] > │ ()                                                                           │
00:01:48 #10892 [Verbose] > │                                                                              │
00:01:48 #10893 [Verbose] > │                                                                              │
00:01:48 #10894 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:48 #10895 [Verbose] >
00:01:48 #10896 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:48 #10897 [Verbose] > // // test
00:01:48 #10898 [Verbose] >
00:01:48 #10899 [Verbose] > listm.init 10i32 id
00:01:48 #10900 [Verbose] > |> from_list
00:01:48 #10901 [Verbose] > |> map ((*) 2)
00:01:48 #10902 [Verbose] > |> item 5i32
00:01:48 #10903 [Verbose] > |> _assert_eq 10i32
00:01:48 #10904 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-1763-6352-6f2b1439cf7f/main.spi
00:01:48 #10905 [Verbose] >
00:01:48 #10906 [Verbose] > ╭─[ 140.97ms - stdout ]────────────────────────────────────────────────────────╮
00:01:48 #10907 [Verbose] > │ let rec method0 () : unit =                                                  │
00:01:48 #10908 [Verbose] > │     let v0 : string = $"%A{10}"                                              │
00:01:48 #10909 [Verbose] > │     System.Console.WriteLine v0                                              │
00:01:48 #10910 [Verbose] > │     let v1 : string = $"__expect / actual: %A{10} / expected: %A{10}"        │
00:01:48 #10911 [Verbose] > │     ()                                                                       │
00:01:48 #10912 [Verbose] > │ method0()                                                                    │
00:01:48 #10913 [Verbose] > │                                                                              │
00:01:48 #10914 [Verbose] > │ 10                                                                           │
00:01:48 #10915 [Verbose] > │                                                                              │
00:01:48 #10916 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:48 #10917 [Verbose] >
00:01:48 #10918 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:48 #10919 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:48 #10920 [Verbose] > │ ## zip_with                                                                  │
00:01:48 #10921 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:48 #10922 [Verbose] >
00:01:48 #10923 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:48 #10924 [Verbose] > inl zip_with fn s1 s2 =
00:01:48 #10925 [Verbose] >     inl rec loop s1 s2 =
00:01:48 #10926 [Verbose] >         match s1, s2 with
00:01:48 #10927 [Verbose] >         | StreamCons (st1, fn1), StreamCons (st2, fn2) =>
00:01:48 #10928 [Verbose] >             StreamCons (fn st1 st2, fun () => loop (fn1 ()) (fn2 ()))
00:01:48 #10929 [Verbose] >         | StreamNil, _ | _, StreamNil => StreamNil
00:01:48 #10930 [Verbose] >     loop s1 s2
00:01:48 #10931 [Verbose] >
00:01:48 #10932 [Verbose] > inl zip_with_ fn s1 s2 =
00:01:48 #10933 [Verbose] >     let rec loop s1 s2 =
00:01:48 #10934 [Verbose] >         match s1, s2 with
00:01:48 #10935 [Verbose] >         | StreamCons (st1, fn1), StreamCons (st2, fn2) =>
00:01:48 #10936 [Verbose] >             StreamCons (fn st1 st2, fun () => loop (fn1 ()) (fn2 ()))
00:01:48 #10937 [Verbose] >         | StreamNil, _ | _, StreamNil => StreamNil
00:01:48 #10938 [Verbose] >     loop s1 s2
00:01:48 #10939 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-1777-7795-7ca3023babcb/main.spi
00:01:48 #10940 [Verbose] >
00:01:48 #10941 [Verbose] > ╭─[ 155.72ms - stdout ]────────────────────────────────────────────────────────╮
00:01:48 #10942 [Verbose] > │ ()                                                                           │
00:01:48 #10943 [Verbose] > │                                                                              │
00:01:48 #10944 [Verbose] > │                                                                              │
00:01:48 #10945 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:48 #10946 [Verbose] >
00:01:48 #10947 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:48 #10948 [Verbose] > // // test
00:01:48 #10949 [Verbose] >
00:01:48 #10950 [Verbose] > ((listm.init 10i32 id |> from_list), (listm.init 10i32 ((*) 2) |> from_list))
00:01:48 #10951 [Verbose] > ||> zip_with (+)
00:01:48 #10952 [Verbose] > |> item 2i32
00:01:48 #10953 [Verbose] > |> _assert_eq 6
00:01:48 #10954 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-1793-9354-9c2d9cc71c68/main.spi
00:01:48 #10955 [Verbose] >
00:01:48 #10956 [Verbose] > ╭─[ 151.75ms - stdout ]────────────────────────────────────────────────────────╮
00:01:48 #10957 [Verbose] > │ let rec method0 () : unit =                                                  │
00:01:48 #10958 [Verbose] > │     let v0 : string = $"%A{6}"                                               │
00:01:48 #10959 [Verbose] > │     System.Console.WriteLine v0                                              │
00:01:48 #10960 [Verbose] > │     let v1 : string = $"__expect / actual: %A{6} / expected: %A{6}"          │
00:01:48 #10961 [Verbose] > │     ()                                                                       │
00:01:48 #10962 [Verbose] > │ method0()                                                                    │
00:01:48 #10963 [Verbose] > │                                                                              │
00:01:48 #10964 [Verbose] > │ 6                                                                            │
00:01:48 #10965 [Verbose] > │                                                                              │
00:01:48 #10966 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:48 #10967 [Verbose] >
00:01:48 #10968 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:48 #10969 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:48 #10970 [Verbose] > │ ## zip                                                                       │
00:01:48 #10971 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:48 #10972 [Verbose] >
00:01:48 #10973 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:48 #10974 [Verbose] > inl zip s1 s2 =
00:01:48 #10975 [Verbose] >     zip_with pair s1 s2
00:01:48 #10976 [Verbose] >
00:01:48 #10977 [Verbose] > inl zip_ s1 s2 =
00:01:48 #10978 [Verbose] >     zip_with_ pair s1 s2
00:01:49 #10979 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-1808-0889-05a4276af98f/main.spi
00:01:49 #10980 [Verbose] >
00:01:49 #10981 [Verbose] > ╭─[ 131.64ms - stdout ]────────────────────────────────────────────────────────╮
00:01:49 #10982 [Verbose] > │ ()                                                                           │
00:01:49 #10983 [Verbose] > │                                                                              │
00:01:49 #10984 [Verbose] > │                                                                              │
00:01:49 #10985 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:49 #10986 [Verbose] >
00:01:49 #10987 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:49 #10988 [Verbose] > // // test
00:01:49 #10989 [Verbose] >
00:01:49 #10990 [Verbose] > ((listm.init 10i32 id |> from_list), (listm.init 10i32 ((*) 2) |> from_list))
00:01:49 #10991 [Verbose] > ||> zip
00:01:49 #10992 [Verbose] > |> item 5i32
00:01:49 #10993 [Verbose] > |> _assert_eq (5, 10)
00:01:49 #10994 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-1822-2211-2986b32387a9/main.spi
00:01:49 #10995 [Verbose] >
00:01:49 #10996 [Verbose] > ╭─[ 165.37ms - stdout ]────────────────────────────────────────────────────────╮
00:01:49 #10997 [Verbose] > │ let rec method0 () : unit =                                                  │
00:01:49 #10998 [Verbose] > │     let v0 : string = $"%A{struct (5, 10)}"                                  │
00:01:49 #10999 [Verbose] > │     System.Console.WriteLine v0                                              │
00:01:49 #11000 [Verbose] > │     let v1 : string = $"__expect / actual: %A{struct (5, 10)} / expected:    │
00:01:49 #11001 [Verbose] > │ %A{struct (5, 10)}"                                                          │
00:01:49 #11002 [Verbose] > │     ()                                                                       │
00:01:49 #11003 [Verbose] > │ method0()                                                                    │
00:01:49 #11004 [Verbose] > │                                                                              │
00:01:49 #11005 [Verbose] > │ struct (5, 10)                                                               │
00:01:49 #11006 [Verbose] > │                                                                              │
00:01:49 #11007 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:49 #11008 [Verbose] >
00:01:49 #11009 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:49 #11010 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:49 #11011 [Verbose] > │ ## unzip                                                                     │
00:01:49 #11012 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:49 #11013 [Verbose] >
00:01:49 #11014 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:49 #11015 [Verbose] > inl unzip s =
00:01:49 #11016 [Verbose] >     inl rec body s =
00:01:49 #11017 [Verbose] >         match s with
00:01:49 #11018 [Verbose] >         | StreamCons ((x, y), fn) =>
00:01:49 #11019 [Verbose] >             inl xs, ys = loop (fn ())
00:01:49 #11020 [Verbose] >             StreamCons (x, fun () => xs), StreamCons (y, fun () => ys)
00:01:49 #11021 [Verbose] >         | StreamNil => pair StreamNil StreamNil
00:01:49 #11022 [Verbose] >     and inl loop x =
00:01:49 #11023 [Verbose] >         if var_is x |> not
00:01:49 #11024 [Verbose] >         then body x
00:01:49 #11025 [Verbose] >         else
00:01:49 #11026 [Verbose] >             inl x = dyn x
00:01:49 #11027 [Verbose] >             join body x
00:01:49 #11028 [Verbose] >     loop s
00:01:49 #11029 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-1838-3897-3c75f7e00f02/main.spi
00:01:49 #11030 [Verbose] >
00:01:49 #11031 [Verbose] > ╭─[ 166.86ms - stdout ]────────────────────────────────────────────────────────╮
00:01:49 #11032 [Verbose] > │ ()                                                                           │
00:01:49 #11033 [Verbose] > │                                                                              │
00:01:49 #11034 [Verbose] > │                                                                              │
00:01:49 #11035 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:49 #11036 [Verbose] >
00:01:49 #11037 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:49 #11038 [Verbose] > // // test
00:01:49 #11039 [Verbose] >
00:01:49 #11040 [Verbose] > listm.init 10i32 id
00:01:49 #11041 [Verbose] > |> listm.map (fun x => x, x)
00:01:49 #11042 [Verbose] > |> from_list
00:01:49 #11043 [Verbose] > |> unzip
00:01:49 #11044 [Verbose] > |> fun x, y =>
00:01:49 #11045 [Verbose] >     x |> sum
00:01:49 #11046 [Verbose] >     |> _assert_eq 45
00:01:49 #11047 [Verbose] >
00:01:49 #11048 [Verbose] >     y |> sum
00:01:49 #11049 [Verbose] >     |> _assert_eq 45
00:01:49 #11050 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-1855-5570-5c5f247fa76e/main.spi
00:01:49 #11051 [Verbose] > [NbConvertApp] Converting notebook sm'.dib.ipynb to html
00:01:49 #11052 [Verbose] > /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:01:49 #11053 [Verbose] >   validate(nb)
00:01:49 #11054 [Verbose] >
00:01:49 #11055 [Verbose] > ╭─[ 190.99ms - stdout ]────────────────────────────────────────────────────────╮
00:01:49 #11056 [Verbose] > │ let rec method0 () : unit =                                                  │
00:01:49 #11057 [Verbose] > │     let v0 : string = $"%A{45}"                                              │
00:01:49 #11058 [Verbose] > │     System.Console.WriteLine v0                                              │
00:01:49 #11059 [Verbose] > │     let v1 : string = $"__expect / actual: %A{45} / expected: %A{45}"        │
00:01:49 #11060 [Verbose] > │     let v2 : string = $"%A{45}"                                              │
00:01:49 #11061 [Verbose] > │     System.Console.WriteLine v2                                              │
00:01:49 #11062 [Verbose] > │     let v3 : string = $"__expect / actual: %A{45} / expected: %A{45}"        │
00:01:49 #11063 [Verbose] > │     ()                                                                       │
00:01:49 #11064 [Verbose] > │ method0()                                                                    │
00:01:49 #11065 [Verbose] > │                                                                              │
00:01:49 #11066 [Verbose] > │ 45                                                                           │
00:01:49 #11067 [Verbose] > │ 45                                                                           │
00:01:49 #11068 [Verbose] > │                                                                              │
00:01:49 #11069 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:50 #11070 [Verbose] > /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:01:50 #11071 [Verbose] >   return _pygments_highlight(
00:01:50 #11072 [Verbose] > [NbConvertApp] Converting notebook stream.dib.ipynb to html
00:01:50 #11073 [Verbose] > /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:01:50 #11074 [Verbose] >   validate(nb)
00:01:50 #11075 [Verbose] >
00:01:50 #11076 [Verbose] > ╭─[ 6.34s - stdout ]───────────────────────────────────────────────────────────╮
00:01:50 #11077 [Verbose] > │ type UH0 =                                                                   │
00:01:50 #11078 [Verbose] > │     | UH0_0 of float * float * UH0                                           │
00:01:50 #11079 [Verbose] > │     | UH0_1                                                                  │
00:01:50 #11080 [Verbose] > │ and Mut0 = {mutable l0 : uint64}                                             │
00:01:50 #11081 [Verbose] > │ and UH1 =                                                                    │
00:01:50 #11082 [Verbose] > │     | UH1_0 of int32 * string * (float -> float) * UH1                       │
00:01:50 #11083 [Verbose] > │     | UH1_1                                                                  │
00:01:50 #11084 [Verbose] > │ and Mut1 = {mutable l0 : int32}                                              │
00:01:50 #11085 [Verbose] > │ and UH2 =                                                                    │
00:01:50 #11086 [Verbose] > │     | UH2_0 of string * UH2                                                  │
00:01:50 #11087 [Verbose] > │     | UH2_1                                                                  │
00:01:50 #11088 [Verbose] > │ and [<Struct>] US0 =                                                         │
00:01:50 #11089 [Verbose] > │     | US0_0                                                                  │
00:01:50 #11090 [Verbose] > │     | US0_1 of f1_0 : System.ConsoleColor                                    │
00:01:50 #11091 [Verbose] > │ and UH3 =                                                                    │
00:01:50 #11092 [Verbose] > │     | UH3_0 of int64 * int64 * UH3                                           │
00:01:50 #11093 [Verbose] > │     | UH3_1                                                                  │
00:01:50 #11094 [Verbose] > │ and Mut2 = {mutable l0 : uint64; mutable l1 : UH3; mutable l2 : int64}       │
00:01:50 #11095 [Verbose] > │ and UH4 =                                                                    │
00:01:50 #11096 [Verbose] > │     | UH4_0 of UH2 * US0 * UH4                                               │
00:01:50 #11097 [Verbose] > │     | UH4_1                                                                  │
00:01:50 #11098 [Verbose] > │ and [<Struct>] US1 =                                                         │
00:01:50 #11099 [Verbose] > │     | US1_0                                                                  │
00:01:50 #11100 [Verbose] > │     | US1_1 of f1_0 : int64                                                  │
00:01:50 #11101 [Verbose] > │ and UH5 =                                                                    │
00:01:50 #11102 [Verbose] > │     | UH5_0 of int32 * int64 * UH5                                           │
00:01:50 #11103 [Verbose] > │     | UH5_1                                                                  │
00:01:50 #11104 [Verbose] > │ and Mut3 = {mutable l0 : uint64; mutable l1 : UH5; mutable l2 : int32}       │
00:01:50 #11105 [Verbose] > │ and UH6 =                                                                    │
00:01:50 #11106 [Verbose] > │     | UH6_0 of int32 * string * UH6                                          │
00:01:50 #11107 [Verbose] > │     | UH6_1                                                                  │
00:01:50 #11108 [Verbose] > │ let rec method2 (v0 : UH0, v1 : uint64) : uint64 =                           │
00:01:50 #11109 [Verbose] > │     match v0 with                                                            │
00:01:50 #11110 [Verbose] > │     | UH0_0(v2, v3, v4) -> (* Cons *)                                        │
00:01:50 #11111 [Verbose] > │         let v5 : uint64 = v1 + 1UL                                           │
00:01:50 #11112 [Verbose] > │         method2(v4, v5)                                                      │
00:01:50 #11113 [Verbose] > │     | UH0_1 -> (* Nil *)                                                     │
00:01:50 #11114 [Verbose] > │         v1                                                                   │
00:01:50 #11115 [Verbose] > │ and method3 (v0 : (struct (float * float) []), v1 : UH0, v2 : uint64) :      │
00:01:50 #11116 [Verbose] > │ uint64 =                                                                     │
00:01:50 #11117 [Verbose] > │     match v1 with                                                            │
00:01:50 #11118 [Verbose] > │     | UH0_0(v3, v4, v5) -> (* Cons *)                                        │
00:01:50 #11119 [Verbose] > │         v0.[int v2] <- struct (v3, v4)                                       │
00:01:50 #11120 [Verbose] > │         let v6 : uint64 = v2 + 1UL                                           │
00:01:50 #11121 [Verbose] > │         method3(v0, v5, v6)                                                  │
00:01:50 #11122 [Verbose] > │     | UH0_1 -> (* Nil *)                                                     │
00:01:50 #11123 [Verbose] > │         v2                                                                   │
00:01:50 #11124 [Verbose] > │ and method1 (v0 : UH0) : (struct (float * float) []) =                       │
00:01:50 #11125 [Verbose] > │     let v1 : uint64 = 0UL                                                    │
00:01:50 #11126 [Verbose] > │     let v2 : uint64 = method2(v0, v1)                                        │
00:01:50 #11127 [Verbose] > │     let v3 : (struct (float * float) []) = Array.zeroCreate<struct (float *  │
00:01:50 #11128 [Verbose] > │ float)> (System.Convert.ToInt32(v2))                                         │
00:01:50 #11129 [Verbose] > │     let v4 : uint64 = 0UL                                                    │
00:01:50 #11130 [Verbose] > │     let v5 : uint64 = method3(v3, v0, v4)                                    │
00:01:50 #11131 [Verbose] > │     v3                                                                       │
00:01:50 #11132 [Verbose] > │ and method4 (v0 : uint64, v1 : Mut0) : bool =                                │
00:01:50 #11133 [Verbose] > │     let v2 : uint64 = v1.l0                                                  │
00:01:50 #11134 [Verbose] > │     let v3 : bool = v2 < v0                                                  │
00:01:50 #11135 [Verbose] > │     v3                                                                       │
00:01:50 #11136 [Verbose] > │ and closure1 () (v0 : float) : float =                                       │
00:01:50 #11137 [Verbose] > │     let v1 : float = v0 + 1.0                                                │
00:01:50 #11138 [Verbose] > │     v1                                                                       │
00:01:50 #11139 [Verbose] > │ and method6 (v0 : UH1, v1 : uint64) : uint64 =                               │
00:01:50 #11140 [Verbose] > │     match v0 with                                                            │
00:01:50 #11141 [Verbose] > │     | UH1_0(v2, v3, v4, v5) -> (* Cons *)                                    │
00:01:50 #11142 [Verbose] > │         let v6 : uint64 = v1 + 1UL                                           │
00:01:50 #11143 [Verbose] > │         method6(v5, v6)                                                      │
00:01:50 #11144 [Verbose] > │     | UH1_1 -> (* Nil *)                                                     │
00:01:50 #11145 [Verbose] > │         v1                                                                   │
00:01:50 #11146 [Verbose] > │ and method7 (v0 : (struct (int32 * string * (float -> float)) []), v1 : UH1, │
00:01:50 #11147 [Verbose] > │ v2 : uint64) : uint64 =                                                      │
00:01:50 #11148 [Verbose] > │     match v1 with                                                            │
00:01:50 #11149 [Verbose] > │     | UH1_0(v3, v4, v5, v6) -> (* Cons *)                                    │
00:01:50 #11150 [Verbose] > │         v0.[int v2] <- struct (v3, v4, v5)                                   │
00:01:50 #11151 [Verbose] > │         let v7 : uint64 = v2 + 1UL                                           │
00:01:50 #11152 [Verbose] > │         method7(v0, v6, v7)                                                  │
00:01:50 #11153 [Verbose] > │     | UH1_1 -> (* Nil *)                                                     │
00:01:50 #11154 [Verbose] > │         v2                                                                   │
00:01:50 #11155 [Verbose] > │ and method5 (v0 : UH1) : (struct (int32 * string * (float -> float)) []) =   │
00:01:50 #11156 [Verbose] > │     let v1 : uint64 = 0UL                                                    │
00:01:50 #11157 [Verbose] > │     let v2 : uint64 = method6(v0, v1)                                        │
00:01:50 #11158 [Verbose] > │     let v3 : (struct (int32 * string * (float -> float)) []) =               │
00:01:50 #11159 [Verbose] > │ Array.zeroCreate<struct (int32 * string * (float -> float))>                 │
00:01:50 #11160 [Verbose] > │ (System.Convert.ToInt32(v2))                                                 │
00:01:50 #11161 [Verbose] > │     let v4 : uint64 = 0UL                                                    │
00:01:50 #11162 [Verbose] > │     let v5 : uint64 = method7(v3, v0, v4)                                    │
00:01:50 #11163 [Verbose] > │     v3                                                                       │
00:01:50 #11164 [Verbose] > │ and method8 (v0 : Mut1) : bool =                                             │
00:01:50 #11165 [Verbose] > │     let v1 : int32 = v0.l0                                                   │
00:01:50 #11166 [Verbose] > │     let v2 : bool = v1 < 2000001                                             │
00:01:50 #11167 [Verbose] > │     v2                                                                       │
00:01:50 #11168 [Verbose] > │ and closure2 (v0 : float, v1 : (float -> float)) (v2 : int32) : float =      │
00:01:50 #11169 [Verbose] > │     v1 v0                                                                    │
00:01:50 #11170 [Verbose] > │ and method9 (v0 : float, v1 : (float []), v2 : uint64) : bool =              │
00:01:50 #11171 [Verbose] > │     let v3 : uint64 = System.Convert.ToUInt64 v1.Length                      │
00:01:50 #11172 [Verbose] > │     let v4 : bool = v2 < v3                                                  │
00:01:50 #11173 [Verbose] > │     if v4 then                                                               │
00:01:50 #11174 [Verbose] > │         let v5 : float = v1.[int v2]                                         │
00:01:50 #11175 [Verbose] > │         let v6 : bool = v0 = v5                                              │
00:01:50 #11176 [Verbose] > │         if v6 then                                                           │
00:01:50 #11177 [Verbose] > │             let v7 : uint64 = v2 + 1UL                                       │
00:01:50 #11178 [Verbose] > │             method9(v0, v1, v7)                                              │
00:01:50 #11179 [Verbose] > │         else                                                                 │
00:01:50 #11180 [Verbose] > │             false                                                            │
00:01:50 #11181 [Verbose] > │     else                                                                     │
00:01:50 #11182 [Verbose] > │         true                                                                 │
00:01:50 #11183 [Verbose] > │ and method10 (v0 : uint64, v1 : Mut2) : bool =                               │
00:01:50 #11184 [Verbose] > │     let v2 : uint64 = v1.l0                                                  │
00:01:50 #11185 [Verbose] > │     let v3 : bool = v2 < v0                                                  │
00:01:50 #11186 [Verbose] > │     v3                                                                       │
00:01:50 #11187 [Verbose] > │ and method11 (v0 : UH3, v1 : UH3) : UH3 =                                    │
00:01:50 #11188 [Verbose] > │     match v0 with                                                            │
00:01:50 #11189 [Verbose] > │     | UH3_0(v2, v3, v4) -> (* Cons *)                                        │
00:01:50 #11190 [Verbose] > │         let v5 : UH3 = UH3_0(v2, v3, v1)                                     │
00:01:50 #11191 [Verbose] > │         method11(v4, v5)                                                     │
00:01:50 #11192 [Verbose] > │     | UH3_1 -> (* Nil *)                                                     │
00:01:50 #11193 [Verbose] > │         v1                                                                   │
00:01:50 #11194 [Verbose] > │ and method13 (v0 : UH3, v1 : int32) : int32 =                                │
00:01:50 #11195 [Verbose] > │     match v0 with                                                            │
00:01:50 #11196 [Verbose] > │     | UH3_0(v2, v3, v4) -> (* Cons *)                                        │
00:01:50 #11197 [Verbose] > │         let v5 : int32 = v1 + 1                                              │
00:01:50 #11198 [Verbose] > │         method13(v4, v5)                                                     │
00:01:50 #11199 [Verbose] > │     | UH3_1 -> (* Nil *)                                                     │
00:01:50 #11200 [Verbose] > │         v1                                                                   │
00:01:50 #11201 [Verbose] > │ and method14 (v0 : (struct (int64 * int64) []), v1 : UH3, v2 : int32) :      │
00:01:50 #11202 [Verbose] > │ int32 =                                                                      │
00:01:50 #11203 [Verbose] > │     match v1 with                                                            │
00:01:50 #11204 [Verbose] > │     | UH3_0(v3, v4, v5) -> (* Cons *)                                        │
00:01:50 #11205 [Verbose] > │         v0.[int v2] <- struct (v3, v4)                                       │
00:01:50 #11206 [Verbose] > │         let v6 : int32 = v2 + 1                                              │
00:01:50 #11207 [Verbose] > │         method14(v0, v5, v6)                                                 │
00:01:50 #11208 [Verbose] > │     | UH3_1 -> (* Nil *)                                                     │
00:01:50 #11209 [Verbose] > │         v2                                                                   │
00:01:50 #11210 [Verbose] > │ and method12 (v0 : UH3) : (struct (int64 * int64) []) =                      │
00:01:50 #11211 [Verbose] > │     let v1 : int32 = 0                                                       │
00:01:50 #11212 [Verbose] > │     let v2 : int32 = method13(v0, v1)                                        │
00:01:50 #11213 [Verbose] > │     let v3 : (struct (int64 * int64) []) = Array.zeroCreate<struct (int64 *  │
00:01:50 #11214 [Verbose] > │ int64)> (v2)                                                                 │
00:01:50 #11215 [Verbose] > │     let v4 : int32 = 0                                                       │
00:01:50 #11216 [Verbose] > │     let v5 : int32 = method14(v3, v0, v4)                                    │
00:01:50 #11217 [Verbose] > │     v3                                                                       │
00:01:50 #11218 [Verbose] > │ and method15 (v0 : int32, v1 : Mut1) : bool =                                │
00:01:50 #11219 [Verbose] > │     let v2 : int32 = v1.l0                                                   │
00:01:50 #11220 [Verbose] > │     let v3 : bool = v2 < v0                                                  │
00:01:50 #11221 [Verbose] > │     v3                                                                       │
00:01:50 #11222 [Verbose] > │ and closure3 () struct (v0 : int64, v1 : int64) : int64 =                    │
00:01:50 #11223 [Verbose] > │     v1                                                                       │
00:01:50 #11224 [Verbose] > │ and method17 (v0 : UH4, v1 : uint64) : uint64 =                              │
00:01:50 #11225 [Verbose] > │     match v0 with                                                            │
00:01:50 #11226 [Verbose] > │     | UH4_0(v2, v3, v4) -> (* Cons *)                                        │
00:01:50 #11227 [Verbose] > │         let v5 : uint64 = v1 + 1UL                                           │
00:01:50 #11228 [Verbose] > │         method17(v4, v5)                                                     │
00:01:50 #11229 [Verbose] > │     | UH4_1 -> (* Nil *)                                                     │
00:01:50 #11230 [Verbose] > │         v1                                                                   │
00:01:50 #11231 [Verbose] > │ and method18 (v0 : (struct (UH2 * US0) []), v1 : UH4, v2 : uint64) : uint64  │
00:01:50 #11232 [Verbose] > │ =                                                                            │
00:01:50 #11233 [Verbose] > │     match v1 with                                                            │
00:01:50 #11234 [Verbose] > │     | UH4_0(v3, v4, v5) -> (* Cons *)                                        │
00:01:50 #11235 [Verbose] > │         v0.[int v2] <- struct (v3, v4)                                       │
00:01:50 #11236 [Verbose] > │         let v6 : uint64 = v2 + 1UL                                           │
00:01:50 #11237 [Verbose] > │         method18(v0, v5, v6)                                                 │
00:01:50 #11238 [Verbose] > │     | UH4_1 -> (* Nil *)                                                     │
00:01:50 #11239 [Verbose] > │         v2                                                                   │
00:01:50 #11240 [Verbose] > │ and method16 (v0 : UH4) : (struct (UH2 * US0) []) =                          │
00:01:50 #11241 [Verbose] > │     let v1 : uint64 = 0UL                                                    │
00:01:50 #11242 [Verbose] > │     let v2 : uint64 = method17(v0, v1)                                       │
00:01:50 #11243 [Verbose] > │     let v3 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * US0)>  │
00:01:50 #11244 [Verbose] > │ (System.Convert.ToInt32(v2))                                                 │
00:01:50 #11245 [Verbose] > │     let v4 : uint64 = 0UL                                                    │
00:01:50 #11246 [Verbose] > │     let v5 : uint64 = method18(v3, v0, v4)                                   │
00:01:50 #11247 [Verbose] > │     v3                                                                       │
00:01:50 #11248 [Verbose] > │ and method20 (v0 : UH2, v1 : uint64) : uint64 =                              │
00:01:50 #11249 [Verbose] > │     match v0 with                                                            │
00:01:50 #11250 [Verbose] > │     | UH2_0(v2, v3) -> (* Cons *)                                            │
00:01:50 #11251 [Verbose] > │         let v4 : uint64 = v1 + 1UL                                           │
00:01:50 #11252 [Verbose] > │         method20(v3, v4)                                                     │
00:01:50 #11253 [Verbose] > │     | UH2_1 -> (* Nil *)                                                     │
00:01:50 #11254 [Verbose] > │         v1                                                                   │
00:01:50 #11255 [Verbose] > │ and method21 (v0 : (string []), v1 : UH2, v2 : uint64) : uint64 =            │
00:01:50 #11256 [Verbose] > │     match v1 with                                                            │
00:01:50 #11257 [Verbose] > │     | UH2_0(v3, v4) -> (* Cons *)                                            │
00:01:50 #11258 [Verbose] > │         v0.[int v2] <- v3                                                    │
00:01:50 #11259 [Verbose] > │         let v5 : uint64 = v2 + 1UL                                           │
00:01:50 #11260 [Verbose] > │         method21(v0, v4, v5)                                                 │
00:01:50 #11261 [Verbose] > │     | UH2_1 -> (* Nil *)                                                     │
00:01:50 #11262 [Verbose] > │         v2                                                                   │
00:01:50 #11263 [Verbose] > │ and method19 (v0 : UH2) : (string []) =                                      │
00:01:50 #11264 [Verbose] > │     let v1 : uint64 = 0UL                                                    │
00:01:50 #11265 [Verbose] > │     let v2 : uint64 = method20(v0, v1)                                       │
00:01:50 #11266 [Verbose] > │     let v3 : (string []) = Array.zeroCreate<string>                          │
00:01:50 #11267 [Verbose] > │ (System.Convert.ToInt32(v2))                                                 │
00:01:50 #11268 [Verbose] > │     let v4 : uint64 = 0UL                                                    │
00:01:50 #11269 [Verbose] > │     let v5 : uint64 = method21(v3, v0, v4)                                   │
00:01:50 #11270 [Verbose] > │     v3                                                                       │
00:01:50 #11271 [Verbose] > │ and closure4 () (v0 : int64) : US1 =                                         │
00:01:50 #11272 [Verbose] > │     US1_1(v0)                                                                │
00:01:50 #11273 [Verbose] > │ and method22 (v0 : uint64, v1 : Mut3) : bool =                               │
00:01:50 #11274 [Verbose] > │     let v2 : uint64 = v1.l0                                                  │
00:01:50 #11275 [Verbose] > │     let v3 : bool = v2 < v0                                                  │
00:01:50 #11276 [Verbose] > │     v3                                                                       │
00:01:50 #11277 [Verbose] > │ and method23 (v0 : UH5, v1 : UH5) : UH5 =                                    │
00:01:50 #11278 [Verbose] > │     match v0 with                                                            │
00:01:50 #11279 [Verbose] > │     | UH5_0(v2, v3, v4) -> (* Cons *)                                        │
00:01:50 #11280 [Verbose] > │         let v5 : UH5 = UH5_0(v2, v3, v1)                                     │
00:01:50 #11281 [Verbose] > │         method23(v4, v5)                                                     │
00:01:50 #11282 [Verbose] > │     | UH5_1 -> (* Nil *)                                                     │
00:01:50 #11283 [Verbose] > │         v1                                                                   │
00:01:50 #11284 [Verbose] > │ and method25 (v0 : UH5, v1 : int32) : int32 =                                │
00:01:50 #11285 [Verbose] > │     match v0 with                                                            │
00:01:50 #11286 [Verbose] > │     | UH5_0(v2, v3, v4) -> (* Cons *)                                        │
00:01:50 #11287 [Verbose] > │         let v5 : int32 = v1 + 1                                              │
00:01:50 #11288 [Verbose] > │         method25(v4, v5)                                                     │
00:01:50 #11289 [Verbose] > │     | UH5_1 -> (* Nil *)                                                     │
00:01:50 #11290 [Verbose] > │         v1                                                                   │
00:01:50 #11291 [Verbose] > │ and method26 (v0 : (struct (int32 * int64) []), v1 : UH5, v2 : int32) :      │
00:01:50 #11292 [Verbose] > │ int32 =                                                                      │
00:01:50 #11293 [Verbose] > │     match v1 with                                                            │
00:01:50 #11294 [Verbose] > │     | UH5_0(v3, v4, v5) -> (* Cons *)                                        │
00:01:50 #11295 [Verbose] > │         v0.[int v2] <- struct (v3, v4)                                       │
00:01:50 #11296 [Verbose] > │         let v6 : int32 = v2 + 1                                              │
00:01:50 #11297 [Verbose] > │         method26(v0, v5, v6)                                                 │
00:01:50 #11298 [Verbose] > │     | UH5_1 -> (* Nil *)                                                     │
00:01:50 #11299 [Verbose] > │         v2                                                                   │
00:01:50 #11300 [Verbose] > │ and method24 (v0 : UH5) : (struct (int32 * int64) []) =                      │
00:01:50 #11301 [Verbose] > │     let v1 : int32 = 0                                                       │
00:01:50 #11302 [Verbose] > │     let v2 : int32 = method25(v0, v1)                                        │
00:01:50 #11303 [Verbose] > │     let v3 : (struct (int32 * int64) []) = Array.zeroCreate<struct (int32 *  │
00:01:50 #11304 [Verbose] > │ int64)> (v2)                                                                 │
00:01:50 #11305 [Verbose] > │     let v4 : int32 = 0                                                       │
00:01:50 #11306 [Verbose] > │     let v5 : int32 = method26(v3, v0, v4)                                    │
00:01:50 #11307 [Verbose] > │     v3                                                                       │
00:01:50 #11308 [Verbose] > │ and method27 (v0 : UH2, v1 : UH6, v2 : int32) : struct (UH6 * int32) =       │
00:01:50 #11309 [Verbose] > │     match v0 with                                                            │
00:01:50 #11310 [Verbose] > │     | UH2_0(v3, v4) -> (* Cons *)                                            │
00:01:50 #11311 [Verbose] > │         let v5 : int32 = v2 + 1                                              │
00:01:50 #11312 [Verbose] > │         let v6 : UH6 = UH6_0(v2, v3, v1)                                     │
00:01:50 #11313 [Verbose] > │         method27(v4, v6, v5)                                                 │
00:01:50 #11314 [Verbose] > │     | UH2_1 -> (* Nil *)                                                     │
00:01:50 #11315 [Verbose] > │         struct (v1, v2)                                                      │
00:01:50 #11316 [Verbose] > │ and method28 (v0 : UH6, v1 : UH6) : UH6 =                                    │
00:01:50 #11317 [Verbose] > │     match v0 with                                                            │
00:01:50 #11318 [Verbose] > │     | UH6_0(v2, v3, v4) -> (* Cons *)                                        │
00:01:50 #11319 [Verbose] > │         let v5 : UH6 = UH6_0(v2, v3, v1)                                     │
00:01:50 #11320 [Verbose] > │         method28(v4, v5)                                                     │
00:01:50 #11321 [Verbose] > │     | UH6_1 -> (* Nil *)                                                     │
00:01:50 #11322 [Verbose] > │         v1                                                                   │
00:01:50 #11323 [Verbose] > │ and method29 (v0 : Map<int32, int64>, v1 : UH6, v2 : UH2) : UH2 =            │
00:01:50 #11324 [Verbose] > │     match v1 with                                                            │
00:01:50 #11325 [Verbose] > │     | UH6_0(v3, v4, v5) -> (* Cons *)                                        │
00:01:50 #11326 [Verbose] > │         let v6 : UH2 = method29(v0, v5, v2)                                  │
00:01:50 #11327 [Verbose] > │         let v7 : int64 = v0.[v3]                                             │
00:01:50 #11328 [Verbose] > │         let v8 : int32 = int32 v7                                            │
00:01:50 #11329 [Verbose] > │         let v9 : string = v4.PadRight v8                                     │
00:01:50 #11330 [Verbose] > │         UH2_0(v9, v6)                                                        │
00:01:50 #11331 [Verbose] > │     | UH6_1 -> (* Nil *)                                                     │
00:01:50 #11332 [Verbose] > │         v2                                                                   │
00:01:50 #11333 [Verbose] > │ and method31 (v0 : UH2, v1 : int32) : int32 =                                │
00:01:50 #11334 [Verbose] > │     match v0 with                                                            │
00:01:50 #11335 [Verbose] > │     | UH2_0(v2, v3) -> (* Cons *)                                            │
00:01:50 #11336 [Verbose] > │         let v4 : int32 = v1 + 1                                              │
00:01:50 #11337 [Verbose] > │         method31(v3, v4)                                                     │
00:01:50 #11338 [Verbose] > │     | UH2_1 -> (* Nil *)                                                     │
00:01:50 #11339 [Verbose] > │         v1                                                                   │
00:01:50 #11340 [Verbose] > │ and method32 (v0 : (string []), v1 : UH2, v2 : int32) : int32 =              │
00:01:50 #11341 [Verbose] > │     match v1 with                                                            │
00:01:50 #11342 [Verbose] > │     | UH2_0(v3, v4) -> (* Cons *)                                            │
00:01:50 #11343 [Verbose] > │         v0.[int v2] <- v3                                                    │
00:01:50 #11344 [Verbose] > │         let v5 : int32 = v2 + 1                                              │
00:01:50 #11345 [Verbose] > │         method32(v0, v4, v5)                                                 │
00:01:50 #11346 [Verbose] > │     | UH2_1 -> (* Nil *)                                                     │
00:01:50 #11347 [Verbose] > │         v2                                                                   │
00:01:50 #11348 [Verbose] > │ and method30 (v0 : UH2) : (string []) =                                      │
00:01:50 #11349 [Verbose] > │     let v1 : int32 = 0                                                       │
00:01:50 #11350 [Verbose] > │     let v2 : int32 = method31(v0, v1)                                        │
00:01:50 #11351 [Verbose] > │     let v3 : (string []) = Array.zeroCreate<string> (v2)                     │
00:01:50 #11352 [Verbose] > │     let v4 : int32 = 0                                                       │
00:01:50 #11353 [Verbose] > │     let v5 : int32 = method32(v3, v0, v4)                                    │
00:01:50 #11354 [Verbose] > │     v3                                                                       │
00:01:50 #11355 [Verbose] > │ and method34 (v0 : UH5, v1 : uint64) : uint64 =                              │
00:01:50 #11356 [Verbose] > │     match v0 with                                                            │
00:01:50 #11357 [Verbose] > │     | UH5_0(v2, v3, v4) -> (* Cons *)                                        │
00:01:50 #11358 [Verbose] > │         let v5 : uint64 = v1 + 1UL                                           │
00:01:50 #11359 [Verbose] > │         method34(v4, v5)                                                     │
00:01:50 #11360 [Verbose] > │     | UH5_1 -> (* Nil *)                                                     │
00:01:50 #11361 [Verbose] > │         v1                                                                   │
00:01:50 #11362 [Verbose] > │ and method35 (v0 : (struct (int32 * int64) []), v1 : UH5, v2 : uint64) :     │
00:01:50 #11363 [Verbose] > │ uint64 =                                                                     │
00:01:50 #11364 [Verbose] > │     match v1 with                                                            │
00:01:50 #11365 [Verbose] > │     | UH5_0(v3, v4, v5) -> (* Cons *)                                        │
00:01:50 #11366 [Verbose] > │         v0.[int v2] <- struct (v3, v4)                                       │
00:01:50 #11367 [Verbose] > │         let v6 : uint64 = v2 + 1UL                                           │
00:01:50 #11368 [Verbose] > │         method35(v0, v5, v6)                                                 │
00:01:50 #11369 [Verbose] > │     | UH5_1 -> (* Nil *)                                                     │
00:01:50 #11370 [Verbose] > │         v2                                                                   │
00:01:50 #11371 [Verbose] > │ and method33 (v0 : UH5) : (struct (int32 * int64) []) =                      │
00:01:50 #11372 [Verbose] > │     let v1 : uint64 = 0UL                                                    │
00:01:50 #11373 [Verbose] > │     let v2 : uint64 = method34(v0, v1)                                       │
00:01:50 #11374 [Verbose] > │     let v3 : (struct (int32 * int64) []) = Array.zeroCreate<struct (int32 *  │
00:01:50 #11375 [Verbose] > │ int64)> (System.Convert.ToInt32(v2))                                         │
00:01:50 #11376 [Verbose] > │     let v4 : uint64 = 0UL                                                    │
00:01:50 #11377 [Verbose] > │     let v5 : uint64 = method35(v3, v0, v4)                                   │
00:01:50 #11378 [Verbose] > │     v3                                                                       │
00:01:50 #11379 [Verbose] > │ and closure5 () struct (v0 : int32, v1 : int64) : int64 =                    │
00:01:50 #11380 [Verbose] > │     v1                                                                       │
00:01:50 #11381 [Verbose] > │ and closure0 () () : unit =                                                  │
00:01:50 #11382 [Verbose] > │     let v0 : (unit -> unit) = closure0()                                     │
00:01:50 #11383 [Verbose] > │     let v1 : string = nameof v0                                              │
00:01:50 #11384 [Verbose] > │     let v2 : string = ""                                                     │
00:01:50 #11385 [Verbose] > │     System.Console.WriteLine v2                                              │
00:01:50 #11386 [Verbose] > │     System.Console.WriteLine v2                                              │
00:01:50 #11387 [Verbose] > │     let v3 : string = $"Test: {v1}"                                          │
00:01:50 #11388 [Verbose] > │     System.Console.WriteLine v3                                              │
00:01:50 #11389 [Verbose] > │     let v4 : float = 0.0                                                     │
00:01:50 #11390 [Verbose] > │     let v5 : float = 1.0                                                     │
00:01:50 #11391 [Verbose] > │     let v6 : float = 2.0                                                     │
00:01:50 #11392 [Verbose] > │     let v7 : float = 3.0                                                     │
00:01:50 #11393 [Verbose] > │     let v8 : float = 5.0                                                     │
00:01:50 #11394 [Verbose] > │     let v9 : float = 6.0                                                     │
00:01:50 #11395 [Verbose] > │     let v10 : UH0 = UH0_1                                                    │
00:01:50 #11396 [Verbose] > │     let v11 : UH0 = UH0_0(v8, v9, v10)                                       │
00:01:50 #11397 [Verbose] > │     let v12 : UH0 = UH0_0(v6, v7, v11)                                       │
00:01:50 #11398 [Verbose] > │     let v13 : UH0 = UH0_0(v4, v5, v12)                                       │
00:01:50 #11399 [Verbose] > │     let v14 : (struct (float * float) []) = method1(v13)                     │
00:01:50 #11400 [Verbose] > │     let v15 : uint64 = System.Convert.ToUInt64 v14.Length                    │
00:01:50 #11401 [Verbose] > │     let v16 : (struct (string * string * string * (int64 [])) []) =          │
00:01:50 #11402 [Verbose] > │ Array.zeroCreate<struct (string * string * string * (int64 []))>             │
00:01:50 #11403 [Verbose] > │ (System.Convert.ToInt32(v15))                                                │
00:01:50 #11404 [Verbose] > │     let v17 : Mut0 = {l0 = 0UL} : Mut0                                       │
00:01:50 #11405 [Verbose] > │     while method4(v15, v17) do                                               │
00:01:50 #11406 [Verbose] > │         let v19 : uint64 = v17.l0                                            │
00:01:50 #11407 [Verbose] > │         let struct (v20 : float, v21 : float) = v14.[int v19]                │
00:01:50 #11408 [Verbose] > │         let v22 : string = $"%A{v20}"                                        │
00:01:50 #11409 [Verbose] > │         System.Console.WriteLine v2                                          │
00:01:50 #11410 [Verbose] > │         let v23 : string = $"Solution: {v22}  "                              │
00:01:50 #11411 [Verbose] > │         System.Console.WriteLine v23                                         │
00:01:50 #11412 [Verbose] > │         let v24 : int32 = 0                                                  │
00:01:50 #11413 [Verbose] > │         let v25 : string = "A"                                               │
00:01:50 #11414 [Verbose] > │         let v26 : (float -> float) = closure1()                              │
00:01:50 #11415 [Verbose] > │         let v27 : UH1 = UH1_1                                                │
00:01:50 #11416 [Verbose] > │         let v28 : UH1 = UH1_0(v24, v25, v26, v27)                            │
00:01:50 #11417 [Verbose] > │         let v29 : (struct (int32 * string * (float -> float)) []) =          │
00:01:50 #11418 [Verbose] > │ method5(v28)                                                                 │
00:01:50 #11419 [Verbose] > │         let v30 : uint64 = System.Convert.ToUInt64 v29.Length                │
00:01:50 #11420 [Verbose] > │         let v31 : (struct (float * int64) []) = Array.zeroCreate<struct      │
00:01:50 #11421 [Verbose] > │ (float * int64)> (System.Convert.ToInt32(v30))                               │
00:01:50 #11422 [Verbose] > │         let v32 : Mut0 = {l0 = 0UL} : Mut0                                   │
00:01:50 #11423 [Verbose] > │         while method4(v30, v32) do                                           │
00:01:50 #11424 [Verbose] > │             let v34 : uint64 = v32.l0                                        │
00:01:50 #11425 [Verbose] > │             let struct (v35 : int32, v36 : string, v37 : (float -> float)) = │
00:01:50 #11426 [Verbose] > │ v29.[int v34]                                                                │
00:01:50 #11427 [Verbose] > │             let mutable result = None                                        │
00:01:50 #11428 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM                                 │
00:01:50 #11429 [Verbose] > │             ()                                                               │
00:01:50 #11430 [Verbose] > │             #endif                                                           │
00:01:50 #11431 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │
00:01:50 #11432 [Verbose] > │             ()                                                               │
00:01:50 #11433 [Verbose] > │             #endif                                                           │
00:01:50 #11434 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │
00:01:50 #11435 [Verbose] > │             System.GC.Collect ()                                             │
00:01:50 #11436 [Verbose] > │             ()                                                               │
00:01:50 #11437 [Verbose] > │             #endif                                                           │
00:01:50 #11438 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │
00:01:50 #11439 [Verbose] > │             System.GC.Collect ()                                             │
00:01:50 #11440 [Verbose] > │             ()                                                               │
00:01:50 #11441 [Verbose] > │             #endif                                                           │
00:01:50 #11442 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │
00:01:50 #11443 [Verbose] > │             System.GC.Collect ()                                             │
00:01:50 #11444 [Verbose] > │             ()                                                               │
00:01:50 #11445 [Verbose] > │             #endif                                                           │
00:01:50 #11446 [Verbose] > │             |> fun x -> result <- Some x                                     │
00:01:50 #11447 [Verbose] > │             result |> Option.get                                             │
00:01:50 #11448 [Verbose] > │             let v38 : (unit -> System.Diagnostics.Stopwatch) =               │
00:01:50 #11449 [Verbose] > │ System.Diagnostics.Stopwatch                                                 │
00:01:50 #11450 [Verbose] > │             let v39 : System.Diagnostics.Stopwatch = v38 ()                  │
00:01:50 #11451 [Verbose] > │             v39.Start ()                                                     │
00:01:50 #11452 [Verbose] > │             let v40 : int64 = v39.ElapsedMilliseconds                        │
00:01:50 #11453 [Verbose] > │             let v41 : (int32 []) = Array.zeroCreate<int32> (2000001)         │
00:01:50 #11454 [Verbose] > │             let v42 : Mut1 = {l0 = 0} : Mut1                                 │
00:01:50 #11455 [Verbose] > │             while method8(v42) do                                            │
00:01:50 #11456 [Verbose] > │                 let v44 : int32 = v42.l0                                     │
00:01:50 #11457 [Verbose] > │                 v41.[int v44] <- v44                                         │
00:01:50 #11458 [Verbose] > │                 let v45 : int32 = v44 + 1                                    │
00:01:50 #11459 [Verbose] > │                 v42.l0 <- v45                                                │
00:01:50 #11460 [Verbose] > │                 ()                                                           │
00:01:50 #11461 [Verbose] > │             let v46 : (int32 -> float) = closure2(v20, v37)                  │
00:01:50 #11462 [Verbose] > │             let v47 : (float []) = v41 |> Array.Parallel.map v46             │
00:01:50 #11463 [Verbose] > │             let v48 : int32 = v47.Length                                     │
00:01:50 #11464 [Verbose] > │             let v49 : int32 = v48 - 1                                        │
00:01:50 #11465 [Verbose] > │             let v50 : float = v47.[int v49]                                  │
00:01:50 #11466 [Verbose] > │             let v51 : int64 = v39.ElapsedMilliseconds                        │
00:01:50 #11467 [Verbose] > │             let v52 : int64 = v51 - v40                                      │
00:01:50 #11468 [Verbose] > │             let v53 : string = $"Test case {v35 + 1}. {v36}. Time: {v52}  "  │
00:01:50 #11469 [Verbose] > │             System.Console.WriteLine v53                                     │
00:01:50 #11470 [Verbose] > │             v31.[int v34] <- struct (v50, v52)                               │
00:01:50 #11471 [Verbose] > │             let v54 : uint64 = v34 + 1UL                                     │
00:01:50 #11472 [Verbose] > │             v32.l0 <- v54                                                    │
00:01:50 #11473 [Verbose] > │             ()                                                               │
00:01:50 #11474 [Verbose] > │         let v55 : uint64 = System.Convert.ToUInt64 v31.Length                │
00:01:50 #11475 [Verbose] > │         let v56 : (float []) = Array.zeroCreate<float>                       │
00:01:50 #11476 [Verbose] > │ (System.Convert.ToInt32(v55))                                                │
00:01:50 #11477 [Verbose] > │         let v57 : Mut0 = {l0 = 0UL} : Mut0                                   │
00:01:50 #11478 [Verbose] > │         while method4(v55, v57) do                                           │
00:01:50 #11479 [Verbose] > │             let v59 : uint64 = v57.l0                                        │
00:01:50 #11480 [Verbose] > │             let struct (v60 : float, v61 : int64) = v31.[int v59]            │
00:01:50 #11481 [Verbose] > │             v56.[int v59] <- v60                                             │
00:01:50 #11482 [Verbose] > │             let v62 : uint64 = v59 + 1UL                                     │
00:01:50 #11483 [Verbose] > │             v57.l0 <- v62                                                    │
00:01:50 #11484 [Verbose] > │             ()                                                               │
00:01:50 #11485 [Verbose] > │         let v63 : uint64 = System.Convert.ToUInt64 v56.Length                │
00:01:50 #11486 [Verbose] > │         let v64 : bool = v63 <= 1UL                                          │
00:01:50 #11487 [Verbose] > │         if v64 then                                                          │
00:01:50 #11488 [Verbose] > │             ()                                                               │
00:01:50 #11489 [Verbose] > │         else                                                                 │
00:01:50 #11490 [Verbose] > │             let v65 : float = v56.[int 0UL]                                  │
00:01:50 #11491 [Verbose] > │             let v66 : uint64 = 0UL                                           │
00:01:50 #11492 [Verbose] > │             let v67 : bool = method9(v65, v56, v66)                          │
00:01:50 #11493 [Verbose] > │             if v67 then                                                      │
00:01:50 #11494 [Verbose] > │                 ()                                                           │
00:01:50 #11495 [Verbose] > │             else                                                             │
00:01:50 #11496 [Verbose] > │                 let v68 : string = $"Challenge error: {v56}"                 │
00:01:50 #11497 [Verbose] > │                 failwith<unit> v68                                           │
00:01:50 #11498 [Verbose] > │         let v69 : string = $"%A{v21}"                                        │
00:01:50 #11499 [Verbose] > │         let v70 : (float []) = Array.zeroCreate<float>                       │
00:01:50 #11500 [Verbose] > │ (System.Convert.ToInt32(v55))                                                │
00:01:50 #11501 [Verbose] > │         let v71 : Mut0 = {l0 = 0UL} : Mut0                                   │
00:01:50 #11502 [Verbose] > │         while method4(v55, v71) do                                           │
00:01:50 #11503 [Verbose] > │             let v73 : uint64 = v71.l0                                        │
00:01:50 #11504 [Verbose] > │             let struct (v74 : float, v75 : int64) = v31.[int v73]            │
00:01:50 #11505 [Verbose] > │             v70.[int v73] <- v74                                             │
00:01:50 #11506 [Verbose] > │             let v76 : uint64 = v73 + 1UL                                     │
00:01:50 #11507 [Verbose] > │             v71.l0 <- v76                                                    │
00:01:50 #11508 [Verbose] > │             ()                                                               │
00:01:50 #11509 [Verbose] > │         let v77 : float = v70.[int 0UL]                                      │
00:01:50 #11510 [Verbose] > │         let v78 : string = $"%A{v77}"                                        │
00:01:50 #11511 [Verbose] > │         let v79 : (int64 []) = Array.zeroCreate<int64>                       │
00:01:50 #11512 [Verbose] > │ (System.Convert.ToInt32(v55))                                                │
00:01:50 #11513 [Verbose] > │         let v80 : Mut0 = {l0 = 0UL} : Mut0                                   │
00:01:50 #11514 [Verbose] > │         while method4(v55, v80) do                                           │
00:01:50 #11515 [Verbose] > │             let v82 : uint64 = v80.l0                                        │
00:01:50 #11516 [Verbose] > │             let struct (v83 : float, v84 : int64) = v31.[int v82]            │
00:01:50 #11517 [Verbose] > │             v79.[int v82] <- v84                                             │
00:01:50 #11518 [Verbose] > │             let v85 : uint64 = v82 + 1UL                                     │
00:01:50 #11519 [Verbose] > │             v80.l0 <- v85                                                    │
00:01:50 #11520 [Verbose] > │             ()                                                               │
00:01:50 #11521 [Verbose] > │         v16.[int v19] <- struct (v69, v22, v78, v79)                         │
00:01:50 #11522 [Verbose] > │         let v86 : uint64 = v19 + 1UL                                         │
00:01:50 #11523 [Verbose] > │         v17.l0 <- v86                                                        │
00:01:50 #11524 [Verbose] > │         ()                                                                   │
00:01:50 #11525 [Verbose] > │     let v87 : uint64 = System.Convert.ToUInt64 v16.Length                    │
00:01:50 #11526 [Verbose] > │     let v88 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * US0)> │
00:01:50 #11527 [Verbose] > │ (System.Convert.ToInt32(v87))                                                │
00:01:50 #11528 [Verbose] > │     let v89 : Mut0 = {l0 = 0UL} : Mut0                                       │
00:01:50 #11529 [Verbose] > │     while method4(v87, v89) do                                               │
00:01:50 #11530 [Verbose] > │         let v91 : uint64 = v89.l0                                            │
00:01:50 #11531 [Verbose] > │         let struct (v92 : string, v93 : string, v94 : string, v95 : (int64 [ │
00:01:50 #11532 [Verbose] > │ ])) = v16.[int v91]                                                          │
00:01:50 #11533 [Verbose] > │         let v96 : uint64 = System.Convert.ToUInt64 v95.Length                │
00:01:50 #11534 [Verbose] > │         let v97 : UH3 = UH3_1                                                │
00:01:50 #11535 [Verbose] > │         let v98 : Mut2 = {l0 = 0UL; l1 = v97; l2 = 0L} : Mut2                │
00:01:50 #11536 [Verbose] > │         while method10(v96, v98) do                                          │
00:01:50 #11537 [Verbose] > │             let v100 : uint64 = v98.l0                                       │
00:01:50 #11538 [Verbose] > │             let struct (v101 : UH3, v102 : int64) = v98.l1, v98.l2           │
00:01:50 #11539 [Verbose] > │             let v103 : int64 = v95.[int v100]                                │
00:01:50 #11540 [Verbose] > │             let v104 : int64 = v102 + 1L                                     │
00:01:50 #11541 [Verbose] > │             let v105 : uint64 = v100 + 1UL                                   │
00:01:50 #11542 [Verbose] > │             let v106 : UH3 = UH3_0(v102, v103, v101)                         │
00:01:50 #11543 [Verbose] > │             v98.l0 <- v105                                                   │
00:01:50 #11544 [Verbose] > │             v98.l1 <- v106                                                   │
00:01:50 #11545 [Verbose] > │             v98.l2 <- v104                                                   │
00:01:50 #11546 [Verbose] > │             ()                                                               │
00:01:50 #11547 [Verbose] > │         let struct (v107 : UH3, v108 : int64) = v98.l1, v98.l2               │
00:01:50 #11548 [Verbose] > │         let v109 : UH3 = UH3_1                                               │
00:01:50 #11549 [Verbose] > │         let v110 : UH3 = method11(v107, v109)                                │
00:01:50 #11550 [Verbose] > │         let v111 : (struct (int64 * int64) []) = method12(v110)              │
00:01:50 #11551 [Verbose] > │         let v112 : int32 = v111.Length                                       │
00:01:50 #11552 [Verbose] > │         let v113 : (struct (int64 * int64) []) = Array.zeroCreate<struct     │
00:01:50 #11553 [Verbose] > │ (int64 * int64)> (v112)                                                      │
00:01:50 #11554 [Verbose] > │         let v114 : Mut1 = {l0 = 0} : Mut1                                    │
00:01:50 #11555 [Verbose] > │         while method15(v112, v114) do                                        │
00:01:50 #11556 [Verbose] > │             let v116 : int32 = v114.l0                                       │
00:01:50 #11557 [Verbose] > │             let struct (v117 : int64, v118 : int64) = v111.[int v116]        │
00:01:50 #11558 [Verbose] > │             let v119 : int64 = v117 + 1L                                     │
00:01:50 #11559 [Verbose] > │             v113.[int v116] <- struct (v119, v118)                           │
00:01:50 #11560 [Verbose] > │             let v120 : int32 = v116 + 1                                      │
00:01:50 #11561 [Verbose] > │             v114.l0 <- v120                                                  │
00:01:50 #11562 [Verbose] > │             ()                                                               │
00:01:50 #11563 [Verbose] > │         let v121 : (struct (int64 * int64) -> int64) = closure3()            │
00:01:50 #11564 [Verbose] > │         let v122 : (struct (int64 * int64) []) = v113 |> Array.sortBy v121   │
00:01:50 #11565 [Verbose] > │         let struct (v123 : int64, v124 : int64) = v122.[int 0]               │
00:01:50 #11566 [Verbose] > │         let v125 : string = $"%A{struct (v123, v124)}"                       │
00:01:50 #11567 [Verbose] > │         let v126 : bool = v92 = v94                                          │
00:01:50 #11568 [Verbose] > │         let v131 : US0 =                                                     │
00:01:50 #11569 [Verbose] > │             if v126 then                                                     │
00:01:50 #11570 [Verbose] > │                 let v127 : System.ConsoleColor =                             │
00:01:50 #11571 [Verbose] > │ System.ConsoleColor.DarkGreen                                                │
00:01:50 #11572 [Verbose] > │                 US0_1(v127)                                                  │
00:01:50 #11573 [Verbose] > │             else                                                             │
00:01:50 #11574 [Verbose] > │                 let v129 : System.ConsoleColor = System.ConsoleColor.DarkRed │
00:01:50 #11575 [Verbose] > │                 US0_1(v129)                                                  │
00:01:50 #11576 [Verbose] > │         let v132 : UH2 = UH2_1                                               │
00:01:50 #11577 [Verbose] > │         let v133 : UH2 = UH2_0(v125, v132)                                   │
00:01:50 #11578 [Verbose] > │         let v134 : UH2 = UH2_0(v94, v133)                                    │
00:01:50 #11579 [Verbose] > │         let v135 : UH2 = UH2_0(v92, v134)                                    │
00:01:50 #11580 [Verbose] > │         let v136 : UH2 = UH2_0(v93, v135)                                    │
00:01:50 #11581 [Verbose] > │         v88.[int v91] <- struct (v136, v131)                                 │
00:01:50 #11582 [Verbose] > │         let v137 : uint64 = v91 + 1UL                                        │
00:01:50 #11583 [Verbose] > │         v89.l0 <- v137                                                       │
00:01:50 #11584 [Verbose] > │         ()                                                                   │
00:01:50 #11585 [Verbose] > │     let v138 : string = "Input"                                              │
00:01:50 #11586 [Verbose] > │     let v139 : string = "Expected"                                           │
00:01:50 #11587 [Verbose] > │     let v140 : string = "Result"                                             │
00:01:50 #11588 [Verbose] > │     let v141 : string = "Best"                                               │
00:01:50 #11589 [Verbose] > │     let v142 : UH2 = UH2_1                                                   │
00:01:50 #11590 [Verbose] > │     let v143 : UH2 = UH2_0(v141, v142)                                       │
00:01:50 #11591 [Verbose] > │     let v144 : UH2 = UH2_0(v140, v143)                                       │
00:01:50 #11592 [Verbose] > │     let v145 : UH2 = UH2_0(v139, v144)                                       │
00:01:50 #11593 [Verbose] > │     let v146 : UH2 = UH2_0(v138, v145)                                       │
00:01:50 #11594 [Verbose] > │     let v147 : US0 = US0_0                                                   │
00:01:50 #11595 [Verbose] > │     let v148 : string = "---"                                                │
00:01:50 #11596 [Verbose] > │     let v149 : UH2 = UH2_1                                                   │
00:01:50 #11597 [Verbose] > │     let v150 : UH2 = UH2_0(v148, v149)                                       │
00:01:50 #11598 [Verbose] > │     let v151 : UH2 = UH2_0(v148, v150)                                       │
00:01:50 #11599 [Verbose] > │     let v152 : UH2 = UH2_0(v148, v151)                                       │
00:01:50 #11600 [Verbose] > │     let v153 : UH2 = UH2_0(v148, v152)                                       │
00:01:50 #11601 [Verbose] > │     let v154 : US0 = US0_0                                                   │
00:01:50 #11602 [Verbose] > │     let v155 : UH4 = UH4_1                                                   │
00:01:50 #11603 [Verbose] > │     let v156 : UH4 = UH4_0(v153, v154, v155)                                 │
00:01:50 #11604 [Verbose] > │     let v157 : UH4 = UH4_0(v146, v147, v156)                                 │
00:01:50 #11605 [Verbose] > │     let v158 : (struct (UH2 * US0) []) = method16(v157)                      │
00:01:50 #11606 [Verbose] > │     let v159 : uint64 = System.Convert.ToUInt64 v158.Length                  │
00:01:50 #11607 [Verbose] > │     let v160 : uint64 = System.Convert.ToUInt64 v88.Length                   │
00:01:50 #11608 [Verbose] > │     let v161 : uint64 = v159 + v160                                          │
00:01:50 #11609 [Verbose] > │     let v162 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 *      │
00:01:50 #11610 [Verbose] > │ US0)> (System.Convert.ToInt32(v161))                                         │
00:01:50 #11611 [Verbose] > │     let v163 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:01:50 #11612 [Verbose] > │     while method4(v161, v163) do                                             │
00:01:50 #11613 [Verbose] > │         let v165 : uint64 = v163.l0                                          │
00:01:50 #11614 [Verbose] > │         let v166 : bool = v165 < v159                                        │
00:01:50 #11615 [Verbose] > │         let struct (v172 : UH2, v173 : US0) =                                │
00:01:50 #11616 [Verbose] > │             if v166 then                                                     │
00:01:50 #11617 [Verbose] > │                 let struct (v167 : UH2, v168 : US0) = v158.[int v165]        │
00:01:50 #11618 [Verbose] > │                 struct (v167, v168)                                          │
00:01:50 #11619 [Verbose] > │             else                                                             │
00:01:50 #11620 [Verbose] > │                 let v169 : uint64 = v165 - v159                              │
00:01:50 #11621 [Verbose] > │                 let struct (v170 : UH2, v171 : US0) = v88.[int v169]         │
00:01:50 #11622 [Verbose] > │                 struct (v170, v171)                                          │
00:01:50 #11623 [Verbose] > │         v162.[int v165] <- struct (v172, v173)                               │
00:01:50 #11624 [Verbose] > │         let v174 : uint64 = v165 + 1UL                                       │
00:01:50 #11625 [Verbose] > │         v163.l0 <- v174                                                      │
00:01:50 #11626 [Verbose] > │         ()                                                                   │
00:01:50 #11627 [Verbose] > │     let v175 : uint64 = System.Convert.ToUInt64 v162.Length                  │
00:01:50 #11628 [Verbose] > │     let v176 : ((string []) []) = Array.zeroCreate<(string [])>              │
00:01:50 #11629 [Verbose] > │ (System.Convert.ToInt32(v175))                                               │
00:01:50 #11630 [Verbose] > │     let v177 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:01:50 #11631 [Verbose] > │     while method4(v175, v177) do                                             │
00:01:50 #11632 [Verbose] > │         let v179 : uint64 = v177.l0                                          │
00:01:50 #11633 [Verbose] > │         let struct (v180 : UH2, v181 : US0) = v162.[int v179]                │
00:01:50 #11634 [Verbose] > │         let v182 : (string []) = method19(v180)                              │
00:01:50 #11635 [Verbose] > │         v176.[int v179] <- v182                                              │
00:01:50 #11636 [Verbose] > │         let v183 : uint64 = v179 + 1UL                                       │
00:01:50 #11637 [Verbose] > │         v177.l0 <- v183                                                      │
00:01:50 #11638 [Verbose] > │         ()                                                                   │
00:01:50 #11639 [Verbose] > │     let v184 : ((string []) []) = v176 |> Array.transpose                    │
00:01:50 #11640 [Verbose] > │     let v185 : uint64 = System.Convert.ToUInt64 v184.Length                  │
00:01:50 #11641 [Verbose] > │     let v186 : (int64 []) = Array.zeroCreate<int64>                          │
00:01:50 #11642 [Verbose] > │ (System.Convert.ToInt32(v185))                                               │
00:01:50 #11643 [Verbose] > │     let v187 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:01:50 #11644 [Verbose] > │     while method4(v185, v187) do                                             │
00:01:50 #11645 [Verbose] > │         let v189 : uint64 = v187.l0                                          │
00:01:50 #11646 [Verbose] > │         let v190 : (string []) = v184.[int v189]                             │
00:01:50 #11647 [Verbose] > │         let v191 : uint64 = System.Convert.ToUInt64 v190.Length              │
00:01:50 #11648 [Verbose] > │         let v192 : (int64 []) = Array.zeroCreate<int64>                      │
00:01:50 #11649 [Verbose] > │ (System.Convert.ToInt32(v191))                                               │
00:01:50 #11650 [Verbose] > │         let v193 : Mut0 = {l0 = 0UL} : Mut0                                  │
00:01:50 #11651 [Verbose] > │         while method4(v191, v193) do                                         │
00:01:50 #11652 [Verbose] > │             let v195 : uint64 = v193.l0                                      │
00:01:50 #11653 [Verbose] > │             let v196 : string = v190.[int v195]                              │
00:01:50 #11654 [Verbose] > │             let v197 : int64 = System.Convert.ToInt64 v196.Length            │
00:01:50 #11655 [Verbose] > │             v192.[int v195] <- v197                                          │
00:01:50 #11656 [Verbose] > │             let v198 : uint64 = v195 + 1UL                                   │
00:01:50 #11657 [Verbose] > │             v193.l0 <- v198                                                  │
00:01:50 #11658 [Verbose] > │             ()                                                               │
00:01:50 #11659 [Verbose] > │         let v199 : (int64 []) = v192 |> Array.sortDescending                 │
00:01:50 #11660 [Verbose] > │         let v200 : int64 option = v199 |> Array.tryItem 0                    │
00:01:50 #11661 [Verbose] > │         let v201 : (int64 -> US1) = closure4()                               │
00:01:50 #11662 [Verbose] > │         let v202 : US1 = US1_0                                               │
00:01:50 #11663 [Verbose] > │         let v203 : US1 = v200 |> Option.map v201 |> Option.defaultValue v202 │
00:01:50 #11664 [Verbose] > │         let v206 : int64 =                                                   │
00:01:50 #11665 [Verbose] > │             match v203 with                                                  │
00:01:50 #11666 [Verbose] > │             | US1_0 -> (* None *)                                            │
00:01:50 #11667 [Verbose] > │                 0L                                                           │
00:01:50 #11668 [Verbose] > │             | US1_1(v204) -> (* Some *)                                      │
00:01:50 #11669 [Verbose] > │                 v204                                                         │
00:01:50 #11670 [Verbose] > │         v186.[int v189] <- v206                                              │
00:01:50 #11671 [Verbose] > │         let v207 : uint64 = v189 + 1UL                                       │
00:01:50 #11672 [Verbose] > │         v187.l0 <- v207                                                      │
00:01:50 #11673 [Verbose] > │         ()                                                                   │
00:01:50 #11674 [Verbose] > │     let v208 : uint64 = System.Convert.ToUInt64 v186.Length                  │
00:01:50 #11675 [Verbose] > │     let v209 : UH5 = UH5_1                                                   │
00:01:50 #11676 [Verbose] > │     let v210 : Mut3 = {l0 = 0UL; l1 = v209; l2 = 0} : Mut3                   │
00:01:50 #11677 [Verbose] > │     while method22(v208, v210) do                                            │
00:01:50 #11678 [Verbose] > │         let v212 : uint64 = v210.l0                                          │
00:01:50 #11679 [Verbose] > │         let struct (v213 : UH5, v214 : int32) = v210.l1, v210.l2             │
00:01:50 #11680 [Verbose] > │         let v215 : int64 = v186.[int v212]                                   │
00:01:50 #11681 [Verbose] > │         let v216 : int32 = v214 + 1                                          │
00:01:50 #11682 [Verbose] > │         let v217 : uint64 = v212 + 1UL                                       │
00:01:50 #11683 [Verbose] > │         let v218 : UH5 = UH5_0(v214, v215, v213)                             │
00:01:50 #11684 [Verbose] > │         v210.l0 <- v217                                                      │
00:01:50 #11685 [Verbose] > │         v210.l1 <- v218                                                      │
00:01:50 #11686 [Verbose] > │         v210.l2 <- v216                                                      │
00:01:50 #11687 [Verbose] > │         ()                                                                   │
00:01:50 #11688 [Verbose] > │     let struct (v219 : UH5, v220 : int32) = v210.l1, v210.l2                 │
00:01:50 #11689 [Verbose] > │     let v221 : UH5 = UH5_1                                                   │
00:01:50 #11690 [Verbose] > │     let v222 : UH5 = method23(v219, v221)                                    │
00:01:50 #11691 [Verbose] > │     let v223 : (struct (int32 * int64) []) = method24(v222)                  │
00:01:50 #11692 [Verbose] > │     let v224 : Map<int32, int64> = v223 |> Array.map (fun (struct (a, b)) -> │
00:01:50 #11693 [Verbose] > │ a, b) |> Map.ofArray                                                         │
00:01:50 #11694 [Verbose] > │     let v225 : (struct ((string []) * US0) []) = Array.zeroCreate<struct     │
00:01:50 #11695 [Verbose] > │ ((string []) * US0)> (System.Convert.ToInt32(v175))                          │
00:01:50 #11696 [Verbose] > │     let v226 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:01:50 #11697 [Verbose] > │     while method4(v175, v226) do                                             │
00:01:50 #11698 [Verbose] > │         let v228 : uint64 = v226.l0                                          │
00:01:50 #11699 [Verbose] > │         let struct (v229 : UH2, v230 : US0) = v162.[int v228]                │
00:01:50 #11700 [Verbose] > │         let v231 : UH6 = UH6_1                                               │
00:01:50 #11701 [Verbose] > │         let v232 : int32 = 0                                                 │
00:01:50 #11702 [Verbose] > │         let struct (v233 : UH6, v234 : int32) = method27(v229, v231, v232)   │
00:01:50 #11703 [Verbose] > │         let v235 : UH6 = UH6_1                                               │
00:01:50 #11704 [Verbose] > │         let v236 : UH6 = method28(v233, v235)                                │
00:01:50 #11705 [Verbose] > │         let v237 : UH2 = UH2_1                                               │
00:01:50 #11706 [Verbose] > │         let v238 : UH2 = method29(v224, v236, v237)                          │
00:01:50 #11707 [Verbose] > │         let v239 : (string []) = method30(v238)                              │
00:01:50 #11708 [Verbose] > │         v225.[int v228] <- struct (v239, v230)                               │
00:01:50 #11709 [Verbose] > │         let v240 : uint64 = v228 + 1UL                                       │
00:01:50 #11710 [Verbose] > │         v226.l0 <- v240                                                      │
00:01:50 #11711 [Verbose] > │         ()                                                                   │
00:01:50 #11712 [Verbose] > │     System.Console.WriteLine v2                                              │
00:01:50 #11713 [Verbose] > │     let v241 : uint64 = System.Convert.ToUInt64 v225.Length                  │
00:01:50 #11714 [Verbose] > │     let v242 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:01:50 #11715 [Verbose] > │     while method4(v241, v242) do                                             │
00:01:50 #11716 [Verbose] > │         let v244 : uint64 = v242.l0                                          │
00:01:50 #11717 [Verbose] > │         let struct (v245 : (string []), v246 : US0) = v225.[int v244]        │
00:01:50 #11718 [Verbose] > │         match v246 with                                                      │
00:01:50 #11719 [Verbose] > │         | US0_0 -> (* None *)                                                │
00:01:50 #11720 [Verbose] > │             let mutable result = None                                        │
00:01:50 #11721 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM                                 │
00:01:50 #11722 [Verbose] > │             ()                                                               │
00:01:50 #11723 [Verbose] > │             #endif                                                           │
00:01:50 #11724 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │
00:01:50 #11725 [Verbose] > │             ()                                                               │
00:01:50 #11726 [Verbose] > │             #endif                                                           │
00:01:50 #11727 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │
00:01:50 #11728 [Verbose] > │             System.Console.ResetColor ()                                     │
00:01:50 #11729 [Verbose] > │             ()                                                               │
00:01:50 #11730 [Verbose] > │             #endif                                                           │
00:01:50 #11731 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │
00:01:50 #11732 [Verbose] > │             System.Console.ResetColor ()                                     │
00:01:50 #11733 [Verbose] > │             ()                                                               │
00:01:50 #11734 [Verbose] > │             #endif                                                           │
00:01:50 #11735 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │
00:01:50 #11736 [Verbose] > │             System.Console.ResetColor ()                                     │
00:01:50 #11737 [Verbose] > │             ()                                                               │
00:01:50 #11738 [Verbose] > │             #endif                                                           │
00:01:50 #11739 [Verbose] > │             |> fun x -> result <- Some x                                     │
00:01:50 #11740 [Verbose] > │             result |> Option.get                                             │
00:01:50 #11741 [Verbose] > │             ()                                                               │
00:01:50 #11742 [Verbose] > │         | US0_1(v247) -> (* Some *)                                          │
00:01:50 #11743 [Verbose] > │             let mutable result = None                                        │
00:01:50 #11744 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM                                 │
00:01:50 #11745 [Verbose] > │             ()                                                               │
00:01:50 #11746 [Verbose] > │             #endif                                                           │
00:01:50 #11747 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │
00:01:50 #11748 [Verbose] > │             ()                                                               │
00:01:50 #11749 [Verbose] > │             #endif                                                           │
00:01:50 #11750 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │
00:01:50 #11751 [Verbose] > │             System.Console.ForegroundColor <- v247                           │
00:01:50 #11752 [Verbose] > │             ()                                                               │
00:01:50 #11753 [Verbose] > │             #endif                                                           │
00:01:50 #11754 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │
00:01:50 #11755 [Verbose] > │             System.Console.ForegroundColor <- v247                           │
00:01:50 #11756 [Verbose] > │             ()                                                               │
00:01:50 #11757 [Verbose] > │             #endif                                                           │
00:01:50 #11758 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │
00:01:50 #11759 [Verbose] > │             System.Console.ForegroundColor <- v247                           │
00:01:50 #11760 [Verbose] > │             ()                                                               │
00:01:50 #11761 [Verbose] > │             #endif                                                           │
00:01:50 #11762 [Verbose] > │             |> fun x -> result <- Some x                                     │
00:01:50 #11763 [Verbose] > │             result |> Option.get                                             │
00:01:50 #11764 [Verbose] > │             ()                                                               │
00:01:50 #11765 [Verbose] > │         let v248 : string = "\t| "                                           │
00:01:50 #11766 [Verbose] > │         let v249 : string = System.String.Join (v248, v245)                  │
00:01:50 #11767 [Verbose] > │         System.Console.WriteLine v249                                        │
00:01:50 #11768 [Verbose] > │         let mutable result = None                                            │
00:01:50 #11769 [Verbose] > │         #if FABLE_COMPILER_RUST && !WASM                                     │
00:01:50 #11770 [Verbose] > │         ()                                                                   │
00:01:50 #11771 [Verbose] > │         #endif                                                               │
00:01:50 #11772 [Verbose] > │         #if FABLE_COMPILER_RUST && WASM                                      │
00:01:50 #11773 [Verbose] > │         ()                                                                   │
00:01:50 #11774 [Verbose] > │         #endif                                                               │
00:01:50 #11775 [Verbose] > │         #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                 │
00:01:50 #11776 [Verbose] > │         System.Console.ResetColor ()                                         │
00:01:50 #11777 [Verbose] > │         ()                                                                   │
00:01:50 #11778 [Verbose] > │         #endif                                                               │
00:01:50 #11779 [Verbose] > │         #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                  │
00:01:50 #11780 [Verbose] > │         System.Console.ResetColor ()                                         │
00:01:50 #11781 [Verbose] > │         ()                                                                   │
00:01:50 #11782 [Verbose] > │         #endif                                                               │
00:01:50 #11783 [Verbose] > │         #if !FABLE_COMPILER_RUST && WASM                                     │
00:01:50 #11784 [Verbose] > │         System.Console.ResetColor ()                                         │
00:01:50 #11785 [Verbose] > │         ()                                                                   │
00:01:50 #11786 [Verbose] > │         #endif                                                               │
00:01:50 #11787 [Verbose] > │         |> fun x -> result <- Some x                                         │
00:01:50 #11788 [Verbose] > │         result |> Option.get                                                 │
00:01:50 #11789 [Verbose] > │         let v250 : uint64 = v244 + 1UL                                       │
00:01:50 #11790 [Verbose] > │         v242.l0 <- v250                                                      │
00:01:50 #11791 [Verbose] > │         ()                                                                   │
00:01:50 #11792 [Verbose] > │     let v251 : ((float []) []) = Array.zeroCreate<(float [])>                │
00:01:50 #11793 [Verbose] > │ (System.Convert.ToInt32(v87))                                                │
00:01:50 #11794 [Verbose] > │     let v252 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:01:50 #11795 [Verbose] > │     while method4(v87, v252) do                                              │
00:01:50 #11796 [Verbose] > │         let v254 : uint64 = v252.l0                                          │
00:01:50 #11797 [Verbose] > │         let struct (v255 : string, v256 : string, v257 : string, v258 :      │
00:01:50 #11798 [Verbose] > │ (int64 [])) = v16.[int v254]                                                 │
00:01:50 #11799 [Verbose] > │         let v259 : (int64 -> float) = float                                  │
00:01:50 #11800 [Verbose] > │         let v260 : uint64 = System.Convert.ToUInt64 v258.Length              │
00:01:50 #11801 [Verbose] > │         let v261 : (float []) = Array.zeroCreate<float>                      │
00:01:50 #11802 [Verbose] > │ (System.Convert.ToInt32(v260))                                               │
00:01:50 #11803 [Verbose] > │         let v262 : Mut0 = {l0 = 0UL} : Mut0                                  │
00:01:50 #11804 [Verbose] > │         while method4(v260, v262) do                                         │
00:01:50 #11805 [Verbose] > │             let v264 : uint64 = v262.l0                                      │
00:01:50 #11806 [Verbose] > │             let v265 : int64 = v258.[int v264]                               │
00:01:50 #11807 [Verbose] > │             let v266 : float = v259 v265                                     │
00:01:50 #11808 [Verbose] > │             v261.[int v264] <- v266                                          │
00:01:50 #11809 [Verbose] > │             let v267 : uint64 = v264 + 1UL                                   │
00:01:50 #11810 [Verbose] > │             v262.l0 <- v267                                                  │
00:01:50 #11811 [Verbose] > │             ()                                                               │
00:01:50 #11812 [Verbose] > │         v251.[int v254] <- v261                                              │
00:01:50 #11813 [Verbose] > │         let v268 : uint64 = v254 + 1UL                                       │
00:01:50 #11814 [Verbose] > │         v252.l0 <- v268                                                      │
00:01:50 #11815 [Verbose] > │         ()                                                                   │
00:01:50 #11816 [Verbose] > │     let v269 : ((float []) []) = v251 |> Array.transpose                     │
00:01:50 #11817 [Verbose] > │     let v270 : uint64 = System.Convert.ToUInt64 v269.Length                  │
00:01:50 #11818 [Verbose] > │     let v271 : (float []) = Array.zeroCreate<float>                          │
00:01:50 #11819 [Verbose] > │ (System.Convert.ToInt32(v270))                                               │
00:01:50 #11820 [Verbose] > │     let v272 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:01:50 #11821 [Verbose] > │     while method4(v270, v272) do                                             │
00:01:50 #11822 [Verbose] > │         let v274 : uint64 = v272.l0                                          │
00:01:50 #11823 [Verbose] > │         let v275 : (float []) = v269.[int v274]                              │
00:01:50 #11824 [Verbose] > │         let v276 : float = v275 |> Array.average                             │
00:01:50 #11825 [Verbose] > │         v271.[int v274] <- v276                                              │
00:01:50 #11826 [Verbose] > │         let v277 : uint64 = v274 + 1UL                                       │
00:01:50 #11827 [Verbose] > │         v272.l0 <- v277                                                      │
00:01:50 #11828 [Verbose] > │         ()                                                                   │
00:01:50 #11829 [Verbose] > │     let v278 : (float -> int64) = int64                                      │
00:01:50 #11830 [Verbose] > │     let v279 : uint64 = System.Convert.ToUInt64 v271.Length                  │
00:01:50 #11831 [Verbose] > │     let v280 : (int64 []) = Array.zeroCreate<int64>                          │
00:01:50 #11832 [Verbose] > │ (System.Convert.ToInt32(v279))                                               │
00:01:50 #11833 [Verbose] > │     let v281 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:01:50 #11834 [Verbose] > │     while method4(v279, v281) do                                             │
00:01:50 #11835 [Verbose] > │         let v283 : uint64 = v281.l0                                          │
00:01:50 #11836 [Verbose] > │         let v284 : float = v271.[int v283]                                   │
00:01:50 #11837 [Verbose] > │         let v285 : int64 = v278 v284                                         │
00:01:50 #11838 [Verbose] > │         v280.[int v283] <- v285                                              │
00:01:50 #11839 [Verbose] > │         let v286 : uint64 = v283 + 1UL                                       │
00:01:50 #11840 [Verbose] > │         v281.l0 <- v286                                                      │
00:01:50 #11841 [Verbose] > │         ()                                                                   │
00:01:50 #11842 [Verbose] > │     let v287 : uint64 = System.Convert.ToUInt64 v280.Length                  │
00:01:50 #11843 [Verbose] > │     let v288 : UH5 = UH5_1                                                   │
00:01:50 #11844 [Verbose] > │     let v289 : Mut3 = {l0 = 0UL; l1 = v288; l2 = 0} : Mut3                   │
00:01:50 #11845 [Verbose] > │     while method22(v287, v289) do                                            │
00:01:50 #11846 [Verbose] > │         let v291 : uint64 = v289.l0                                          │
00:01:50 #11847 [Verbose] > │         let struct (v292 : UH5, v293 : int32) = v289.l1, v289.l2             │
00:01:50 #11848 [Verbose] > │         let v294 : int64 = v280.[int v291]                                   │
00:01:50 #11849 [Verbose] > │         let v295 : int32 = v293 + 1                                          │
00:01:50 #11850 [Verbose] > │         let v296 : uint64 = v291 + 1UL                                       │
00:01:50 #11851 [Verbose] > │         let v297 : UH5 = UH5_0(v293, v294, v292)                             │
00:01:50 #11852 [Verbose] > │         v289.l0 <- v296                                                      │
00:01:50 #11853 [Verbose] > │         v289.l1 <- v297                                                      │
00:01:50 #11854 [Verbose] > │         v289.l2 <- v295                                                      │
00:01:50 #11855 [Verbose] > │         ()                                                                   │
00:01:50 #11856 [Verbose] > │     let struct (v298 : UH5, v299 : int32) = v289.l1, v289.l2                 │
00:01:50 #11857 [Verbose] > │     let v300 : UH5 = UH5_1                                                   │
00:01:50 #11858 [Verbose] > │     let v301 : UH5 = method23(v298, v300)                                    │
00:01:50 #11859 [Verbose] > │     let v302 : (struct (int32 * int64) []) = method33(v301)                  │
00:01:50 #11860 [Verbose] > │     System.Console.WriteLine v2                                              │
00:01:50 #11861 [Verbose] > │     let v303 : string = "Average Ranking  "                                  │
00:01:50 #11862 [Verbose] > │     System.Console.WriteLine v303                                            │
00:01:50 #11863 [Verbose] > │     let v304 : (struct (int32 * int64) -> int64) = closure5()                │
00:01:50 #11864 [Verbose] > │     let v305 : (struct (int32 * int64) []) = v302 |> Array.sortBy v304       │
00:01:50 #11865 [Verbose] > │     let v306 : uint64 = System.Convert.ToUInt64 v305.Length                  │
00:01:50 #11866 [Verbose] > │     let v307 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:01:50 #11867 [Verbose] > │     while method4(v306, v307) do                                             │
00:01:50 #11868 [Verbose] > │         let v309 : uint64 = v307.l0                                          │
00:01:50 #11869 [Verbose] > │         let struct (v310 : int32, v311 : int64) = v305.[int v309]            │
00:01:50 #11870 [Verbose] > │         let v312 : string = $"Test case %d{v310 + 1}. Average Time: %A{v311} │
00:01:50 #11871 [Verbose] > │ "                                                                            │
00:01:50 #11872 [Verbose] > │         System.Console.WriteLine v312                                        │
00:01:50 #11873 [Verbose] > │         let v313 : uint64 = v309 + 1UL                                       │
00:01:50 #11874 [Verbose] > │         v307.l0 <- v313                                                      │
00:01:50 #11875 [Verbose] > │         ()                                                                   │
00:01:50 #11876 [Verbose] > │     ()                                                                       │
00:01:50 #11877 [Verbose] > │ and method0 () : unit =                                                      │
00:01:50 #11878 [Verbose] > │     let v0 : (unit -> unit) = closure0()                                     │
00:01:50 #11879 [Verbose] > │     let v1 : string = nameof v0                                              │
00:01:50 #11880 [Verbose] > │     let v2 : string = ""                                                     │
00:01:50 #11881 [Verbose] > │     System.Console.WriteLine v2                                              │
00:01:50 #11882 [Verbose] > │     System.Console.WriteLine v2                                              │
00:01:50 #11883 [Verbose] > │     let v3 : string = $"Test: {v1}"                                          │
00:01:50 #11884 [Verbose] > │     System.Console.WriteLine v3                                              │
00:01:50 #11885 [Verbose] > │     let v4 : float = 0.0                                                     │
00:01:50 #11886 [Verbose] > │     let v5 : float = 1.0                                                     │
00:01:50 #11887 [Verbose] > │     let v6 : float = 2.0                                                     │
00:01:50 #11888 [Verbose] > │     let v7 : float = 3.0                                                     │
00:01:50 #11889 [Verbose] > │     let v8 : float = 5.0                                                     │
00:01:50 #11890 [Verbose] > │     let v9 : float = 6.0                                                     │
00:01:50 #11891 [Verbose] > │     let v10 : UH0 = UH0_1                                                    │
00:01:50 #11892 [Verbose] > │     let v11 : UH0 = UH0_0(v8, v9, v10)                                       │
00:01:50 #11893 [Verbose] > │     let v12 : UH0 = UH0_0(v6, v7, v11)                                       │
00:01:50 #11894 [Verbose] > │     let v13 : UH0 = UH0_0(v4, v5, v12)                                       │
00:01:50 #11895 [Verbose] > │     let v14 : (struct (float * float) []) = method1(v13)                     │
00:01:50 #11896 [Verbose] > │     let v15 : uint64 = System.Convert.ToUInt64 v14.Length                    │
00:01:50 #11897 [Verbose] > │     let v16 : (struct (string * string * string * (int64 [])) []) =          │
00:01:50 #11898 [Verbose] > │ Array.zeroCreate<struct (string * string * string * (int64 []))>             │
00:01:50 #11899 [Verbose] > │ (System.Convert.ToInt32(v15))                                                │
00:01:50 #11900 [Verbose] > │     let v17 : Mut0 = {l0 = 0UL} : Mut0                                       │
00:01:50 #11901 [Verbose] > │     while method4(v15, v17) do                                               │
00:01:50 #11902 [Verbose] > │         let v19 : uint64 = v17.l0                                            │
00:01:50 #11903 [Verbose] > │         let struct (v20 : float, v21 : float) = v14.[int v19]                │
00:01:50 #11904 [Verbose] > │         let v22 : string = $"%A{v20}"                                        │
00:01:50 #11905 [Verbose] > │         System.Console.WriteLine v2                                          │
00:01:50 #11906 [Verbose] > │         let v23 : string = $"Solution: {v22}  "                              │
00:01:50 #11907 [Verbose] > │         System.Console.WriteLine v23                                         │
00:01:50 #11908 [Verbose] > │         let v24 : int32 = 0                                                  │
00:01:50 #11909 [Verbose] > │         let v25 : string = "A"                                               │
00:01:50 #11910 [Verbose] > │         let v26 : (float -> float) = closure1()                              │
00:01:50 #11911 [Verbose] > │         let v27 : UH1 = UH1_1                                                │
00:01:50 #11912 [Verbose] > │         let v28 : UH1 = UH1_0(v24, v25, v26, v27)                            │
00:01:50 #11913 [Verbose] > │         let v29 : (struct (int32 * string * (float -> float)) []) =          │
00:01:50 #11914 [Verbose] > │ method5(v28)                                                                 │
00:01:50 #11915 [Verbose] > │         let v30 : uint64 = System.Convert.ToUInt64 v29.Length                │
00:01:50 #11916 [Verbose] > │         let v31 : (struct (float * int64) []) = Array.zeroCreate<struct      │
00:01:50 #11917 [Verbose] > │ (float * int64)> (System.Convert.ToInt32(v30))                               │
00:01:50 #11918 [Verbose] > │         let v32 : Mut0 = {l0 = 0UL} : Mut0                                   │
00:01:50 #11919 [Verbose] > │         while method4(v30, v32) do                                           │
00:01:51 #11920 [Verbose] > │             let v34 : uint64 = v32.l0                                        │
00:01:51 #11921 [Verbose] > │             let struct (v35 : int32, v36 : string, v37 : (float -> float)) = │
00:01:51 #11922 [Verbose] > │ v29.[int v34]                                                                │
00:01:51 #11923 [Verbose] > │             let mutable result = None                                        │
00:01:51 #11924 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM                                 │
00:01:51 #11925 [Verbose] > │             ()                                                               │
00:01:51 #11926 [Verbose] > │             #endif                                                           │
00:01:51 #11927 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │
00:01:51 #11928 [Verbose] > │             ()                                                               │
00:01:51 #11929 [Verbose] > │             #endif                                                           │
00:01:51 #11930 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │
00:01:51 #11931 [Verbose] > │             System.GC.Collect ()                                             │
00:01:51 #11932 [Verbose] > │             ()                                                               │
00:01:51 #11933 [Verbose] > │             #endif                                                           │
00:01:51 #11934 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │
00:01:51 #11935 [Verbose] > │             System.GC.Collect ()                                             │
00:01:51 #11936 [Verbose] > │             ()                                                               │
00:01:51 #11937 [Verbose] > │             #endif                                                           │
00:01:51 #11938 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │
00:01:51 #11939 [Verbose] > │             System.GC.Collect ()                                             │
00:01:51 #11940 [Verbose] > │             ()                                                               │
00:01:51 #11941 [Verbose] > │             #endif                                                           │
00:01:51 #11942 [Verbose] > │             |> fun x -> result <- Some x                                     │
00:01:51 #11943 [Verbose] > │             result |> Option.get                                             │
00:01:51 #11944 [Verbose] > │             let v38 : (unit -> System.Diagnostics.Stopwatch) =               │
00:01:51 #11945 [Verbose] > │ System.Diagnostics.Stopwatch                                                 │
00:01:51 #11946 [Verbose] > │             let v39 : System.Diagnostics.Stopwatch = v38 ()                  │
00:01:51 #11947 [Verbose] > │             v39.Start ()                                                     │
00:01:51 #11948 [Verbose] > │             let v40 : int64 = v39.ElapsedMilliseconds                        │
00:01:51 #11949 [Verbose] > │             let v41 : (int32 []) = Array.zeroCreate<int32> (2000001)         │
00:01:51 #11950 [Verbose] > │             let v42 : Mut1 = {l0 = 0} : Mut1                                 │
00:01:51 #11951 [Verbose] > │             while method8(v42) do                                            │
00:01:51 #11952 [Verbose] > │                 let v44 : int32 = v42.l0                                     │
00:01:51 #11953 [Verbose] > │                 v41.[int v44] <- v44                                         │
00:01:51 #11954 [Verbose] > │                 let v45 : int32 = v44 + 1                                    │
00:01:51 #11955 [Verbose] > │                 v42.l0 <- v45                                                │
00:01:51 #11956 [Verbose] > │                 ()                                                           │
00:01:51 #11957 [Verbose] > │             let v46 : (int32 -> float) = closure2(v20, v37)                  │
00:01:51 #11958 [Verbose] > │             let v47 : (float []) = v41 |> Array.Parallel.map v46             │
00:01:51 #11959 [Verbose] > │             let v48 : int32 = v47.Length                                     │
00:01:51 #11960 [Verbose] > │             let v49 : int32 = v48 - 1                                        │
00:01:51 #11961 [Verbose] > │             let v50 : float = v47.[int v49]                                  │
00:01:51 #11962 [Verbose] > │             let v51 : int64 = v39.ElapsedMilliseconds                        │
00:01:51 #11963 [Verbose] > │             let v52 : int64 = v51 - v40                                      │
00:01:51 #11964 [Verbose] > │             let v53 : string = $"Test case {v35 + 1}. {v36}. Time: {v52}  "  │
00:01:51 #11965 [Verbose] > │             System.Console.WriteLine v53                                     │
00:01:51 #11966 [Verbose] > │             v31.[int v34] <- struct (v50, v52)                               │
00:01:51 #11967 [Verbose] > │             let v54 : uint64 = v34 + 1UL                                     │
00:01:51 #11968 [Verbose] > │             v32.l0 <- v54                                                    │
00:01:51 #11969 [Verbose] > │             ()                                                               │
00:01:51 #11970 [Verbose] > │         let v55 : uint64 = System.Convert.ToUInt64 v31.Length                │
00:01:51 #11971 [Verbose] > │         let v56 : (float []) = Array.zeroCreate<float>                       │
00:01:51 #11972 [Verbose] > │ (System.Convert.ToInt32(v55))                                                │
00:01:51 #11973 [Verbose] > │         let v57 : Mut0 = {l0 = 0UL} : Mut0                                   │
00:01:51 #11974 [Verbose] > │         while method4(v55, v57) do                                           │
00:01:51 #11975 [Verbose] > │             let v59 : uint64 = v57.l0                                        │
00:01:51 #11976 [Verbose] > │             let struct (v60 : float, v61 : int64) = v31.[int v59]            │
00:01:51 #11977 [Verbose] > │             v56.[int v59] <- v60                                             │
00:01:51 #11978 [Verbose] > │             let v62 : uint64 = v59 + 1UL                                     │
00:01:51 #11979 [Verbose] > │             v57.l0 <- v62                                                    │
00:01:51 #11980 [Verbose] > │             ()                                                               │
00:01:51 #11981 [Verbose] > │         let v63 : uint64 = System.Convert.ToUInt64 v56.Length                │
00:01:51 #11982 [Verbose] > │         let v64 : bool = v63 <= 1UL                                          │
00:01:51 #11983 [Verbose] > │         if v64 then                                                          │
00:01:51 #11984 [Verbose] > │             ()                                                               │
00:01:51 #11985 [Verbose] > │         else                                                                 │
00:01:51 #11986 [Verbose] > │             let v65 : float = v56.[int 0UL]                                  │
00:01:51 #11987 [Verbose] > │             let v66 : uint64 = 0UL                                           │
00:01:51 #11988 [Verbose] > │             let v67 : bool = method9(v65, v56, v66)                          │
00:01:51 #11989 [Verbose] > │             if v67 then                                                      │
00:01:51 #11990 [Verbose] > │                 ()                                                           │
00:01:51 #11991 [Verbose] > │             else                                                             │
00:01:51 #11992 [Verbose] > │                 let v68 : string = $"Challenge error: {v56}"                 │
00:01:51 #11993 [Verbose] > │                 failwith<unit> v68                                           │
00:01:51 #11994 [Verbose] > │         let v69 : string = $"%A{v21}"                                        │
00:01:51 #11995 [Verbose] > │         let v70 : (float []) = Array.zeroCreate<float>                       │
00:01:51 #11996 [Verbose] > │ (System.Convert.ToInt32(v55))                                                │
00:01:51 #11997 [Verbose] > │         let v71 : Mut0 = {l0 = 0UL} : Mut0                                   │
00:01:51 #11998 [Verbose] > │         while method4(v55, v71) do                                           │
00:01:51 #11999 [Verbose] > │             let v73 : uint64 = v71.l0                                        │
00:01:51 #12000 [Verbose] > │             let struct (v74 : float, v75 : int64) = v31.[int v73]            │
00:01:51 #12001 [Verbose] > │             v70.[int v73] <- v74                                             │
00:01:51 #12002 [Verbose] > │             let v76 : uint64 = v73 + 1UL                                     │
00:01:51 #12003 [Verbose] > │             v71.l0 <- v76                                                    │
00:01:51 #12004 [Verbose] > │             ()                                                               │
00:01:51 #12005 [Verbose] > │         let v77 : float = v70.[int 0UL]                                      │
00:01:51 #12006 [Verbose] > │         let v78 : string = $"%A{v77}"                                        │
00:01:51 #12007 [Verbose] > │         let v79 : (int64 []) = Array.zeroCreate<int64>                       │
00:01:51 #12008 [Verbose] > │ (System.Convert.ToInt32(v55))                                                │
00:01:51 #12009 [Verbose] > │         let v80 : Mut0 = {l0 = 0UL} : Mut0                                   │
00:01:51 #12010 [Verbose] > │         while method4(v55, v80) do                                           │
00:01:51 #12011 [Verbose] > │             let v82 : uint64 = v80.l0                                        │
00:01:51 #12012 [Verbose] > │             let struct (v83 : float, v84 : int64) = v31.[int v82]            │
00:01:51 #12013 [Verbose] > │             v79.[int v82] <- v84                                             │
00:01:51 #12014 [Verbose] > │             let v85 : uint64 = v82 + 1UL                                     │
00:01:51 #12015 [Verbose] > │             v80.l0 <- v85                                                    │
00:01:51 #12016 [Verbose] > │             ()                                                               │
00:01:51 #12017 [Verbose] > │         v16.[int v19] <- struct (v69, v22, v78, v79)                         │
00:01:51 #12018 [Verbose] > │         let v86 : uint64 = v19 + 1UL                                         │
00:01:51 #12019 [Verbose] > │         v17.l0 <- v86                                                        │
00:01:51 #12020 [Verbose] > │         ()                                                                   │
00:01:51 #12021 [Verbose] > │     let v87 : uint64 = System.Convert.ToUInt64 v16.Length                    │
00:01:51 #12022 [Verbose] > │     let v88 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * US0)> │
00:01:51 #12023 [Verbose] > │ (System.Convert.ToInt32(v87))                                                │
00:01:51 #12024 [Verbose] > │     let v89 : Mut0 = {l0 = 0UL} : Mut0                                       │
00:01:51 #12025 [Verbose] > │     while method4(v87, v89) do                                               │
00:01:51 #12026 [Verbose] > │         let v91 : uint64 = v89.l0                                            │
00:01:51 #12027 [Verbose] > │         let struct (v92 : string, v93 : string, v94 : string, v95 : (int64 [ │
00:01:51 #12028 [Verbose] > │ ])) = v16.[int v91]                                                          │
00:01:51 #12029 [Verbose] > │         let v96 : uint64 = System.Convert.ToUInt64 v95.Length                │
00:01:51 #12030 [Verbose] > │         let v97 : UH3 = UH3_1                                                │
00:01:51 #12031 [Verbose] > │         let v98 : Mut2 = {l0 = 0UL; l1 = v97; l2 = 0L} : Mut2                │
00:01:51 #12032 [Verbose] > │         while method10(v96, v98) do                                          │
00:01:51 #12033 [Verbose] > │             let v100 : uint64 = v98.l0                                       │
00:01:51 #12034 [Verbose] > │             let struct (v101 : UH3, v102 : int64) = v98.l1, v98.l2           │
00:01:51 #12035 [Verbose] > │             let v103 : int64 = v95.[int v100]                                │
00:01:51 #12036 [Verbose] > │             let v104 : int64 = v102 + 1L                                     │
00:01:51 #12037 [Verbose] > │             let v105 : uint64 = v100 + 1UL                                   │
00:01:51 #12038 [Verbose] > │             let v106 : UH3 = UH3_0(v102, v103, v101)                         │
00:01:51 #12039 [Verbose] > │             v98.l0 <- v105                                                   │
00:01:51 #12040 [Verbose] > │             v98.l1 <- v106                                                   │
00:01:51 #12041 [Verbose] > │             v98.l2 <- v104                                                   │
00:01:51 #12042 [Verbose] > │             ()                                                               │
00:01:51 #12043 [Verbose] > │         let struct (v107 : UH3, v108 : int64) = v98.l1, v98.l2               │
00:01:51 #12044 [Verbose] > │         let v109 : UH3 = UH3_1                                               │
00:01:51 #12045 [Verbose] > │         let v110 : UH3 = method11(v107, v109)                                │
00:01:51 #12046 [Verbose] > │         let v111 : (struct (int64 * int64) []) = method12(v110)              │
00:01:51 #12047 [Verbose] > │         let v112 : int32 = v111.Length                                       │
00:01:51 #12048 [Verbose] > │         let v113 : (struct (int64 * int64) []) = Array.zeroCreate<struct     │
00:01:51 #12049 [Verbose] > │ (int64 * int64)> (v112)                                                      │
00:01:51 #12050 [Verbose] > │         let v114 : Mut1 = {l0 = 0} : Mut1                                    │
00:01:51 #12051 [Verbose] > │         while method15(v112, v114) do                                        │
00:01:51 #12052 [Verbose] > │             let v116 : int32 = v114.l0                                       │
00:01:51 #12053 [Verbose] > │             let struct (v117 : int64, v118 : int64) = v111.[int v116]        │
00:01:51 #12054 [Verbose] > │             let v119 : int64 = v117 + 1L                                     │
00:01:51 #12055 [Verbose] > │             v113.[int v116] <- struct (v119, v118)                           │
00:01:51 #12056 [Verbose] > │             let v120 : int32 = v116 + 1                                      │
00:01:51 #12057 [Verbose] > │             v114.l0 <- v120                                                  │
00:01:51 #12058 [Verbose] > │             ()                                                               │
00:01:51 #12059 [Verbose] > │         let v121 : (struct (int64 * int64) -> int64) = closure3()            │
00:01:51 #12060 [Verbose] > │         let v122 : (struct (int64 * int64) []) = v113 |> Array.sortBy v121   │
00:01:51 #12061 [Verbose] > │         let struct (v123 : int64, v124 : int64) = v122.[int 0]               │
00:01:51 #12062 [Verbose] > │         let v125 : string = $"%A{struct (v123, v124)}"                       │
00:01:51 #12063 [Verbose] > │         let v126 : bool = v92 = v94                                          │
00:01:51 #12064 [Verbose] > │         let v131 : US0 =                                                     │
00:01:51 #12065 [Verbose] > │             if v126 then                                                     │
00:01:51 #12066 [Verbose] > │                 let v127 : System.ConsoleColor =                             │
00:01:51 #12067 [Verbose] > │ System.ConsoleColor.DarkGreen                                                │
00:01:51 #12068 [Verbose] > │                 US0_1(v127)                                                  │
00:01:51 #12069 [Verbose] > │             else                                                             │
00:01:51 #12070 [Verbose] > │                 let v129 : System.ConsoleColor = System.ConsoleColor.DarkRed │
00:01:51 #12071 [Verbose] > │                 US0_1(v129)                                                  │
00:01:51 #12072 [Verbose] > │         let v132 : UH2 = UH2_1                                               │
00:01:51 #12073 [Verbose] > │         let v133 : UH2 = UH2_0(v125, v132)                                   │
00:01:51 #12074 [Verbose] > │         let v134 : UH2 = UH2_0(v94, v133)                                    │
00:01:51 #12075 [Verbose] > │         let v135 : UH2 = UH2_0(v92, v134)                                    │
00:01:51 #12076 [Verbose] > │         let v136 : UH2 = UH2_0(v93, v135)                                    │
00:01:51 #12077 [Verbose] > │         v88.[int v91] <- struct (v136, v131)                                 │
00:01:51 #12078 [Verbose] > │         let v137 : uint64 = v91 + 1UL                                        │
00:01:51 #12079 [Verbose] > │         v89.l0 <- v137                                                       │
00:01:51 #12080 [Verbose] > │         ()                                                                   │
00:01:51 #12081 [Verbose] > │     let v138 : string = "Input"                                              │
00:01:51 #12082 [Verbose] > │     let v139 : string = "Expected"                                           │
00:01:51 #12083 [Verbose] > │     let v140 : string = "Result"                                             │
00:01:51 #12084 [Verbose] > │     let v141 : string = "Best"                                               │
00:01:51 #12085 [Verbose] > │     let v142 : UH2 = UH2_1                                                   │
00:01:51 #12086 [Verbose] > │     let v143 : UH2 = UH2_0(v141, v142)                                       │
00:01:51 #12087 [Verbose] > │     let v144 : UH2 = UH2_0(v140, v143)                                       │
00:01:51 #12088 [Verbose] > │     let v145 : UH2 = UH2_0(v139, v144)                                       │
00:01:51 #12089 [Verbose] > │     let v146 : UH2 = UH2_0(v138, v145)                                       │
00:01:51 #12090 [Verbose] > │     let v147 : US0 = US0_0                                                   │
00:01:51 #12091 [Verbose] > │     let v148 : string = "---"                                                │
00:01:51 #12092 [Verbose] > │     let v149 : UH2 = UH2_1                                                   │
00:01:51 #12093 [Verbose] > │     let v150 : UH2 = UH2_0(v148, v149)                                       │
00:01:51 #12094 [Verbose] > │     let v151 : UH2 = UH2_0(v148, v150)                                       │
00:01:51 #12095 [Verbose] > │     let v152 : UH2 = UH2_0(v148, v151)                                       │
00:01:51 #12096 [Verbose] > │     let v153 : UH2 = UH2_0(v148, v152)                                       │
00:01:51 #12097 [Verbose] > │     let v154 : US0 = US0_0                                                   │
00:01:51 #12098 [Verbose] > │     let v155 : UH4 = UH4_1                                                   │
00:01:51 #12099 [Verbose] > │     let v156 : UH4 = UH4_0(v153, v154, v155)                                 │
00:01:51 #12100 [Verbose] > │     let v157 : UH4 = UH4_0(v146, v147, v156)                                 │
00:01:51 #12101 [Verbose] > │     let v158 : (struct (UH2 * US0) []) = method16(v157)                      │
00:01:51 #12102 [Verbose] > │     let v159 : uint64 = System.Convert.ToUInt64 v158.Length                  │
00:01:51 #12103 [Verbose] > │     let v160 : uint64 = System.Convert.ToUInt64 v88.Length                   │
00:01:51 #12104 [Verbose] > │     let v161 : uint64 = v159 + v160                                          │
00:01:51 #12105 [Verbose] > │     let v162 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 *      │
00:01:51 #12106 [Verbose] > │ US0)> (System.Convert.ToInt32(v161))                                         │
00:01:51 #12107 [Verbose] > │     let v163 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:01:51 #12108 [Verbose] > │     while method4(v161, v163) do                                             │
00:01:51 #12109 [Verbose] > │         let v165 : uint64 = v163.l0                                          │
00:01:51 #12110 [Verbose] > │         let v166 : bool = v165 < v159                                        │
00:01:51 #12111 [Verbose] > │         let struct (v172 : UH2, v173 : US0) =                                │
00:01:51 #12112 [Verbose] > │             if v166 then                                                     │
00:01:51 #12113 [Verbose] > │                 let struct (v167 : UH2, v168 : US0) = v158.[int v165]        │
00:01:51 #12114 [Verbose] > │                 struct (v167, v168)                                          │
00:01:51 #12115 [Verbose] > │             else                                                             │
00:01:51 #12116 [Verbose] > │                 let v169 : uint64 = v165 - v159                              │
00:01:51 #12117 [Verbose] > │                 let struct (v170 : UH2, v171 : US0) = v88.[int v169]         │
00:01:51 #12118 [Verbose] > │                 struct (v170, v171)                                          │
00:01:51 #12119 [Verbose] > │         v162.[int v165] <- struct (v172, v173)                               │
00:01:51 #12120 [Verbose] > │         let v174 : uint64 = v165 + 1UL                                       │
00:01:51 #12121 [Verbose] > │         v163.l0 <- v174                                                      │
00:01:51 #12122 [Verbose] > │         ()                                                                   │
00:01:51 #12123 [Verbose] > │     let v175 : uint64 = System.Convert.ToUInt64 v162.Length                  │
00:01:51 #12124 [Verbose] > │     let v176 : ((string []) []) = Array.zeroCreate<(string [])>              │
00:01:51 #12125 [Verbose] > │ (System.Convert.ToInt32(v175))                                               │
00:01:51 #12126 [Verbose] > │     let v177 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:01:51 #12127 [Verbose] > │     while method4(v175, v177) do                                             │
00:01:51 #12128 [Verbose] > │         let v179 : uint64 = v177.l0                                          │
00:01:51 #12129 [Verbose] > │         let struct (v180 : UH2, v181 : US0) = v162.[int v179]                │
00:01:51 #12130 [Verbose] > │         let v182 : (string []) = method19(v180)                              │
00:01:51 #12131 [Verbose] > │         v176.[int v179] <- v182                                              │
00:01:51 #12132 [Verbose] > │         let v183 : uint64 = v179 + 1UL                                       │
00:01:51 #12133 [Verbose] > │         v177.l0 <- v183                                                      │
00:01:51 #12134 [Verbose] > │         ()                                                                   │
00:01:51 #12135 [Verbose] > │     let v184 : ((string []) []) = v176 |> Array.transpose                    │
00:01:51 #12136 [Verbose] > │     let v185 : uint64 = System.Convert.ToUInt64 v184.Length                  │
00:01:51 #12137 [Verbose] > │     let v186 : (int64 []) = Array.zeroCreate<int64>                          │
00:01:51 #12138 [Verbose] > │ (System.Convert.ToInt32(v185))                                               │
00:01:51 #12139 [Verbose] > │     let v187 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:01:51 #12140 [Verbose] > │     while method4(v185, v187) do                                             │
00:01:51 #12141 [Verbose] > │         let v189 : uint64 = v187.l0                                          │
00:01:51 #12142 [Verbose] > │         let v190 : (string []) = v184.[int v189]                             │
00:01:51 #12143 [Verbose] > │         let v191 : uint64 = System.Convert.ToUInt64 v190.Length              │
00:01:51 #12144 [Verbose] > │         let v192 : (int64 []) = Array.zeroCreate<int64>                      │
00:01:51 #12145 [Verbose] > │ (System.Convert.ToInt32(v191))                                               │
00:01:51 #12146 [Verbose] > │         let v193 : Mut0 = {l0 = 0UL} : Mut0                                  │
00:01:51 #12147 [Verbose] > │         while method4(v191, v193) do                                         │
00:01:51 #12148 [Verbose] > │             let v195 : uint64 = v193.l0                                      │
00:01:51 #12149 [Verbose] > │             let v196 : string = v190.[int v195]                              │
00:01:51 #12150 [Verbose] > │             let v197 : int64 = System.Convert.ToInt64 v196.Length            │
00:01:51 #12151 [Verbose] > │             v192.[int v195] <- v197                                          │
00:01:51 #12152 [Verbose] > │             let v198 : uint64 = v195 + 1UL                                   │
00:01:51 #12153 [Verbose] > │             v193.l0 <- v198                                                  │
00:01:51 #12154 [Verbose] > │             ()                                                               │
00:01:51 #12155 [Verbose] > │         let v199 : (int64 []) = v192 |> Array.sortDescending                 │
00:01:51 #12156 [Verbose] > │         let v200 : int64 option = v199 |> Array.tryItem 0                    │
00:01:51 #12157 [Verbose] > │         let v201 : (int64 -> US1) = closure4()                               │
00:01:51 #12158 [Verbose] > │         let v202 : US1 = US1_0                                               │
00:01:51 #12159 [Verbose] > │         let v203 : US1 = v200 |> Option.map v201 |> Option.defaultValue v202 │
00:01:51 #12160 [Verbose] > │         let v206 : int64 =                                                   │
00:01:51 #12161 [Verbose] > │             match v203 with                                                  │
00:01:51 #12162 [Verbose] > │             | US1_0 -> (* None *)                                            │
00:01:51 #12163 [Verbose] > │                 0L                                                           │
00:01:51 #12164 [Verbose] > │             | US1_1(v204) -> (* Some *)                                      │
00:01:51 #12165 [Verbose] > │                 v204                                                         │
00:01:51 #12166 [Verbose] > │         v186.[int v189] <- v206                                              │
00:01:51 #12167 [Verbose] > │         let v207 : uint64 = v189 + 1UL                                       │
00:01:51 #12168 [Verbose] > │         v187.l0 <- v207                                                      │
00:01:51 #12169 [Verbose] > │         ()                                                                   │
00:01:51 #12170 [Verbose] > │     let v208 : uint64 = System.Convert.ToUInt64 v186.Length                  │
00:01:51 #12171 [Verbose] > │     let v209 : UH5 = UH5_1                                                   │
00:01:51 #12172 [Verbose] > │     let v210 : Mut3 = {l0 = 0UL; l1 = v209; l2 = 0} : Mut3                   │
00:01:51 #12173 [Verbose] > │     while method22(v208, v210) do                                            │
00:01:51 #12174 [Verbose] > │         let v212 : uint64 = v210.l0                                          │
00:01:51 #12175 [Verbose] > │         let struct (v213 : UH5, v214 : int32) = v210.l1, v210.l2             │
00:01:51 #12176 [Verbose] > │         let v215 : int64 = v186.[int v212]                                   │
00:01:51 #12177 [Verbose] > │         let v216 : int32 = v214 + 1                                          │
00:01:51 #12178 [Verbose] > │         let v217 : uint64 = v212 + 1UL                                       │
00:01:51 #12179 [Verbose] > │         let v218 : UH5 = UH5_0(v214, v215, v213)                             │
00:01:51 #12180 [Verbose] > │         v210.l0 <- v217                                                      │
00:01:51 #12181 [Verbose] > │         v210.l1 <- v218                                                      │
00:01:51 #12182 [Verbose] > │         v210.l2 <- v216                                                      │
00:01:51 #12183 [Verbose] > │         ()                                                                   │
00:01:51 #12184 [Verbose] > │     let struct (v219 : UH5, v220 : int32) = v210.l1, v210.l2                 │
00:01:51 #12185 [Verbose] > │     let v221 : UH5 = UH5_1                                                   │
00:01:51 #12186 [Verbose] > │     let v222 : UH5 = method23(v219, v221)                                    │
00:01:51 #12187 [Verbose] > │     let v223 : (struct (int32 * int64) []) = method24(v222)                  │
00:01:51 #12188 [Verbose] > │     let v224 : Map<int32, int64> = v223 |> Array.map (fun (struct (a, b)) -> │
00:01:51 #12189 [Verbose] > │ a, b) |> Map.ofArray                                                         │
00:01:51 #12190 [Verbose] > │     let v225 : (struct ((string []) * US0) []) = Array.zeroCreate<struct     │
00:01:51 #12191 [Verbose] > │ ((string []) * US0)> (System.Convert.ToInt32(v175))                          │
00:01:51 #12192 [Verbose] > │     let v226 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:01:51 #12193 [Verbose] > │     while method4(v175, v226) do                                             │
00:01:51 #12194 [Verbose] > │         let v228 : uint64 = v226.l0                                          │
00:01:51 #12195 [Verbose] > │         let struct (v229 : UH2, v230 : US0) = v162.[int v228]                │
00:01:51 #12196 [Verbose] > │         let v231 : UH6 = UH6_1                                               │
00:01:51 #12197 [Verbose] > │         let v232 : int32 = 0                                                 │
00:01:51 #12198 [Verbose] > │         let struct (v233 : UH6, v234 : int32) = method27(v229, v231, v232)   │
00:01:51 #12199 [Verbose] > │         let v235 : UH6 = UH6_1                                               │
00:01:51 #12200 [Verbose] > │         let v236 : UH6 = method28(v233, v235)                                │
00:01:51 #12201 [Verbose] > │         let v237 : UH2 = UH2_1                                               │
00:01:51 #12202 [Verbose] > │         let v238 : UH2 = method29(v224, v236, v237)                          │
00:01:51 #12203 [Verbose] > │         let v239 : (string []) = method30(v238)                              │
00:01:51 #12204 [Verbose] > │         v225.[int v228] <- struct (v239, v230)                               │
00:01:51 #12205 [Verbose] > │         let v240 : uint64 = v228 + 1UL                                       │
00:01:51 #12206 [Verbose] > │         v226.l0 <- v240                                                      │
00:01:51 #12207 [Verbose] > │         ()                                                                   │
00:01:51 #12208 [Verbose] > │     System.Console.WriteLine v2                                              │
00:01:51 #12209 [Verbose] > │     let v241 : uint64 = System.Convert.ToUInt64 v225.Length                  │
00:01:51 #12210 [Verbose] > │     let v242 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:01:51 #12211 [Verbose] > │     while method4(v241, v242) do                                             │
00:01:51 #12212 [Verbose] > │         let v244 : uint64 = v242.l0                                          │
00:01:51 #12213 [Verbose] > │         let struct (v245 : (string []), v246 : US0) = v225.[int v244]        │
00:01:51 #12214 [Verbose] > │         match v246 with                                                      │
00:01:51 #12215 [Verbose] > │         | US0_0 -> (* None *)                                                │
00:01:51 #12216 [Verbose] > │             let mutable result = None                                        │
00:01:51 #12217 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM                                 │
00:01:51 #12218 [Verbose] > │             ()                                                               │
00:01:51 #12219 [Verbose] > │             #endif                                                           │
00:01:51 #12220 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │
00:01:51 #12221 [Verbose] > │             ()                                                               │
00:01:51 #12222 [Verbose] > │             #endif                                                           │
00:01:51 #12223 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │
00:01:51 #12224 [Verbose] > │             System.Console.ResetColor ()                                     │
00:01:51 #12225 [Verbose] > │             ()                                                               │
00:01:51 #12226 [Verbose] > │             #endif                                                           │
00:01:51 #12227 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │
00:01:51 #12228 [Verbose] > │             System.Console.ResetColor ()                                     │
00:01:51 #12229 [Verbose] > │             ()                                                               │
00:01:51 #12230 [Verbose] > │             #endif                                                           │
00:01:51 #12231 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │
00:01:51 #12232 [Verbose] > │             System.Console.ResetColor ()                                     │
00:01:51 #12233 [Verbose] > │             ()                                                               │
00:01:51 #12234 [Verbose] > │             #endif                                                           │
00:01:51 #12235 [Verbose] > │             |> fun x -> result <- Some x                                     │
00:01:51 #12236 [Verbose] > │             result |> Option.get                                             │
00:01:51 #12237 [Verbose] > │             ()                                                               │
00:01:51 #12238 [Verbose] > │         | US0_1(v247) -> (* Some *)                                          │
00:01:51 #12239 [Verbose] > │             let mutable result = None                                        │
00:01:51 #12240 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM                                 │
00:01:51 #12241 [Verbose] > │             ()                                                               │
00:01:51 #12242 [Verbose] > │             #endif                                                           │
00:01:51 #12243 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │
00:01:51 #12244 [Verbose] > │             ()                                                               │
00:01:51 #12245 [Verbose] > │             #endif                                                           │
00:01:51 #12246 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │
00:01:51 #12247 [Verbose] > │             System.Console.ForegroundColor <- v247                           │
00:01:51 #12248 [Verbose] > │             ()                                                               │
00:01:51 #12249 [Verbose] > │             #endif                                                           │
00:01:51 #12250 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │
00:01:51 #12251 [Verbose] > │             System.Console.ForegroundColor <- v247                           │
00:01:51 #12252 [Verbose] > │             ()                                                               │
00:01:51 #12253 [Verbose] > │             #endif                                                           │
00:01:51 #12254 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │
00:01:51 #12255 [Verbose] > │             System.Console.ForegroundColor <- v247                           │
00:01:51 #12256 [Verbose] > │             ()                                                               │
00:01:51 #12257 [Verbose] > │             #endif                                                           │
00:01:51 #12258 [Verbose] > │             |> fun x -> result <- Some x                                     │
00:01:51 #12259 [Verbose] > │             result |> Option.get                                             │
00:01:51 #12260 [Verbose] > │             ()                                                               │
00:01:51 #12261 [Verbose] > │         let v248 : string = "\t| "                                           │
00:01:51 #12262 [Verbose] > │         let v249 : string = System.String.Join (v248, v245)                  │
00:01:51 #12263 [Verbose] > │         System.Console.WriteLine v249                                        │
00:01:51 #12264 [Verbose] > │         let mutable result = None                                            │
00:01:51 #12265 [Verbose] > │         #if FABLE_COMPILER_RUST && !WASM                                     │
00:01:51 #12266 [Verbose] > │         ()                                                                   │
00:01:51 #12267 [Verbose] > │         #endif                                                               │
00:01:51 #12268 [Verbose] > │         #if FABLE_COMPILER_RUST && WASM                                      │
00:01:51 #12269 [Verbose] > │         ()                                                                   │
00:01:51 #12270 [Verbose] > │         #endif                                                               │
00:01:51 #12271 [Verbose] > │         #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                 │
00:01:51 #12272 [Verbose] > │         System.Console.ResetColor ()                                         │
00:01:51 #12273 [Verbose] > │         ()                                                                   │
00:01:51 #12274 [Verbose] > │         #endif                                                               │
00:01:51 #12275 [Verbose] > │         #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                  │
00:01:51 #12276 [Verbose] > │         System.Console.ResetColor ()                                         │
00:01:51 #12277 [Verbose] > │         ()                                                                   │
00:01:51 #12278 [Verbose] > │         #endif                                                               │
00:01:51 #12279 [Verbose] > │         #if !FABLE_COMPILER_RUST && WASM                                     │
00:01:51 #12280 [Verbose] > │         System.Console.ResetColor ()                                         │
00:01:51 #12281 [Verbose] > │         ()                                                                   │
00:01:51 #12282 [Verbose] > │         #endif                                                               │
00:01:51 #12283 [Verbose] > │         |> fun x -> result <- Some x                                         │
00:01:51 #12284 [Verbose] > │         result |> Option.get                                                 │
00:01:51 #12285 [Verbose] > │         let v250 : uint64 = v244 + 1UL                                       │
00:01:51 #12286 [Verbose] > │         v242.l0 <- v250                                                      │
00:01:51 #12287 [Verbose] > │         ()                                                                   │
00:01:51 #12288 [Verbose] > │     let v251 : ((float []) []) = Array.zeroCreate<(float [])>                │
00:01:51 #12289 [Verbose] > │ (System.Convert.ToInt32(v87))                                                │
00:01:51 #12290 [Verbose] > │     let v252 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:01:51 #12291 [Verbose] > │     while method4(v87, v252) do                                              │
00:01:51 #12292 [Verbose] > │         let v254 : uint64 = v252.l0                                          │
00:01:51 #12293 [Verbose] > │         let struct (v255 : string, v256 : string, v257 : string, v258 :      │
00:01:51 #12294 [Verbose] > │ (int64 [])) = v16.[int v254]                                                 │
00:01:51 #12295 [Verbose] > │         let v259 : (int64 -> float) = float                                  │
00:01:51 #12296 [Verbose] > │         let v260 : uint64 = System.Convert.ToUInt64 v258.Length              │
00:01:51 #12297 [Verbose] > │         let v261 : (float []) = Array.zeroCreate<float>                      │
00:01:51 #12298 [Verbose] > │ (System.Convert.ToInt32(v260))                                               │
00:01:51 #12299 [Verbose] > │         let v262 : Mut0 = {l0 = 0UL} : Mut0                                  │
00:01:51 #12300 [Verbose] > │         while method4(v260, v262) do                                         │
00:01:51 #12301 [Verbose] > │             let v264 : uint64 = v262.l0                                      │
00:01:51 #12302 [Verbose] > │             let v265 : int64 = v258.[int v264]                               │
00:01:51 #12303 [Verbose] > │             let v266 : float = v259 v265                                     │
00:01:51 #12304 [Verbose] > │             v261.[int v264] <- v266                                          │
00:01:51 #12305 [Verbose] > │             let v267 : uint64 = v264 + 1UL                                   │
00:01:51 #12306 [Verbose] > │             v262.l0 <- v267                                                  │
00:01:51 #12307 [Verbose] > │             ()                                                               │
00:01:51 #12308 [Verbose] > │         v251.[int v254] <- v261                                              │
00:01:51 #12309 [Verbose] > │         let v268 : uint64 = v254 + 1UL                                       │
00:01:51 #12310 [Verbose] > │         v252.l0 <- v268                                                      │
00:01:51 #12311 [Verbose] > │         ()                                                                   │
00:01:51 #12312 [Verbose] > │     let v269 : ((float []) []) = v251 |> Array.transpose                     │
00:01:51 #12313 [Verbose] > │     let v270 : uint64 = System.Convert.ToUInt64 v269.Length                  │
00:01:51 #12314 [Verbose] > │     let v271 : (float []) = Array.zeroCreate<float>                          │
00:01:51 #12315 [Verbose] > │ (System.Convert.ToInt32(v270))                                               │
00:01:51 #12316 [Verbose] > │     let v272 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:01:51 #12317 [Verbose] > │     while method4(v270, v272) do                                             │
00:01:51 #12318 [Verbose] > │         let v274 : uint64 = v272.l0                                          │
00:01:51 #12319 [Verbose] > │         let v275 : (float []) = v269.[int v274]                              │
00:01:51 #12320 [Verbose] > │         let v276 : float = v275 |> Array.average                             │
00:01:51 #12321 [Verbose] > │         v271.[int v274] <- v276                                              │
00:01:51 #12322 [Verbose] > │         let v277 : uint64 = v274 + 1UL                                       │
00:01:51 #12323 [Verbose] > │         v272.l0 <- v277                                                      │
00:01:51 #12324 [Verbose] > │         ()                                                                   │
00:01:51 #12325 [Verbose] > │     let v278 : (float -> int64) = int64                                      │
00:01:51 #12326 [Verbose] > │     let v279 : uint64 = System.Convert.ToUInt64 v271.Length                  │
00:01:51 #12327 [Verbose] > │     let v280 : (int64 []) = Array.zeroCreate<int64>                          │
00:01:51 #12328 [Verbose] > │ (System.Convert.ToInt32(v279))                                               │
00:01:51 #12329 [Verbose] > │     let v281 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:01:51 #12330 [Verbose] > │     while method4(v279, v281) do                                             │
00:01:51 #12331 [Verbose] > │         let v283 : uint64 = v281.l0                                          │
00:01:51 #12332 [Verbose] > │         let v284 : float = v271.[int v283]                                   │
00:01:51 #12333 [Verbose] > │         let v285 : int64 = v278 v284                                         │
00:01:51 #12334 [Verbose] > │         v280.[int v283] <- v285                                              │
00:01:51 #12335 [Verbose] > │         let v286 : uint64 = v283 + 1UL                                       │
00:01:51 #12336 [Verbose] > │         v281.l0 <- v286                                                      │
00:01:51 #12337 [Verbose] > │         ()                                                                   │
00:01:51 #12338 [Verbose] > │     let v287 : uint64 = System.Convert.ToUInt64 v280.Length                  │
00:01:51 #12339 [Verbose] > │     let v288 : UH5 = UH5_1                                                   │
00:01:51 #12340 [Verbose] > │     let v289 : Mut3 = {l0 = 0UL; l1 = v288; l2 = 0} : Mut3                   │
00:01:51 #12341 [Verbose] > │     while method22(v287, v289) do                                            │
00:01:51 #12342 [Verbose] > │         let v291 : uint64 = v289.l0                                          │
00:01:51 #12343 [Verbose] > │         let struct (v292 : UH5, v293 : int32) = v289.l1, v289.l2             │
00:01:51 #12344 [Verbose] > │         let v294 : int64 = v280.[int v291]                                   │
00:01:51 #12345 [Verbose] > │         let v295 : int32 = v293 + 1                                          │
00:01:51 #12346 [Verbose] > │         let v296 : uint64 = v291 + 1UL                                       │
00:01:51 #12347 [Verbose] > │         let v297 : UH5 = UH5_0(v293, v294, v292)                             │
00:01:51 #12348 [Verbose] > │         v289.l0 <- v296                                                      │
00:01:51 #12349 [Verbose] > │         v289.l1 <- v297                                                      │
00:01:51 #12350 [Verbose] > │         v289.l2 <- v295                                                      │
00:01:51 #12351 [Verbose] > │         ()                                                                   │
00:01:51 #12352 [Verbose] > │     let struct (v298 : UH5, v299 : int32) = v289.l1, v289.l2                 │
00:01:51 #12353 [Verbose] > │     let v300 : UH5 = UH5_1                                                   │
00:01:51 #12354 [Verbose] > │     let v301 : UH5 = method23(v298, v300)                                    │
00:01:51 #12355 [Verbose] > │     let v302 : (struct (int32 * int64) []) = method33(v301)                  │
00:01:51 #12356 [Verbose] > │     System.Console.WriteLine v2                                              │
00:01:51 #12357 [Verbose] > │     let v303 : string = "Average Ranking  "                                  │
00:01:51 #12358 [Verbose] > │     System.Console.WriteLine v303                                            │
00:01:51 #12359 [Verbose] > │     let v304 : (struct (int32 * int64) -> int64) = closure5()                │
00:01:51 #12360 [Verbose] > │     let v305 : (struct (int32 * int64) []) = v302 |> Array.sortBy v304       │
00:01:51 #12361 [Verbose] > │     let v306 : uint64 = System.Convert.ToUInt64 v305.Length                  │
00:01:51 #12362 [Verbose] > │     let v307 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:01:51 #12363 [Verbose] > │     while method4(v306, v307) do                                             │
00:01:51 #12364 [Verbose] > │         let v309 : uint64 = v307.l0                                          │
00:01:51 #12365 [Verbose] > │         let struct (v310 : int32, v311 : int64) = v305.[int v309]            │
00:01:51 #12366 [Verbose] > │         let v312 : string = $"Test case %d{v310 + 1}. Average Time: %A{v311} │
00:01:51 #12367 [Verbose] > │ "                                                                            │
00:01:51 #12368 [Verbose] > │         System.Console.WriteLine v312                                        │
00:01:51 #12369 [Verbose] > │         let v313 : uint64 = v309 + 1UL                                       │
00:01:51 #12370 [Verbose] > │         v307.l0 <- v313                                                      │
00:01:51 #12371 [Verbose] > │         ()                                                                   │
00:01:51 #12372 [Verbose] > │     ()                                                                       │
00:01:51 #12373 [Verbose] > │ method0()                                                                    │
00:01:51 #12374 [Verbose] > │                                                                              │
00:01:51 #12375 [Verbose] > │                                                                              │
00:01:51 #12376 [Verbose] > │                                                                              │
00:01:51 #12377 [Verbose] > │ Test: v0                                                                     │
00:01:51 #12378 [Verbose] > │                                                                              │
00:01:51 #12379 [Verbose] > │ Solution: 0.0                                                                │
00:01:51 #12380 [Verbose] > │ Test case 1. A. Time: 26                                                     │
00:01:51 #12381 [Verbose] > │                                                                              │
00:01:51 #12382 [Verbose] > │ Solution: 2.0                                                                │
00:01:51 #12383 [Verbose] > │ Test case 1. A. Time: 13                                                     │
00:01:51 #12384 [Verbose] > │                                                                              │
00:01:51 #12385 [Verbose] > │ Solution: 5.0                                                                │
00:01:51 #12386 [Verbose] > │ Test case 1. A. Time: 17                                                     │
00:01:51 #12387 [Verbose] > │                                                                              │
00:01:51 #12388 [Verbose] > │ Input	| Expected	| Result	| Best                                                   │
00:01:51 #12389 [Verbose] > │ ---  	| ---     	| ---   	| ---                                                    │
00:01:51 #12390 [Verbose] > │ 0.0  	| 1.0     	| 1.0   	| struct (1L, 26L)                                       │
00:01:51 #12391 [Verbose] > │ 2.0  	| 3.0     	| 3.0   	| struct (1L, 13L)                                       │
00:01:51 #12392 [Verbose] > │ 5.0  	| 6.0     	| 6.0   	| struct (1L, 17L)                                       │
00:01:51 #12393 [Verbose] > │                                                                              │
00:01:51 #12394 [Verbose] > │ Average Ranking                                                              │
00:01:51 #12395 [Verbose] > │ Test case 1. Average Time: 18L                                               │
00:01:51 #12396 [Verbose] > │                                                                              │
00:01:51 #12397 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:51 #12398 [Verbose] > [NbConvertApp] Writing 410595 bytes to sm'.dib.html
00:01:51 #12399 [Verbose] > /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:01:51 #12400 [Verbose] >   return _pygments_highlight(
00:01:51 #12401 [Debug] executeAsync / exitCode: 0 / output.Length: 124839
00:01:51 #12402 [Debug] main / executeCommand / exitCode: 0
00:01:51 #12403 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 seq.dib""
  WorkingDirectory = None
  CancellationToken = Some System.Threading.CancellationToken
  OnLine = None }
00:01:51 #12404 [Verbose] > [NbConvertApp] Converting notebook benchmark.dib.ipynb to html
00:01:51 #12405 [Verbose] > /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:01:51 #12406 [Verbose] >   validate(nb)
00:01:52 #12407 [Verbose] > [NbConvertApp] Writing 360505 bytes to stream.dib.html
00:01:52 #12408 [Debug] executeAsync / exitCode: 0 / output.Length: 84138
00:01:52 #12409 [Debug] main / executeCommand / exitCode: 0
00:01:52 #12410 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 util.dib""
  WorkingDirectory = None
  CancellationToken = Some System.Threading.CancellationToken
  OnLine = None }
00:01:52 #12411 [Verbose] > /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:01:52 #12412 [Verbose] >   return _pygments_highlight(
00:01:53 #12413 [Verbose] > [NbConvertApp] Writing 412408 bytes to benchmark.dib.html
00:01:53 #12414 [Debug] executeAsync / exitCode: 0 / output.Length: 303155
00:01:53 #12415 [Debug] main / executeCommand / exitCode: 0
00:01:53 #12416 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 file_system.dib""
  WorkingDirectory = None
  CancellationToken = Some System.Threading.CancellationToken
  OnLine = None }
00:01:54 #12417 [Verbose] >
00:01:54 #12418 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:54 #12419 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:54 #12420 [Verbose] > │ # seq                                                                        │
00:01:54 #12421 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:54 #12422 [Verbose] >
00:01:54 #12423 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:54 #12424 [Verbose] > // // test
00:01:54 #12425 [Verbose] >
00:01:54 #12426 [Verbose] > open testing
00:01:55 #12427 [Verbose] >
00:01:55 #12428 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:55 #12429 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:55 #12430 [Verbose] > │ # util                                                                       │
00:01:55 #12431 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:55 #12432 [Verbose] >
00:01:55 #12433 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:55 #12434 [Verbose] > // // test
00:01:55 #12435 [Verbose] >
00:01:55 #12436 [Verbose] > open testing
00:01:56 #12437 [Verbose] >
00:01:56 #12438 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:56 #12439 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:56 #12440 [Verbose] > │ # file_system                                                                │
00:01:56 #12441 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:56 #12442 [Verbose] >
00:01:56 #12443 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:56 #12444 [Verbose] > open rust_operators
00:01:56 #12445 [Verbose] > open sm'_operators
00:01:56 #12446 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-2520-2092-2b9beba39df0/main.spi
00:01:57 #12447 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-2577-7795-7c96356c4853/main.spi
00:01:57 #12448 [Verbose] >
00:01:57 #12449 [Verbose] > ╭─[ 3.36s - stdout ]───────────────────────────────────────────────────────────╮
00:01:57 #12450 [Verbose] > │ ()                                                                           │
00:01:57 #12451 [Verbose] > │                                                                              │
00:01:57 #12452 [Verbose] > │                                                                              │
00:01:57 #12453 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:57 #12454 [Verbose] >
00:01:57 #12455 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:57 #12456 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:57 #12457 [Verbose] > │ ## seq'                                                                      │
00:01:57 #12458 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:57 #12459 [Verbose] >
00:01:57 #12460 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:57 #12461 [Verbose] > type seq' t = $"`t seq"
00:01:57 #12462 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-2666-6646-6a06ed574d7e/main.spi
00:01:57 #12463 [Verbose] >
00:01:57 #12464 [Verbose] > ╭─[ 153.06ms - stdout ]────────────────────────────────────────────────────────╮
00:01:57 #12465 [Verbose] > │ ()                                                                           │
00:01:57 #12466 [Verbose] > │                                                                              │
00:01:57 #12467 [Verbose] > │                                                                              │
00:01:57 #12468 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:57 #12469 [Verbose] >
00:01:57 #12470 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:57 #12471 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:57 #12472 [Verbose] > │ ## of_array'                                                                 │
00:01:57 #12473 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:57 #12474 [Verbose] >
00:01:57 #12475 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:57 #12476 [Verbose] > inl of_array' forall dim t. (items : a dim t) : seq' t =
00:01:57 #12477 [Verbose] >     $'seq { for i = 0 to !items.Length - 1 do yield !items.[[i]] }'
00:01:57 #12478 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-2681-8176-8b6cc5ce3be2/main.spi
00:01:57 #12479 [Verbose] >
00:01:57 #12480 [Verbose] > ╭─[ 138.19ms - stdout ]────────────────────────────────────────────────────────╮
00:01:57 #12481 [Verbose] > │ ()                                                                           │
00:01:57 #12482 [Verbose] > │                                                                              │
00:01:57 #12483 [Verbose] > │                                                                              │
00:01:57 #12484 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:57 #12485 [Verbose] >
00:01:57 #12486 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:57 #12487 [Verbose] > // // test
00:01:57 #12488 [Verbose] >
00:01:57 #12489 [Verbose] > (a ;[["a"; "b"]] : _ i32 _)
00:01:57 #12490 [Verbose] > |> of_array'
00:01:57 #12491 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-2695-9535-94fd743fe70b/main.spi
00:01:58 #12492 [Verbose] >
00:01:58 #12493 [Verbose] > ╭─[ 3.06s - stdout ]───────────────────────────────────────────────────────────╮
00:01:58 #12494 [Verbose] > │ ()                                                                           │
00:01:58 #12495 [Verbose] > │                                                                              │
00:01:58 #12496 [Verbose] > │                                                                              │
00:01:58 #12497 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:58 #12498 [Verbose] >
00:01:58 #12499 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:58 #12500 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:58 #12501 [Verbose] > │ ## ski                                                                       │
00:01:58 #12502 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:58 #12503 [Verbose] >
00:01:58 #12504 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:58 #12505 [Verbose] > union rec ski =
00:01:58 #12506 [Verbose] >     | I
00:01:58 #12507 [Verbose] >     | K
00:01:58 #12508 [Verbose] >     | S
00:01:58 #12509 [Verbose] >     | App : ski * ski
00:01:58 #12510 [Verbose] >
00:01:58 #12511 [Verbose] > inl rec eval ski =
00:01:58 #12512 [Verbose] >     match ski with
00:01:58 #12513 [Verbose] >     | App (App (K, x), y) => eval x
00:01:58 #12514 [Verbose] >     | App (App (App (S, x), y), z) => eval (App (App (x, z), App (y, z)))
00:01:58 #12515 [Verbose] >     | App (I, x) => eval x
00:01:58 #12516 [Verbose] >     | App (K, x) => App (K, eval x)
00:01:58 #12517 [Verbose] >     | App (f, x) => eval (App (eval f, x))
00:01:58 #12518 [Verbose] >     | _ => ski
00:01:58 #12519 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-2735-3541-3b887544ed59/main.spi
00:01:58 #12520 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-2701-0117-0d52c9ae234e/main.spi
00:01:58 #12521 [Verbose] >
00:01:58 #12522 [Verbose] > ╭─[ 138.91ms - stdout ]────────────────────────────────────────────────────────╮
00:01:58 #12523 [Verbose] > │ ()                                                                           │
00:01:58 #12524 [Verbose] > │                                                                              │
00:01:58 #12525 [Verbose] > │                                                                              │
00:01:58 #12526 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:58 #12527 [Verbose] >
00:01:58 #12528 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:58 #12529 [Verbose] > // // test
00:01:58 #12530 [Verbose] >
00:01:58 #12531 [Verbose] > eval I
00:01:58 #12532 [Verbose] > |> _assert_eq I
00:01:58 #12533 [Verbose] >
00:01:58 #12534 [Verbose] > eval (App (I, I))
00:01:58 #12535 [Verbose] > |> _assert_eq I
00:01:58 #12536 [Verbose] >
00:01:58 #12537 [Verbose] > eval (App (I, App (I, I)))
00:01:58 #12538 [Verbose] > |> _assert_eq I
00:01:58 #12539 [Verbose] >
00:01:58 #12540 [Verbose] > eval (App (App (I, I), I))
00:01:58 #12541 [Verbose] > |> _assert_eq I
00:01:58 #12542 [Verbose] >
00:01:58 #12543 [Verbose] > eval (App (App (App (I, I), I), I))
00:01:58 #12544 [Verbose] > |> _assert_eq I
00:01:58 #12545 [Verbose] >
00:01:58 #12546 [Verbose] > eval K
00:01:58 #12547 [Verbose] > |> _assert_eq K
00:01:58 #12548 [Verbose] >
00:01:58 #12549 [Verbose] > eval (App (K, I))
00:01:58 #12550 [Verbose] > |> _assert_eq (App (K, I))
00:01:58 #12551 [Verbose] >
00:01:58 #12552 [Verbose] > eval (App (K, K))
00:01:58 #12553 [Verbose] > |> _assert_eq (App (K, K))
00:01:58 #12554 [Verbose] >
00:01:58 #12555 [Verbose] > eval (App (App (K, I), K))
00:01:58 #12556 [Verbose] > |> _assert_eq I
00:01:58 #12557 [Verbose] >
00:01:58 #12558 [Verbose] > eval (App (App (K, K), I))
00:01:58 #12559 [Verbose] > |> _assert_eq K
00:01:58 #12560 [Verbose] >
00:01:58 #12561 [Verbose] > eval (App (App (App (App (K, K), I), S), K))
00:01:58 #12562 [Verbose] > |> _assert_eq S
00:01:58 #12563 [Verbose] >
00:01:58 #12564 [Verbose] > eval S
00:01:58 #12565 [Verbose] > |> _assert_eq S
00:01:58 #12566 [Verbose] >
00:01:58 #12567 [Verbose] > eval (App (App (App (S, I), I), I))
00:01:58 #12568 [Verbose] > |> _assert_eq I
00:01:58 #12569 [Verbose] >
00:01:58 #12570 [Verbose] > eval (App (App (App (S, K), K), I))
00:01:58 #12571 [Verbose] > |> _assert_eq I
00:01:58 #12572 [Verbose] >
00:01:58 #12573 [Verbose] > eval (App (App (App (S, K), I), (App (App (K, I), S))))
00:01:58 #12574 [Verbose] > |> _assert_eq I
00:01:58 #12575 [Verbose] >
00:01:58 #12576 [Verbose] > eval (App (App (K, S), App (I, App (App (App (S, K), S), I))))
00:01:58 #12577 [Verbose] > |> _assert_eq S
00:01:58 #12578 [Verbose] >
00:01:58 #12579 [Verbose] > eval (App (App (App (S, K), I), K))
00:01:58 #12580 [Verbose] > |> _assert_eq K
00:01:58 #12581 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-2748-4872-4b6f314cd4af/main.spi
00:01:58 #12582 [Verbose] >
00:01:58 #12583 [Verbose] > ╭─[ 925.26ms - return value ]──────────────────────────────────────────────────╮
00:01:58 #12584 [Verbose] > │ <details open="open" class="dni-treeview"><summary><span                     │
00:01:58 #12585 [Verbose] > │ class="dni-code-hint"><code>[ a, b                                           │
00:01:58 #12586 [Verbose] > │ ]</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td> │
00:01:58 #12587 [Verbose] > │ CheckClose</td><td><div                                                      │
00:01:58 #12588 [Verbose] > │ class="dni-plaintext"><pre>False</pre></div></td></tr><tr><td>LastGenerated< │
00:01:58 #12589 [Verbose] > │ /td><td><div                                                                 │
00:01:58 #12590 [Verbose] > │ class="dni-plaintext"><pre>&lt;null&gt;</pre></div></td></tr><tr><td>v2</td> │
00:01:58 #12591 [Verbose] > │ <td><div class="dni-plaintext"><pre>[ a, b                                   │
00:01:58 #12592 [Verbose] > │ ]</pre></div></td></tr><tr><td>enum</td><td><div                             │
00:01:58 #12593 [Verbose] > │ class="dni-plaintext"><pre>&lt;null&gt;</pre></div></td></tr><tr><td>pc</td> │
00:01:58 #12594 [Verbose] > │ <td><div                                                                     │
00:01:58 #12595 [Verbose] > │ class="dni-plaintext"><pre>0</pre></div></td></tr><tr><td>current</td><td><d │
00:01:58 #12596 [Verbose] > │ iv                                                                           │
00:01:58 #12597 [Verbose] > │ class="dni-plaintext"><pre>&lt;null&gt;</pre></div></td></tr><tr><td><i>(val │
00:01:58 #12598 [Verbose] > │ ues)</i></td><td><div class="dni-plaintext"><pre>[ a, b ]</pr...             │
00:01:58 #12599 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:58 #12600 [Verbose] >
00:01:58 #12601 [Verbose] > ╭─[ 934.62ms - stdout ]────────────────────────────────────────────────────────╮
00:01:58 #12602 [Verbose] > │ let rec method1 (v0 : (string [])) : (string []) =                           │
00:01:58 #12603 [Verbose] > │     v0                                                                       │
00:01:58 #12604 [Verbose] > │ and method0 () : string seq =                                                │
00:01:58 #12605 [Verbose] > │     let v0 : string = "a"                                                    │
00:01:58 #12606 [Verbose] > │     let v1 : string = "b"                                                    │
00:01:58 #12607 [Verbose] > │     let v2 : (string []) = [|v0; v1|]                                        │
00:01:58 #12608 [Verbose] > │     let v3 : (string []) = method1(v2)                                       │
00:01:58 #12609 [Verbose] > │     let v4 : string seq = seq { for i = 0 to v3.Length - 1 do yield v3.[i] } │
00:01:58 #12610 [Verbose] > │     v4                                                                       │
00:01:58 #12611 [Verbose] > │ method0()                                                                    │
00:01:58 #12612 [Verbose] > │                                                                              │
00:01:58 #12613 [Verbose] > │                                                                              │
00:01:58 #12614 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:58 #12615 [Verbose] >
00:01:58 #12616 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:58 #12617 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:58 #12618 [Verbose] > │ ## to_array'                                                                 │
00:01:58 #12619 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:58 #12620 [Verbose] >
00:01:58 #12621 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:58 #12622 [Verbose] > inl to_array' forall dim t. (items : seq' t) : a dim t =
00:01:58 #12623 [Verbose] >     $'!items |> Seq.toArray'
00:01:58 #12624 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-2789-8910-88024f948b6c/main.spi
00:01:58 #12625 [Verbose] >
00:01:58 #12626 [Verbose] > ╭─[ 113.93ms - stdout ]────────────────────────────────────────────────────────╮
00:01:58 #12627 [Verbose] > │ ()                                                                           │
00:01:58 #12628 [Verbose] > │                                                                              │
00:01:58 #12629 [Verbose] > │                                                                              │
00:01:58 #12630 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:58 #12631 [Verbose] >
00:01:58 #12632 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:58 #12633 [Verbose] > // // test
00:01:58 #12634 [Verbose] >
00:01:58 #12635 [Verbose] > (a ;[["a"; "b"]] : _ i32 _)
00:01:58 #12636 [Verbose] > |> of_array'
00:01:58 #12637 [Verbose] > |> to_array'
00:01:58 #12638 [Verbose] > |> _assert_eq (a ;[["a"; "b"]] : _ i32 _)
00:01:58 #12639 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-2800-0056-03d1ae717d1b/main.spi
00:01:59 #12640 [Verbose] >
00:01:59 #12641 [Verbose] > ╭─[ 365.45ms - stdout ]────────────────────────────────────────────────────────╮
00:01:59 #12642 [Verbose] > │ let rec method1 (v0 : (string [])) : (string []) =                           │
00:01:59 #12643 [Verbose] > │     v0                                                                       │
00:01:59 #12644 [Verbose] > │ and method2 (v0 : (string []), v1 : (string []), v2 : int32) : bool =        │
00:01:59 #12645 [Verbose] > │     let v3 : int32 = v0.Length                                               │
00:01:59 #12646 [Verbose] > │     let v4 : bool = v2 < v3                                                  │
00:01:59 #12647 [Verbose] > │     if v4 then                                                               │
00:01:59 #12648 [Verbose] > │         let v5 : string = v0.[int v2]                                        │
00:01:59 #12649 [Verbose] > │         let v6 : string = v1.[int v2]                                        │
00:01:59 #12650 [Verbose] > │         let v7 : bool = v5 = v6                                              │
00:01:59 #12651 [Verbose] > │         if v7 then                                                           │
00:01:59 #12652 [Verbose] > │             let v8 : int32 = v2 + 1                                          │
00:01:59 #12653 [Verbose] > │             method2(v0, v1, v8)                                              │
00:01:59 #12654 [Verbose] > │         else                                                                 │
00:01:59 #12655 [Verbose] > │             false                                                            │
00:01:59 #12656 [Verbose] > │     else                                                                     │
00:01:59 #12657 [Verbose] > │         true                                                                 │
00:01:59 #12658 [Verbose] > │ and method3 (v0 : bool) : bool =                                             │
00:01:59 #12659 [Verbose] > │     v0                                                                       │
00:01:59 #12660 [Verbose] > │ and method0 () : unit =                                                      │
00:01:59 #12661 [Verbose] > │     let v0 : string = "a"                                                    │
00:01:59 #12662 [Verbose] > │     let v1 : string = "b"                                                    │
00:01:59 #12663 [Verbose] > │     let v2 : (string []) = [|v0; v1|]                                        │
00:01:59 #12664 [Verbose] > │     let v3 : (string []) = method1(v2)                                       │
00:01:59 #12665 [Verbose] > │     let v4 : string seq = seq { for i = 0 to v3.Length - 1 do yield v3.[i] } │
00:01:59 #12666 [Verbose] > │     let v5 : (string []) = v4 |> Seq.toArray                                 │
00:01:59 #12667 [Verbose] > │     let v6 : (string []) = [|v0; v1|]                                        │
00:01:59 #12668 [Verbose] > │     let v7 : (string []) = method1(v6)                                       │
00:01:59 #12669 [Verbose] > │     let v8 : string = $"%A{v5}"                                              │
00:01:59 #12670 [Verbose] > │     System.Console.WriteLine v8                                              │
00:01:59 #12671 [Verbose] > │     let v9 : int32 = v5.Length                                               │
00:01:59 #12672 [Verbose] > │     let v10 : int32 = v7.Length                                              │
00:01:59 #12673 [Verbose] > │     let v11 : bool = v9 = v10                                                │
00:01:59 #12674 [Verbose] > │     let v12 : bool = v11 <> true                                             │
00:01:59 #12675 [Verbose] > │     let v15 : bool =                                                         │
00:01:59 #12676 [Verbose] > │         if v12 then                                                          │
00:01:59 #12677 [Verbose] > │             false                                                            │
00:01:59 #12678 [Verbose] > │         else                                                                 │
00:01:59 #12679 [Verbose] > │             let v13 : int32 = 0                                              │
00:01:59 #12680 [Verbose] > │             method2(v5, v7, v13)                                             │
00:01:59 #12681 [Verbose] > │     let v17 : bool =                                                         │
00:01:59 #12682 [Verbose] > │         if v15 then                                                          │
00:01:59 #12683 [Verbose] > │             true                                                             │
00:01:59 #12684 [Verbose] > │         else                                                                 │
00:01:59 #12685 [Verbose] > │             method3(v15)                                                     │
00:01:59 #12686 [Verbose] > │     let v18 : string = $"__expect / actual: %A{v5} / expected: %A{v7}"       │
00:01:59 #12687 [Verbose] > │     let v19 : bool = v17 = false                                             │
00:01:59 #12688 [Verbose] > │     if v19 then                                                              │
00:01:59 #12689 [Verbose] > │         failwith<unit> v18                                                   │
00:01:59 #12690 [Verbose] > │ method0()                                                                    │
00:01:59 #12691 [Verbose] > │                                                                              │
00:01:59 #12692 [Verbose] > │ [|"a"; "b"|]                                                                 │
00:01:59 #12693 [Verbose] > │                                                                              │
00:01:59 #12694 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:59 #12695 [Verbose] >
00:01:59 #12696 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:59 #12697 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:59 #12698 [Verbose] > │ ## seq                                                                       │
00:01:59 #12699 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:59 #12700 [Verbose] >
00:01:59 #12701 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:59 #12702 [Verbose] > type seq dim el = dim -> option el
00:01:59 #12703 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-2837-3756-3bd3e289e09f/main.spi
00:01:59 #12704 [Verbose] >
00:01:59 #12705 [Verbose] > ╭─[ 3.24s - stdout ]───────────────────────────────────────────────────────────╮
00:01:59 #12706 [Verbose] > │ ()                                                                           │
00:01:59 #12707 [Verbose] > │                                                                              │
00:01:59 #12708 [Verbose] > │                                                                              │
00:01:59 #12709 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:59 #12710 [Verbose] >
00:01:59 #12711 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:59 #12712 [Verbose] > // // test
00:01:59 #12713 [Verbose] >
00:01:59 #12714 [Verbose] > open testing
00:01:59 #12715 [Verbose] >
00:01:59 #12716 [Verbose] > ╭─[ 157.60ms - stdout ]────────────────────────────────────────────────────────╮
00:01:59 #12717 [Verbose] > │ ()                                                                           │
00:01:59 #12718 [Verbose] > │                                                                              │
00:01:59 #12719 [Verbose] > │                                                                              │
00:01:59 #12720 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:59 #12721 [Verbose] >
00:01:59 #12722 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:59 #12723 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:59 #12724 [Verbose] > │ ## try_item                                                                  │
00:01:59 #12725 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:59 #12726 [Verbose] >
00:01:59 #12727 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:59 #12728 [Verbose] > inl try_item n s =
00:01:59 #12729 [Verbose] >     n |> s
00:01:59 #12730 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-2846-4672-433979b461f1/main.spi
00:01:59 #12731 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-2853-5337-5bfdfca1aa63/main.spi
00:01:59 #12732 [Verbose] >
00:01:59 #12733 [Verbose] > ╭─[ 159.16ms - stdout ]────────────────────────────────────────────────────────╮
00:01:59 #12734 [Verbose] > │ ()                                                                           │
00:01:59 #12735 [Verbose] > │                                                                              │
00:01:59 #12736 [Verbose] > │                                                                              │
00:01:59 #12737 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:59 #12738 [Verbose] >
00:01:59 #12739 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:59 #12740 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:59 #12741 [Verbose] > │ ## types                                                                     │
00:01:59 #12742 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:59 #12743 [Verbose] >
00:01:59 #12744 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:59 #12745 [Verbose] > inl types () =
00:01:59 #12746 [Verbose] >     ()
00:01:59 #12747 [Verbose] >
00:01:59 #12748 [Verbose] > ╭─[ 135.60ms - stdout ]────────────────────────────────────────────────────────╮
00:01:59 #12749 [Verbose] > │ ()                                                                           │
00:01:59 #12750 [Verbose] > │                                                                              │
00:01:59 #12751 [Verbose] > │                                                                              │
00:01:59 #12752 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:59 #12753 [Verbose] >
00:01:59 #12754 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:59 #12755 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:59 #12756 [Verbose] > │ ## from_list                                                                 │
00:01:59 #12757 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:59 #12758 [Verbose] >
00:01:59 #12759 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:59 #12760 [Verbose] > inl from_list list =
00:01:59 #12761 [Verbose] >     fun n =>
00:01:59 #12762 [Verbose] >         list
00:01:59 #12763 [Verbose] >         |> listm'.try_item n
00:01:59 #12764 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-2862-6286-6bcd161f252c/main.spi
00:01:59 #12765 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-2867-6714-6ee8ba305cba/main.spi
00:01:59 #12766 [Verbose] >
00:01:59 #12767 [Verbose] > ╭─[ 129.88ms - stdout ]────────────────────────────────────────────────────────╮
00:01:59 #12768 [Verbose] > │ ()                                                                           │
00:01:59 #12769 [Verbose] > │                                                                              │
00:01:59 #12770 [Verbose] > │                                                                              │
00:01:59 #12771 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:59 #12772 [Verbose] >
00:01:59 #12773 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:59 #12774 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:59 #12775 [Verbose] > │ ## (</>)                                                                     │
00:01:59 #12776 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:59 #12777 [Verbose] >
00:01:59 #12778 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:59 #12779 [Verbose] > inl (</>) (a : string) (b : string) : string =
00:01:59 #12780 [Verbose] >     $'System.IO.Path.Combine (!a, !b)'
00:01:59 #12781 [Verbose] >
00:01:59 #12782 [Verbose] > ╭─[ 122.39ms - stdout ]────────────────────────────────────────────────────────╮
00:01:59 #12783 [Verbose] > │ ()                                                                           │
00:01:59 #12784 [Verbose] > │                                                                              │
00:01:59 #12785 [Verbose] > │                                                                              │
00:01:59 #12786 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:59 #12787 [Verbose] >
00:01:59 #12788 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:59 #12789 [Verbose] > // // test
00:01:59 #12790 [Verbose] >
00:01:59 #12791 [Verbose] > listm.init 10i32 print_and_return
00:01:59 #12792 [Verbose] > |> from_list
00:01:59 #12793 [Verbose] > |> try_item 5i32
00:01:59 #12794 [Verbose] > |> _assert_eq (Some 5i32)
00:01:59 #12795 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-2875-7576-729f812737f9/main.spi
00:01:59 #12796 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-2879-7946-7d0ca3ba81ae/main.spi
00:01:59 #12797 [Verbose] >
00:01:59 #12798 [Verbose] > ╭─[ 132.85ms - stdout ]────────────────────────────────────────────────────────╮
00:01:59 #12799 [Verbose] > │ ()                                                                           │
00:01:59 #12800 [Verbose] > │                                                                              │
00:01:59 #12801 [Verbose] > │                                                                              │
00:01:59 #12802 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:59 #12803 [Verbose] >
00:01:59 #12804 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:59 #12805 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:59 #12806 [Verbose] > │ ## create_temp_directory_name                                                │
00:01:59 #12807 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:59 #12808 [Verbose] >
00:01:59 #12809 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:59 #12810 [Verbose] > inl create_temp_directory_name () =
00:01:59 #12811 [Verbose] >     inl root = $'System.Reflection.Assembly.GetEntryAssembly().GetName().Name' :
00:01:59 #12812 [Verbose] > string
00:01:59 #12813 [Verbose] >
00:01:59 #12814 [Verbose] >     ($'System.IO.Path.GetTempPath' () : string)
00:01:59 #12815 [Verbose] >     </> ($'$"{!root}"' : string)
00:01:59 #12816 [Verbose] >     </> (date_time.new_guid_from_date_time $'System.DateTime.Now' |>
00:01:59 #12817 [Verbose] > sm'.obj_to_string)
00:01:59 #12818 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-2889-8911-860a5fd2f31c/main.spi
00:01:59 #12819 [Verbose] >
00:01:59 #12820 [Verbose] > ╭─[ 1.50s - stdout ]───────────────────────────────────────────────────────────╮
00:01:59 #12821 [Verbose] > │ type UH0 =                                                                   │
00:01:59 #12822 [Verbose] > │     | UH0_0 of UH0 * UH0                                                     │
00:01:59 #12823 [Verbose] > │     | UH0_1                                                                  │
00:01:59 #12824 [Verbose] > │     | UH0_2                                                                  │
00:01:59 #12825 [Verbose] > │     | UH0_3                                                                  │
00:01:59 #12826 [Verbose] > │ let rec method0 () : unit =                                                  │
00:01:59 #12827 [Verbose] > │     let v0 : UH0 = UH0_1                                                     │
00:01:59 #12828 [Verbose] > │     let v1 : string = $"%A{v0}"                                              │
00:01:59 #12829 [Verbose] > │     System.Console.WriteLine v1                                              │
00:01:59 #12830 [Verbose] > │     let v5 : UH0 = UH0_1                                                     │
00:01:59 #12831 [Verbose] > │     let v6 : UH0 = UH0_1                                                     │
00:01:59 #12832 [Verbose] > │     let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}"        │
00:01:59 #12833 [Verbose] > │     let v8 : UH0 = UH0_1                                                     │
00:01:59 #12834 [Verbose] > │     let v9 : string = $"%A{v8}"                                              │
00:01:59 #12835 [Verbose] > │     System.Console.WriteLine v9                                              │
00:01:59 #12836 [Verbose] > │     let v13 : UH0 = UH0_1                                                    │
00:01:59 #12837 [Verbose] > │     let v14 : UH0 = UH0_1                                                    │
00:01:59 #12838 [Verbose] > │     let v15 : string = $"__expect / actual: %A{v13} / expected: %A{v14}"     │
00:01:59 #12839 [Verbose] > │     let v16 : UH0 = UH0_1                                                    │
00:01:59 #12840 [Verbose] > │     let v17 : string = $"%A{v16}"                                            │
00:01:59 #12841 [Verbose] > │     System.Console.WriteLine v17                                             │
00:01:59 #12842 [Verbose] > │     let v21 : UH0 = UH0_1                                                    │
00:01:59 #12843 [Verbose] > │     let v22 : UH0 = UH0_1                                                    │
00:01:59 #12844 [Verbose] > │     let v23 : string = $"__expect / actual: %A{v21} / expected: %A{v22}"     │
00:01:59 #12845 [Verbose] > │     let v24 : UH0 = UH0_1                                                    │
00:01:59 #12846 [Verbose] > │     let v25 : string = $"%A{v24}"                                            │
00:01:59 #12847 [Verbose] > │     System.Console.WriteLine v25                                             │
00:01:59 #12848 [Verbose] > │     let v29 : UH0 = UH0_1                                                    │
00:01:59 #12849 [Verbose] > │     let v30 : UH0 = UH0_1                                                    │
00:01:59 #12850 [Verbose] > │     let v31 : string = $"__expect / actual: %A{v29} / expected: %A{v30}"     │
00:01:59 #12851 [Verbose] > │     let v32 : UH0 = UH0_1                                                    │
00:01:59 #12852 [Verbose] > │     let v33 : string = $"%A{v32}"                                            │
00:01:59 #12853 [Verbose] > │     System.Console.WriteLine v33                                             │
00:01:59 #12854 [Verbose] > │     let v37 : UH0 = UH0_1                                                    │
00:01:59 #12855 [Verbose] > │     let v38 : UH0 = UH0_1                                                    │
00:01:59 #12856 [Verbose] > │     let v39 : string = $"__expect / actual: %A{v37} / expected: %A{v38}"     │
00:01:59 #12857 [Verbose] > │     let v40 : UH0 = UH0_2                                                    │
00:01:59 #12858 [Verbose] > │     let v41 : string = $"%A{v40}"                                            │
00:01:59 #12859 [Verbose] > │     System.Console.WriteLine v41                                             │
00:01:59 #12860 [Verbose] > │     let v45 : UH0 = UH0_2                                                    │
00:01:59 #12861 [Verbose] > │     let v46 : UH0 = UH0_2                                                    │
00:01:59 #12862 [Verbose] > │     let v47 : string = $"__expect / actual: %A{v45} / expected: %A{v46}"     │
00:01:59 #12863 [Verbose] > │     let v48 : UH0 = UH0_2                                                    │
00:01:59 #12864 [Verbose] > │     let v49 : UH0 = UH0_1                                                    │
00:01:59 #12865 [Verbose] > │     let v50 : UH0 = UH0_0(v48, v49)                                          │
00:01:59 #12866 [Verbose] > │     let v51 : string = $"%A{v50}"                                            │
00:01:59 #12867 [Verbose] > │     System.Console.WriteLine v51                                             │
00:01:59 #12868 [Verbose] > │     let v63 : UH0 = UH0_2                                                    │
00:01:59 #12869 [Verbose] > │     let v64 : UH0 = UH0_1                                                    │
00:01:59 #12870 [Verbose] > │     let v65 : UH0 = UH0_0(v63, v64)                                          │
00:01:59 #12871 [Verbose] > │     let v66 : UH0 = UH0_2                                                    │
00:01:59 #12872 [Verbose] > │     let v67 : UH0 = UH0_1                                                    │
00:01:59 #12873 [Verbose] > │     let v68 : UH0 = UH0_0(v66, v67)                                          │
00:01:59 #12874 [Verbose] > │     let v69 : string = $"__expect / actual: %A{v65} / expected: %A{v68}"     │
00:01:59 #12875 [Verbose] > │     let v70 : UH0 = UH0_2                                                    │
00:01:59 #12876 [Verbose] > │     let v71 : UH0 = UH0_2                                                    │
00:01:59 #12877 [Verbose] > │     let v72 : UH0 = UH0_0(v70, v71)                                          │
00:01:59 #12878 [Verbose] > │     let v73 : string = $"%A{v72}"                                            │
00:01:59 #12879 [Verbose] > │     System.Console.WriteLine v73                                             │
00:01:59 #12880 [Verbose] > │     let v85 : UH0 = UH0_2                                                    │
00:01:59 #12881 [Verbose] > │     let v86 : UH0 = UH0_2                                                    │
00:01:59 #12882 [Verbose] > │     let v87 : UH0 = UH0_0(v85, v86)                                          │
00:01:59 #12883 [Verbose] > │     let v88 : UH0 = UH0_2                                                    │
00:01:59 #12884 [Verbose] > │     let v89 : UH0 = UH0_2                                                    │
00:01:59 #12885 [Verbose] > │     let v90 : UH0 = UH0_0(v88, v89)                                          │
00:01:59 #12886 [Verbose] > │     let v91 : string = $"__expect / actual: %A{v87} / expected: %A{v90}"     │
00:01:59 #12887 [Verbose] > │     let v92 : UH0 = UH0_1                                                    │
00:01:59 #12888 [Verbose] > │     let v93 : string = $"%A{v92}"                                            │
00:01:59 #12889 [Verbose] > │     System.Console.WriteLine v93                                             │
00:01:59 #12890 [Verbose] > │     let v97 : UH0 = UH0_1                                                    │
00:01:59 #12891 [Verbose] > │     let v98 : UH0 = UH0_1                                                    │
00:01:59 #12892 [Verbose] > │     let v99 : string = $"__expect / actual: %A{v97} / expected: %A{v98}"     │
00:01:59 #12893 [Verbose] > │     let v100 : UH0 = UH0_2                                                   │
00:01:59 #12894 [Verbose] > │     let v101 : string = $"%A{v100}"                                          │
00:01:59 #12895 [Verbose] > │     System.Console.WriteLine v101                                            │
00:01:59 #12896 [Verbose] > │     let v105 : UH0 = UH0_2                                                   │
00:01:59 #12897 [Verbose] > │     let v106 : UH0 = UH0_2                                                   │
00:01:59 #12898 [Verbose] > │     let v107 : string = $"__expect / actual: %A{v105} / expected: %A{v106}"  │
00:01:59 #12899 [Verbose] > │     let v108 : UH0 = UH0_3                                                   │
00:01:59 #12900 [Verbose] > │     let v109 : string = $"%A{v108}"                                          │
00:01:59 #12901 [Verbose] > │     System.Console.WriteLine v109                                            │
00:01:59 #12902 [Verbose] > │     let v113 : UH0 = UH0_3                                                   │
00:01:59 #12903 [Verbose] > │     let v114 : UH0 = UH0_3                                                   │
00:01:59 #12904 [Verbose] > │     let v115 : string = $"__expect / actual: %A{v113} / expected: %A{v114}"  │
00:01:59 #12905 [Verbose] > │     let v116 : UH0 = UH0_3                                                   │
00:01:59 #12906 [Verbose] > │     let v117 : string = $"%A{v116}"                                          │
00:01:59 #12907 [Verbose] > │     System.Console.WriteLine v117                                            │
00:01:59 #12908 [Verbose] > │     let v121 : UH0 = UH0_3                                                   │
00:01:59 #12909 [Verbose] > │     let v122 : UH0 = UH0_3                                                   │
00:01:59 #12910 [Verbose] > │     let v123 : string = $"__expect / actual: %A{v121} / expected: %A{v122}"  │
00:01:59 #12911 [Verbose] > │     let v124 : UH0 = UH0_1                                                   │
00:01:59 #12912 [Verbose] > │     let v125 : string = $"%A{v124}"                                          │
00:01:59 #12913 [Verbose] > │     System.Console.WriteLine v125                                            │
00:01:59 #12914 [Verbose] > │     let v129 : UH0 = UH0_1                                                   │
00:01:59 #12915 [Verbose] > │     let v130 : UH0 = UH0_1                                                   │
00:01:59 #12916 [Verbose] > │     let v131 : string = $"__expect / actual: %A{v129} / expected: %A{v130}"  │
00:01:59 #12917 [Verbose] > │     let v132 : UH0 = UH0_1                                                   │
00:01:59 #12918 [Verbose] > │     let v133 : string = $"%A{v132}"                                          │
00:01:59 #12919 [Verbose] > │     System.Console.WriteLine v133                                            │
00:01:59 #12920 [Verbose] > │     let v137 : UH0 = UH0_1                                                   │
00:01:59 #12921 [Verbose] > │     let v138 : UH0 = UH0_1                                                   │
00:01:59 #12922 [Verbose] > │     let v139 : string = $"__expect / actual: %A{v137} / expected: %A{v138}"  │
00:01:59 #12923 [Verbose] > │     let v140 : UH0 = UH0_1                                                   │
00:01:59 #12924 [Verbose] > │     let v141 : string = $"%A{v140}"                                          │
00:01:59 #12925 [Verbose] > │     System.Console.WriteLine v141                                            │
00:01:59 #12926 [Verbose] > │     let v145 : UH0 = UH0_1                                                   │
00:01:59 #12927 [Verbose] > │     let v146 : UH0 = UH0_1                                                   │
00:01:59 #12928 [Verbose] >
00:01:59 #12929 [Verbose] > ╭─[ 143.71ms - stdout ]────────────────────────────────────────────────────────╮
00:01:59 #12930 [Verbose] > │ ()                                                                           │
00:01:59 #12931 [Verbose] > │                                                                              │
00:01:59 #12932 [Verbose] > │                                                                              │
00:01:59 #12933 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:59 #12934 [Verbose] >
00:01:59 #12935 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:59 #12936 [Verbose] > // // test
00:01:59 #12937 [Verbose] >
00:01:59 #12938 [Verbose] > create_temp_directory_name ()
00:01:59 #12939 [Verbose] > |> _contains ($'System.IO.Path.DirectorySeparatorChar' : char)
00:01:59 #12940 [Verbose] > │     let v147 : string = $"__expect / actual: %A{v145} / expected: %A{v146}"  │
00:01:59 #12941 [Verbose] > │     let v148 : UH0 = UH0_3                                                   │
00:01:59 #12942 [Verbose] > │     let v149 : string = $"%A{v148}"                                          │
00:01:59 #12943 [Verbose] > │     System.Console.WriteLine v149                                            │
00:01:59 #12944 [Verbose] > │     let v153 : UH0 = UH0_3                                                   │
00:01:59 #12945 [Verbose] > │     let v154 : UH0 = UH0_3                                                   │
00:01:59 #12946 [Verbose] > │     let v155 : string = $"__expect / actual: %A{v153} / expected: %A{v154}"  │
00:01:59 #12947 [Verbose] > │     let v156 : UH0 = UH0_2                                                   │
00:01:59 #12948 [Verbose] > │     let v157 : string = $"%A{v156}"                                          │
00:01:59 #12949 [Verbose] > │     System.Console.WriteLine v157                                            │
00:01:59 #12950 [Verbose] > │     let v161 : UH0 = UH0_2                                                   │
00:01:59 #12951 [Verbose] > │     let v162 : UH0 = UH0_2                                                   │
00:01:59 #12952 [Verbose] > │     let v163 : string = $"__expect / actual: %A{v161} / expected: %A{v162}"  │
00:01:59 #12953 [Verbose] > │     ()                                                                       │
00:01:59 #12954 [Verbose] > │ method0()                                                                    │
00:01:59 #12955 [Verbose] > │                                                                              │
00:01:59 #12956 [Verbose] > │ UH0_1                                                                        │
00:01:59 #12957 [Verbose] > │ UH0_1                                                                        │
00:01:59 #12958 [Verbose] > │ UH0_1                                                                        │
00:01:59 #12959 [Verbose] > │ UH0_1                                                                        │
00:01:59 #12960 [Verbose] > │ UH0_1                                                                        │
00:01:59 #12961 [Verbose] > │ UH0_2                                                                        │
00:01:59 #12962 [Verbose] > │ UH0_0 (UH0_2, UH0_1)                                                         │
00:01:59 #12963 [Verbose] > │ UH0_0 (UH0_2, UH0_2)                                                         │
00:01:59 #12964 [Verbose] > │ UH0_1                                                                        │
00:01:59 #12965 [Verbose] > │ UH0_2                                                                        │
00:01:59 #12966 [Verbose] > │ UH0_3                                                                        │
00:01:59 #12967 [Verbose] > │ UH0_3                                                                        │
00:01:59 #12968 [Verbose] > │ UH0_1                                                                        │
00:01:59 #12969 [Verbose] > │ UH0_1                                                                        │
00:01:59 #12970 [Verbose] > │ UH0_1                                                                        │
00:01:59 #12971 [Verbose] > │ UH0_3                                                                        │
00:01:59 #12972 [Verbose] > │ UH0_2                                                                        │
00:01:59 #12973 [Verbose] > │                                                                              │
00:01:59 #12974 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:59 #12975 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-2903-0356-0fafbfaaf64c/main.spi
00:02:00 #12976 [Verbose] >
00:02:00 #12977 [Verbose] > ╭─[ 516.60ms - stdout ]────────────────────────────────────────────────────────╮
00:02:00 #12978 [Verbose] > │ type [<Struct>] US0 =                                                        │
00:02:00 #12979 [Verbose] > │     | US0_0                                                                  │
00:02:00 #12980 [Verbose] > │     | US0_1 of f1_0 : int32                                                  │
00:02:00 #12981 [Verbose] > │ let rec method0 () : unit =                                                  │
00:02:00 #12982 [Verbose] > │     printfn $"print_and_return / x: {0}"                                     │
00:02:00 #12983 [Verbose] > │     printfn $"print_and_return / x: {1}"                                     │
00:02:00 #12984 [Verbose] > │     printfn $"print_and_return / x: {2}"                                     │
00:02:00 #12985 [Verbose] > │     printfn $"print_and_return / x: {3}"                                     │
00:02:00 #12986 [Verbose] > │     printfn $"print_and_return / x: {4}"                                     │
00:02:00 #12987 [Verbose] > │     printfn $"print_and_return / x: {5}"                                     │
00:02:00 #12988 [Verbose] > │     printfn $"print_and_return / x: {6}"                                     │
00:02:00 #12989 [Verbose] > │     printfn $"print_and_return / x: {7}"                                     │
00:02:00 #12990 [Verbose] > │     printfn $"print_and_return / x: {8}"                                     │
00:02:00 #12991 [Verbose] > │     printfn $"print_and_return / x: {9}"                                     │
00:02:00 #12992 [Verbose] > │     let v0 : US0 = US0_1(5)                                                  │
00:02:00 #12993 [Verbose] > │     let v1 : string = $"%A{v0}"                                              │
00:02:00 #12994 [Verbose] > │     System.Console.WriteLine v1                                              │
00:02:00 #12995 [Verbose] > │     let v5 : US0 = US0_1(5)                                                  │
00:02:00 #12996 [Verbose] > │     let v6 : US0 = US0_1(5)                                                  │
00:02:00 #12997 [Verbose] > │     let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}"        │
00:02:00 #12998 [Verbose] > │     ()                                                                       │
00:02:00 #12999 [Verbose] > │ method0()                                                                    │
00:02:00 #13000 [Verbose] > │                                                                              │
00:02:00 #13001 [Verbose] > │ print_and_return / x: 0                                                      │
00:02:00 #13002 [Verbose] > │ print_and_return / x: 1                                                      │
00:02:00 #13003 [Verbose] > │ print_and_return / x: 2                                                      │
00:02:00 #13004 [Verbose] > │ print_and_return / x: 3                                                      │
00:02:00 #13005 [Verbose] > │ print_and_return / x: 4                                                      │
00:02:00 #13006 [Verbose] > │ print_and_return / x: 5                                                      │
00:02:00 #13007 [Verbose] > │ print_and_return / x: 6                                                      │
00:02:00 #13008 [Verbose] > │ print_and_return / x: 7                                                      │
00:02:00 #13009 [Verbose] > │ print_and_return / x: 8                                                      │
00:02:00 #13010 [Verbose] > │ print_and_return / x: 9                                                      │
00:02:00 #13011 [Verbose] > │ US0_1 5                                                                      │
00:02:00 #13012 [Verbose] > │                                                                              │
00:02:00 #13013 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:00 #13014 [Verbose] >
00:02:00 #13015 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:00 #13016 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:00 #13017 [Verbose] > │ ## map                                                                       │
00:02:00 #13018 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:00 #13019 [Verbose] >
00:02:00 #13020 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:00 #13021 [Verbose] > inl map fn s =
00:02:00 #13022 [Verbose] >     fun n =>
00:02:00 #13023 [Verbose] >         n
00:02:00 #13024 [Verbose] >         |> s
00:02:00 #13025 [Verbose] >         |> optionm.map fn
00:02:00 #13026 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-2931-3139-35dc1e620bf3/main.spi
00:02:00 #13027 [Verbose] >
00:02:00 #13028 [Verbose] > ╭─[ 141.97ms - stdout ]────────────────────────────────────────────────────────╮
00:02:00 #13029 [Verbose] > │ ()                                                                           │
00:02:00 #13030 [Verbose] > │                                                                              │
00:02:00 #13031 [Verbose] > │                                                                              │
00:02:00 #13032 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:00 #13033 [Verbose] >
00:02:00 #13034 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:00 #13035 [Verbose] > // // test
00:02:00 #13036 [Verbose] >
00:02:00 #13037 [Verbose] > listm.init 10i32 id
00:02:00 #13038 [Verbose] > |> from_list
00:02:00 #13039 [Verbose] > |> map ((*) 2)
00:02:00 #13040 [Verbose] > |> try_item 5i32
00:02:00 #13041 [Verbose] > |> _assert_eq (Some 10i32)
00:02:00 #13042 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-2945-4564-4edeaee6c10c/main.spi
00:02:00 #13043 [Verbose] >
00:02:00 #13044 [Verbose] > ╭─[ 209.06ms - stdout ]────────────────────────────────────────────────────────╮
00:02:00 #13045 [Verbose] > │ type [<Struct>] US0 =                                                        │
00:02:00 #13046 [Verbose] > │     | US0_0                                                                  │
00:02:00 #13047 [Verbose] > │     | US0_1 of f1_0 : int32                                                  │
00:02:00 #13048 [Verbose] > │ let rec method0 () : unit =                                                  │
00:02:00 #13049 [Verbose] > │     let v0 : US0 = US0_1(10)                                                 │
00:02:00 #13050 [Verbose] > │     let v1 : string = $"%A{v0}"                                              │
00:02:00 #13051 [Verbose] > │     System.Console.WriteLine v1                                              │
00:02:00 #13052 [Verbose] > │     let v5 : US0 = US0_1(10)                                                 │
00:02:00 #13053 [Verbose] > │     let v6 : US0 = US0_1(10)                                                 │
00:02:00 #13054 [Verbose] > │     let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}"        │
00:02:00 #13055 [Verbose] > │     ()                                                                       │
00:02:00 #13056 [Verbose] > │ method0()                                                                    │
00:02:00 #13057 [Verbose] > │                                                                              │
00:02:00 #13058 [Verbose] > │ US0_1 10                                                                     │
00:02:00 #13059 [Verbose] > │                                                                              │
00:02:00 #13060 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:00 #13061 [Verbose] >
00:02:00 #13062 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:00 #13063 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:00 #13064 [Verbose] > │ ## mapi                                                                      │
00:02:00 #13065 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:00 #13066 [Verbose] >
00:02:00 #13067 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:00 #13068 [Verbose] > inl mapi fn s =
00:02:00 #13069 [Verbose] >     fun n =>
00:02:00 #13070 [Verbose] >         n
00:02:00 #13071 [Verbose] >         |> s
00:02:00 #13072 [Verbose] >         |> optionm.map (fn n)
00:02:00 #13073 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-2966-6684-6dca391d606a/main.spi
00:02:00 #13074 [Verbose] >
00:02:00 #13075 [Verbose] > ╭─[ 146.91ms - stdout ]────────────────────────────────────────────────────────╮
00:02:00 #13076 [Verbose] > │ ()                                                                           │
00:02:00 #13077 [Verbose] > │                                                                              │
00:02:00 #13078 [Verbose] > │                                                                              │
00:02:00 #13079 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:00 #13080 [Verbose] >
00:02:00 #13081 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:00 #13082 [Verbose] > // // test
00:02:00 #13083 [Verbose] >
00:02:00 #13084 [Verbose] > listm.init 10i32 print_and_return
00:02:00 #13085 [Verbose] > |> from_list
00:02:00 #13086 [Verbose] > |> mapi fun i x => i + x
00:02:00 #13087 [Verbose] > |> try_item 5i32
00:02:00 #13088 [Verbose] > |> _assert_eq (Some 10i32)
00:02:00 #13089 [Verbose] > [NbConvertApp] Converting notebook util.dib.ipynb to html
00:02:00 #13090 [Verbose] > /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:02:00 #13091 [Verbose] >   validate(nb)
00:02:00 #13092 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-2981-8157-8af4471b3d8b/main.spi
00:02:01 #13093 [Verbose] >
00:02:01 #13094 [Verbose] > ╭─[ 369.78ms - stdout ]────────────────────────────────────────────────────────╮
00:02:01 #13095 [Verbose] > │ type [<Struct>] US0 =                                                        │
00:02:01 #13096 [Verbose] > │     | US0_0                                                                  │
00:02:01 #13097 [Verbose] > │     | US0_1 of f1_0 : int32                                                  │
00:02:01 #13098 [Verbose] > │ let rec method0 () : unit =                                                  │
00:02:01 #13099 [Verbose] > │     printfn $"print_and_return / x: {0}"                                     │
00:02:01 #13100 [Verbose] > │     printfn $"print_and_return / x: {1}"                                     │
00:02:01 #13101 [Verbose] > │     printfn $"print_and_return / x: {2}"                                     │
00:02:01 #13102 [Verbose] > │     printfn $"print_and_return / x: {3}"                                     │
00:02:01 #13103 [Verbose] > │     printfn $"print_and_return / x: {4}"                                     │
00:02:01 #13104 [Verbose] > │     printfn $"print_and_return / x: {5}"                                     │
00:02:01 #13105 [Verbose] > │     printfn $"print_and_return / x: {6}"                                     │
00:02:01 #13106 [Verbose] > │     printfn $"print_and_return / x: {7}"                                     │
00:02:01 #13107 [Verbose] > │     printfn $"print_and_return / x: {8}"                                     │
00:02:01 #13108 [Verbose] > │     printfn $"print_and_return / x: {9}"                                     │
00:02:01 #13109 [Verbose] > │     let v0 : US0 = US0_1(10)                                                 │
00:02:01 #13110 [Verbose] > │     let v1 : string = $"%A{v0}"                                              │
00:02:01 #13111 [Verbose] > │     System.Console.WriteLine v1                                              │
00:02:01 #13112 [Verbose] > │     let v5 : US0 = US0_1(10)                                                 │
00:02:01 #13113 [Verbose] > │     let v6 : US0 = US0_1(10)                                                 │
00:02:01 #13114 [Verbose] > │     let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}"        │
00:02:01 #13115 [Verbose] > │     ()                                                                       │
00:02:01 #13116 [Verbose] > │ method0()                                                                    │
00:02:01 #13117 [Verbose] > │                                                                              │
00:02:01 #13118 [Verbose] > │ print_and_return / x: 0                                                      │
00:02:01 #13119 [Verbose] > │ print_and_return / x: 1                                                      │
00:02:01 #13120 [Verbose] > │ print_and_return / x: 2                                                      │
00:02:01 #13121 [Verbose] > │ print_and_return / x: 3                                                      │
00:02:01 #13122 [Verbose] > │ print_and_return / x: 4                                                      │
00:02:01 #13123 [Verbose] > │ print_and_return / x: 5                                                      │
00:02:01 #13124 [Verbose] > │ print_and_return / x: 6                                                      │
00:02:01 #13125 [Verbose] > │ print_and_return / x: 7                                                      │
00:02:01 #13126 [Verbose] > │ print_and_return / x: 8                                                      │
00:02:01 #13127 [Verbose] > │ print_and_return / x: 9                                                      │
00:02:01 #13128 [Verbose] > │ US0_1 10                                                                     │
00:02:01 #13129 [Verbose] > │                                                                              │
00:02:01 #13130 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:01 #13131 [Verbose] >
00:02:01 #13132 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:01 #13133 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:01 #13134 [Verbose] > │ ## choose                                                                    │
00:02:01 #13135 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:01 #13136 [Verbose] >
00:02:01 #13137 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:01 #13138 [Verbose] > inl choose forall dim {number} t u. (fn : t -> option u) (s : seq dim t) : seq
00:02:01 #13139 [Verbose] > dim u =
00:02:01 #13140 [Verbose] >     fun n =>
00:02:01 #13141 [Verbose] >         inl rec body fn s i i' =
00:02:01 #13142 [Verbose] >             match i |> s with
00:02:01 #13143 [Verbose] >             | None => None
00:02:01 #13144 [Verbose] >             | Some x =>
00:02:01 #13145 [Verbose] >                 match x |> fn with
00:02:01 #13146 [Verbose] >                 | Some x when n = i' => Some x
00:02:01 #13147 [Verbose] >                 | Some _ => loop (i + 1) (i' + 1)
00:02:01 #13148 [Verbose] >                 | _ => loop (i + 1) i'
00:02:01 #13149 [Verbose] >         and inl loop i i' =
00:02:01 #13150 [Verbose] >             if n |> var_is |> not
00:02:01 #13151 [Verbose] >             then body fn s i i'
00:02:01 #13152 [Verbose] >             else
00:02:01 #13153 [Verbose] >                 inl fn = join fn
00:02:01 #13154 [Verbose] >                 inl s = join s
00:02:01 #13155 [Verbose] >                 join body fn s i i'
00:02:01 #13156 [Verbose] >         loop 0 0
00:02:01 #13157 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-3019-1989-1106f35ecb36/main.spi
00:02:01 #13158 [Verbose] > /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:02:01 #13159 [Verbose] >   return _pygments_highlight(
00:02:01 #13160 [Verbose] >
00:02:01 #13161 [Verbose] > ╭─[ 177.74ms - stdout ]────────────────────────────────────────────────────────╮
00:02:01 #13162 [Verbose] > │ ()                                                                           │
00:02:01 #13163 [Verbose] > │                                                                              │
00:02:01 #13164 [Verbose] > │                                                                              │
00:02:01 #13165 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:01 #13166 [Verbose] >
00:02:01 #13167 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:01 #13168 [Verbose] > // // test
00:02:01 #13169 [Verbose] >
00:02:01 #13170 [Verbose] > listm.init 10i32 print_and_return
00:02:01 #13171 [Verbose] > |> from_list
00:02:01 #13172 [Verbose] > |> choose (fun x => if x % 2 = 0 then Some x else None)
00:02:01 #13173 [Verbose] > |> try_item 1i32
00:02:01 #13174 [Verbose] > |> _assert_eq (Some 2i32)
00:02:01 #13175 [Verbose] >
00:02:01 #13176 [Verbose] > ╭─[ 1.40s - stdout ]───────────────────────────────────────────────────────────╮
00:02:01 #13177 [Verbose] > │ type [<Struct>] US0 =                                                        │
00:02:01 #13178 [Verbose] > │     | US0_0                                                                  │
00:02:01 #13179 [Verbose] > │     | US0_1 of f1_0 : char                                                   │
00:02:01 #13180 [Verbose] > │ let rec closure0 (v0 : char) (v1 : char) : bool =                            │
00:02:01 #13181 [Verbose] > │     let v2 : bool = v0 = v1                                                  │
00:02:01 #13182 [Verbose] > │     v2                                                                       │
00:02:01 #13183 [Verbose] > │ and closure1 () (v0 : char) : US0 =                                          │
00:02:01 #13184 [Verbose] > │     US0_1(v0)                                                                │
00:02:01 #13185 [Verbose] > │ and method1 (v0 : bool) : bool =                                             │
00:02:01 #13186 [Verbose] > │     v0                                                                       │
00:02:01 #13187 [Verbose] > │ and method0 () : unit =                                                      │
00:02:01 #13188 [Verbose] > │     let v0 : string =                                                        │
00:02:01 #13189 [Verbose] > │ System.Reflection.Assembly.GetEntryAssembly().GetName().Name                 │
00:02:01 #13190 [Verbose] > │     let v1 : (unit -> string) = System.IO.Path.GetTempPath                   │
00:02:01 #13191 [Verbose] > │     let v2 : string = v1 ()                                                  │
00:02:01 #13192 [Verbose] > │     let v3 : string = $"{v0}"                                                │
00:02:01 #13193 [Verbose] > │     let v4 : string = System.IO.Path.Combine (v2, v3)                        │
00:02:01 #13194 [Verbose] > │     let v5 : System.DateTime = System.DateTime.Now                           │
00:02:01 #13195 [Verbose] > │     let v6 : System.Guid = System.Guid.NewGuid ()                            │
00:02:01 #13196 [Verbose] > │     let v7 : string = v6.ToString ()                                         │
00:02:01 #13197 [Verbose] > │     let v8 : string = v5.ToString "yyyyMMdd-HHmm-ssff-ffff-f"                │
00:02:01 #13198 [Verbose] > │     let v9 : System.Guid = System.Guid $"{v8}{v7.[v8.Length..]}"             │
00:02:01 #13199 [Verbose] > │     let v10 : string = v9.ToString ()                                        │
00:02:01 #13200 [Verbose] > │     let v11 : string = System.IO.Path.Combine (v4, v10)                      │
00:02:01 #13201 [Verbose] > │     let v12 : char = System.IO.Path.DirectorySeparatorChar                   │
00:02:01 #13202 [Verbose] > │     let v13 : string = $"%A{v11}"                                            │
00:02:01 #13203 [Verbose] > │     System.Console.WriteLine v13                                             │
00:02:01 #13204 [Verbose] > │     let v14 : ((char -> bool) -> (string -> char option)) = Seq.tryFind      │
00:02:01 #13205 [Verbose] > │     let v15 : (char -> bool) = closure0(v12)                                 │
00:02:01 #13206 [Verbose] > │     let v16 : (string -> char option) = v14 v15                              │
00:02:01 #13207 [Verbose] > │     let v17 : char option = v16 v11                                          │
00:02:01 #13208 [Verbose] > │     let v18 : (char -> US0) = closure1()                                     │
00:02:01 #13209 [Verbose] > │     let v19 : US0 = US0_0                                                    │
00:02:01 #13210 [Verbose] > │     let v20 : US0 = v17 |> Option.map v18 |> Option.defaultValue v19         │
00:02:01 #13211 [Verbose] > │     let v22 : bool =                                                         │
00:02:01 #13212 [Verbose] > │         match v20 with                                                       │
00:02:01 #13213 [Verbose] > │         | US0_0 -> (* None *)                                                │
00:02:01 #13214 [Verbose] > │             true                                                             │
00:02:01 #13215 [Verbose] > │         | _ ->                                                               │
00:02:01 #13216 [Verbose] > │             false                                                            │
00:02:01 #13217 [Verbose] > │     let v23 : bool = v22 <> true                                             │
00:02:01 #13218 [Verbose] > │     let v25 : bool =                                                         │
00:02:01 #13219 [Verbose] > │         if v23 then                                                          │
00:02:01 #13220 [Verbose] > │             true                                                             │
00:02:01 #13221 [Verbose] > │         else                                                                 │
00:02:01 #13222 [Verbose] > │             method1(v23)                                                     │
00:02:01 #13223 [Verbose] > │     let v26 : string = $"__expect / actual: %A{v11} / expected: %A{v12}"     │
00:02:01 #13224 [Verbose] > │     let v27 : bool = v25 = false                                             │
00:02:01 #13225 [Verbose] > │     if v27 then                                                              │
00:02:01 #13226 [Verbose] > │         failwith<unit> v26                                                   │
00:02:01 #13227 [Verbose] > │ method0()                                                                    │
00:02:01 #13228 [Verbose] > │                                                                              │
00:02:01 #13229 [Verbose] > │ "/tmp/dotnet-repl/20240329-2208-3043-4332-49f5b95afab1"                      │
00:02:01 #13230 [Verbose] > │                                                                              │
00:02:01 #13231 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:01 #13232 [Verbose] >
00:02:01 #13233 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:01 #13234 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:01 #13235 [Verbose] > │ ## main                                                                      │
00:02:01 #13236 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:01 #13237 [Verbose] >
00:02:01 #13238 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:01 #13239 [Verbose] > inl main () =
00:02:01 #13240 [Verbose] >     $"let create_temp_directory_name x = !create_temp_directory_name x" : ()
00:02:01 #13241 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-3037-3757-3b1a8ace412c/main.spi
00:02:01 #13242 [Verbose] > [NbConvertApp] Writing 288541 bytes to util.dib.html
00:02:01 #13243 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-3045-4511-4ddbf9d78e1e/main.spi
00:02:01 #13244 [Verbose] >
00:02:01 #13245 [Verbose] > ╭─[ 181.79ms - stdout ]────────────────────────────────────────────────────────╮
00:02:01 #13246 [Verbose] > │ type [<Struct>] US0 =                                                        │
00:02:01 #13247 [Verbose] > │     | US0_0                                                                  │
00:02:01 #13248 [Verbose] > │     | US0_1 of f1_0 : int32                                                  │
00:02:01 #13249 [Verbose] > │ let rec method0 () : unit =                                                  │
00:02:01 #13250 [Verbose] > │     printfn $"print_and_return / x: {0}"                                     │
00:02:01 #13251 [Verbose] > │     printfn $"print_and_return / x: {1}"                                     │
00:02:01 #13252 [Verbose] > │     printfn $"print_and_return / x: {2}"                                     │
00:02:01 #13253 [Verbose] > │     printfn $"print_and_return / x: {3}"                                     │
00:02:01 #13254 [Verbose] > │     printfn $"print_and_return / x: {4}"                                     │
00:02:01 #13255 [Verbose] > │     printfn $"print_and_return / x: {5}"                                     │
00:02:01 #13256 [Verbose] > │     printfn $"print_and_return / x: {6}"                                     │
00:02:01 #13257 [Verbose] > │     printfn $"print_and_return / x: {7}"                                     │
00:02:01 #13258 [Verbose] > │     printfn $"print_and_return / x: {8}"                                     │
00:02:01 #13259 [Verbose] > │     printfn $"print_and_return / x: {9}"                                     │
00:02:01 #13260 [Verbose] > │     let v0 : US0 = US0_1(2)                                                  │
00:02:01 #13261 [Verbose] > │     let v1 : string = $"%A{v0}"                                              │
00:02:01 #13262 [Verbose] > │     System.Console.WriteLine v1                                              │
00:02:01 #13263 [Verbose] > │     let v5 : US0 = US0_1(2)                                                  │
00:02:01 #13264 [Verbose] > │     let v6 : US0 = US0_1(2)                                                  │
00:02:01 #13265 [Verbose] > │     let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}"        │
00:02:01 #13266 [Verbose] > │     ()                                                                       │
00:02:01 #13267 [Verbose] > │ method0()                                                                    │
00:02:01 #13268 [Verbose] > │                                                                              │
00:02:01 #13269 [Verbose] > │ print_and_return / x: 0                                                      │
00:02:01 #13270 [Verbose] > │ print_and_return / x: 1                                                      │
00:02:01 #13271 [Verbose] > │ print_and_return / x: 2                                                      │
00:02:01 #13272 [Verbose] > │ print_and_return / x: 3                                                      │
00:02:01 #13273 [Verbose] > │ print_and_return / x: 4                                                      │
00:02:01 #13274 [Verbose] > │ print_and_return / x: 5                                                      │
00:02:01 #13275 [Verbose] > │ print_and_return / x: 6                                                      │
00:02:01 #13276 [Verbose] > │ print_and_return / x: 7                                                      │
00:02:01 #13277 [Verbose] > │ print_and_return / x: 8                                                      │
00:02:01 #13278 [Verbose] > │ print_and_return / x: 9                                                      │
00:02:01 #13279 [Verbose] > │ US0_1 2                                                                      │
00:02:01 #13280 [Verbose] > │                                                                              │
00:02:01 #13281 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:01 #13282 [Verbose] >
00:02:01 #13283 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:01 #13284 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:01 #13285 [Verbose] > │ ## indexed                                                                   │
00:02:01 #13286 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:01 #13287 [Verbose] >
00:02:01 #13288 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:01 #13289 [Verbose] > inl indexed s =
00:02:01 #13290 [Verbose] >     s
00:02:01 #13291 [Verbose] >     |> mapi fun i x =>
00:02:01 #13292 [Verbose] >         i, x
00:02:01 #13293 [Verbose] >
00:02:01 #13294 [Verbose] > ╭─[ 161.25ms - stdout ]────────────────────────────────────────────────────────╮
00:02:01 #13295 [Verbose] > │ let rec closure0 () () : string =                                            │
00:02:01 #13296 [Verbose] > │     let v0 : string =                                                        │
00:02:01 #13297 [Verbose] > │ System.Reflection.Assembly.GetEntryAssembly().GetName().Name                 │
00:02:01 #13298 [Verbose] > │     let v1 : (unit -> string) = System.IO.Path.GetTempPath                   │
00:02:01 #13299 [Verbose] > │     let v2 : string = v1 ()                                                  │
00:02:01 #13300 [Verbose] > │     let v3 : string = $"{v0}"                                                │
00:02:01 #13301 [Verbose] > │     let v4 : string = System.IO.Path.Combine (v2, v3)                        │
00:02:01 #13302 [Verbose] > │     let v5 : System.DateTime = System.DateTime.Now                           │
00:02:01 #13303 [Verbose] > │     let v6 : System.Guid = System.Guid.NewGuid ()                            │
00:02:01 #13304 [Verbose] > │     let v7 : string = v6.ToString ()                                         │
00:02:01 #13305 [Verbose] > │     let v8 : string = v5.ToString "yyyyMMdd-HHmm-ssff-ffff-f"                │
00:02:01 #13306 [Verbose] > │     let v9 : System.Guid = System.Guid $"{v8}{v7.[v8.Length..]}"             │
00:02:01 #13307 [Verbose] > │     let v10 : string = v9.ToString ()                                        │
00:02:01 #13308 [Verbose] > │     let v11 : string = System.IO.Path.Combine (v4, v10)                      │
00:02:01 #13309 [Verbose] > │     v11                                                                      │
00:02:01 #13310 [Verbose] > │ let v0 : (unit -> string) = closure0()                                       │
00:02:01 #13311 [Verbose] > │ let create_temp_directory_name x = v0 x                                      │
00:02:01 #13312 [Verbose] > │ ()                                                                           │
00:02:01 #13313 [Verbose] > │                                                                              │
00:02:01 #13314 [Verbose] > │                                                                              │
00:02:01 #13315 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:01 #13316 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-3056-5612-50dcaca72876/main.spi
00:02:01 #13317 [Verbose] >
00:02:01 #13318 [Verbose] > ╭─[ 196.08ms - stdout ]────────────────────────────────────────────────────────╮
00:02:01 #13319 [Verbose] > │ ()                                                                           │
00:02:01 #13320 [Verbose] > │                                                                              │
00:02:01 #13321 [Verbose] > │                                                                              │
00:02:01 #13322 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:01 #13323 [Verbose] >
00:02:01 #13324 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:01 #13325 [Verbose] > // // test
00:02:01 #13326 [Verbose] >
00:02:01 #13327 [Verbose] > listm.init 10i32 ((*) 2)
00:02:01 #13328 [Verbose] > |> from_list
00:02:01 #13329 [Verbose] > |> indexed
00:02:01 #13330 [Verbose] > |> try_item 5i32
00:02:01 #13331 [Verbose] > |> _assert_eq (Some (5i32, 10i32))
00:02:01 #13332 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-3075-7568-7262508488dd/main.spi
00:02:01 #13333 [Debug] executeAsync / exitCode: 0 / output.Length: 19309
00:02:01 #13334 [Debug] main / executeCommand / exitCode: 0
00:02:01 #13335 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 rust.dib""
  WorkingDirectory = None
  CancellationToken = Some System.Threading.CancellationToken
  OnLine = None }
00:02:01 #13336 [Verbose] >
00:02:01 #13337 [Verbose] > ╭─[ 189.82ms - stdout ]────────────────────────────────────────────────────────╮
00:02:01 #13338 [Verbose] > │ type [<Struct>] US0 =                                                        │
00:02:01 #13339 [Verbose] > │     | US0_0                                                                  │
00:02:01 #13340 [Verbose] > │     | US0_1 of f1_0 : int32 * f1_1 : int32                                   │
00:02:01 #13341 [Verbose] > │ let rec method0 () : unit =                                                  │
00:02:01 #13342 [Verbose] > │     let v0 : US0 = US0_1(5, 10)                                              │
00:02:01 #13343 [Verbose] > │     let v1 : string = $"%A{v0}"                                              │
00:02:01 #13344 [Verbose] > │     System.Console.WriteLine v1                                              │
00:02:01 #13345 [Verbose] > │     let v5 : US0 = US0_1(5, 10)                                              │
00:02:01 #13346 [Verbose] > │     let v6 : US0 = US0_1(5, 10)                                              │
00:02:01 #13347 [Verbose] > │     let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}"        │
00:02:01 #13348 [Verbose] > │     ()                                                                       │
00:02:01 #13349 [Verbose] > │ method0()                                                                    │
00:02:01 #13350 [Verbose] > │                                                                              │
00:02:01 #13351 [Verbose] > │ US0_1 (5, 10)                                                                │
00:02:01 #13352 [Verbose] > │                                                                              │
00:02:01 #13353 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:01 #13354 [Verbose] >
00:02:01 #13355 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:01 #13356 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:01 #13357 [Verbose] > │ ## zip                                                                       │
00:02:01 #13358 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:01 #13359 [Verbose] >
00:02:01 #13360 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:01 #13361 [Verbose] > inl zip n seq1 seq2 =
00:02:01 #13362 [Verbose] >     seq1 n, seq2 n
00:02:01 #13363 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-3095-9502-9398c72f7635/main.spi
00:02:01 #13364 [Verbose] >
00:02:01 #13365 [Verbose] > ╭─[ 162.81ms - stdout ]────────────────────────────────────────────────────────╮
00:02:01 #13366 [Verbose] > │ ()                                                                           │
00:02:01 #13367 [Verbose] > │                                                                              │
00:02:01 #13368 [Verbose] > │                                                                              │
00:02:01 #13369 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:01 #13370 [Verbose] >
00:02:01 #13371 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:01 #13372 [Verbose] > // // test
00:02:01 #13373 [Verbose] >
00:02:01 #13374 [Verbose] > ((listm.init 10i32 id |> from_list), (listm.init 10i32 ((*) 2) |> from_list))
00:02:01 #13375 [Verbose] > ||> zip 5i32
00:02:01 #13376 [Verbose] > |> _assert_eq (Some 5, Some 10)
00:02:02 #13377 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-3111-1120-12b61a04198e/main.spi
00:02:02 #13378 [Verbose] >
00:02:02 #13379 [Verbose] > ╭─[ 179.58ms - stdout ]────────────────────────────────────────────────────────╮
00:02:02 #13380 [Verbose] > │ type [<Struct>] US0 =                                                        │
00:02:02 #13381 [Verbose] > │     | US0_0                                                                  │
00:02:02 #13382 [Verbose] > │     | US0_1 of f1_0 : int32                                                  │
00:02:02 #13383 [Verbose] > │ let rec method0 () : unit =                                                  │
00:02:02 #13384 [Verbose] > │     let v0 : US0 = US0_1(5)                                                  │
00:02:02 #13385 [Verbose] > │     let v1 : US0 = US0_1(10)                                                 │
00:02:02 #13386 [Verbose] > │     let v2 : string = $"%A{struct (v0, v1)}"                                 │
00:02:02 #13387 [Verbose] > │     System.Console.WriteLine v2                                              │
00:02:02 #13388 [Verbose] > │     let v9 : US0 = US0_1(5)                                                  │
00:02:02 #13389 [Verbose] > │     let v10 : US0 = US0_1(10)                                                │
00:02:02 #13390 [Verbose] > │     let v11 : US0 = US0_1(5)                                                 │
00:02:02 #13391 [Verbose] > │     let v12 : US0 = US0_1(10)                                                │
00:02:02 #13392 [Verbose] > │     let v13 : string = $"__expect / actual: %A{struct (v9, v10)} / expected: │
00:02:02 #13393 [Verbose] > │ %A{struct (v11, v12)}"                                                       │
00:02:02 #13394 [Verbose] > │     ()                                                                       │
00:02:02 #13395 [Verbose] > │ method0()                                                                    │
00:02:02 #13396 [Verbose] > │                                                                              │
00:02:02 #13397 [Verbose] > │ struct (US0_1 5, US0_1 10)                                                   │
00:02:02 #13398 [Verbose] > │                                                                              │
00:02:02 #13399 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:02 #13400 [Verbose] >
00:02:02 #13401 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:02 #13402 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:02 #13403 [Verbose] > │ ## zip_with                                                                  │
00:02:02 #13404 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:02 #13405 [Verbose] >
00:02:02 #13406 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:02 #13407 [Verbose] > inl zip_with fn seq1 seq2 =
00:02:02 #13408 [Verbose] >     fun n =>
00:02:02 #13409 [Verbose] >         fn (seq1 n) (seq2 n)
00:02:02 #13410 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-3129-2934-256ffcd25811/main.spi
00:02:02 #13411 [Verbose] >
00:02:02 #13412 [Verbose] > ╭─[ 115.10ms - stdout ]────────────────────────────────────────────────────────╮
00:02:02 #13413 [Verbose] > │ ()                                                                           │
00:02:02 #13414 [Verbose] > │                                                                              │
00:02:02 #13415 [Verbose] > │                                                                              │
00:02:02 #13416 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:02 #13417 [Verbose] >
00:02:02 #13418 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:02 #13419 [Verbose] > // // test
00:02:02 #13420 [Verbose] >
00:02:02 #13421 [Verbose] > ((listm.init 10i32 id |> from_list), (listm.init 10i32 ((*) 2) |> from_list))
00:02:02 #13422 [Verbose] > ||> zip_with (optionm'.choose (+))
00:02:02 #13423 [Verbose] > |> try_item 2i32
00:02:02 #13424 [Verbose] > |> _assert_eq (Some 6)
00:02:02 #13425 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-3140-4087-4654ed081ab9/main.spi
00:02:02 #13426 [Verbose] >
00:02:02 #13427 [Verbose] > ╭─[ 173.35ms - stdout ]────────────────────────────────────────────────────────╮
00:02:02 #13428 [Verbose] > │ type [<Struct>] US0 =                                                        │
00:02:02 #13429 [Verbose] > │     | US0_0                                                                  │
00:02:02 #13430 [Verbose] > │     | US0_1 of f1_0 : int32                                                  │
00:02:02 #13431 [Verbose] > │ let rec method0 () : unit =                                                  │
00:02:02 #13432 [Verbose] > │     let v0 : US0 = US0_1(6)                                                  │
00:02:02 #13433 [Verbose] > │     let v1 : string = $"%A{v0}"                                              │
00:02:02 #13434 [Verbose] > │     System.Console.WriteLine v1                                              │
00:02:02 #13435 [Verbose] > │     let v5 : US0 = US0_1(6)                                                  │
00:02:02 #13436 [Verbose] > │     let v6 : US0 = US0_1(6)                                                  │
00:02:02 #13437 [Verbose] > │     let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}"        │
00:02:02 #13438 [Verbose] > │     ()                                                                       │
00:02:02 #13439 [Verbose] > │ method0()                                                                    │
00:02:02 #13440 [Verbose] > │                                                                              │
00:02:02 #13441 [Verbose] > │ US0_1 6                                                                      │
00:02:02 #13442 [Verbose] > │                                                                              │
00:02:02 #13443 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:02 #13444 [Verbose] >
00:02:02 #13445 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:02 #13446 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:02 #13447 [Verbose] > │ ## fold                                                                      │
00:02:02 #13448 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:02 #13449 [Verbose] >
00:02:02 #13450 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:02 #13451 [Verbose] > inl fold fn init seq =
00:02:02 #13452 [Verbose] >     inl rec loop acc n =
00:02:02 #13453 [Verbose] >         match seq n with
00:02:02 #13454 [Verbose] >         | Some x => loop (fn acc x) (n + 1)
00:02:02 #13455 [Verbose] >         | None => acc
00:02:02 #13456 [Verbose] >     loop init 0
00:02:02 #13457 [Verbose] >
00:02:02 #13458 [Verbose] > inl fold_ fn init seq =
00:02:02 #13459 [Verbose] >     let rec loop acc n =
00:02:02 #13460 [Verbose] >         match seq n with
00:02:02 #13461 [Verbose] >         | Some x => loop (fn acc x) (n + 1)
00:02:02 #13462 [Verbose] >         | None => acc
00:02:02 #13463 [Verbose] >     loop init 0
00:02:02 #13464 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-3158-5847-54fc96e954b0/main.spi
00:02:02 #13465 [Verbose] > [NbConvertApp] Converting notebook file_system.dib.ipynb to html
00:02:02 #13466 [Verbose] > /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:02:02 #13467 [Verbose] >   validate(nb)
00:02:02 #13468 [Verbose] >
00:02:02 #13469 [Verbose] > ╭─[ 116.20ms - stdout ]────────────────────────────────────────────────────────╮
00:02:02 #13470 [Verbose] > │ ()                                                                           │
00:02:02 #13471 [Verbose] > │                                                                              │
00:02:02 #13472 [Verbose] > │                                                                              │
00:02:02 #13473 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:02 #13474 [Verbose] >
00:02:02 #13475 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:02 #13476 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:02 #13477 [Verbose] > │ ## sum                                                                       │
00:02:02 #13478 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:02 #13479 [Verbose] >
00:02:02 #13480 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:02 #13481 [Verbose] > inl sum seq =
00:02:02 #13482 [Verbose] >     seq |> fold (+) 0
00:02:02 #13483 [Verbose] >
00:02:02 #13484 [Verbose] > inl sum_ seq =
00:02:02 #13485 [Verbose] >     seq |> fold_ (+) 0
00:02:02 #13486 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-3170-7018-752a6df317e8/main.spi
00:02:02 #13487 [Verbose] >
00:02:02 #13488 [Verbose] > ╭─[ 152.21ms - stdout ]────────────────────────────────────────────────────────╮
00:02:02 #13489 [Verbose] > │ ()                                                                           │
00:02:02 #13490 [Verbose] > │                                                                              │
00:02:02 #13491 [Verbose] > │                                                                              │
00:02:02 #13492 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:02 #13493 [Verbose] >
00:02:02 #13494 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:02 #13495 [Verbose] > // // test
00:02:02 #13496 [Verbose] >
00:02:02 #13497 [Verbose] > listm.init 10i32 id
00:02:02 #13498 [Verbose] > |> from_list
00:02:02 #13499 [Verbose] > |> fun f (n : i32) => f n
00:02:02 #13500 [Verbose] > |> sum
00:02:02 #13501 [Verbose] > |> _assert_eq 45
00:02:02 #13502 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-3185-8563-8661a996ed9e/main.spi
00:02:02 #13503 [Verbose] >
00:02:02 #13504 [Verbose] > ╭─[ 226.14ms - stdout ]────────────────────────────────────────────────────────╮
00:02:02 #13505 [Verbose] > │ let rec method0 () : unit =                                                  │
00:02:02 #13506 [Verbose] > │     let v0 : string = $"%A{45}"                                              │
00:02:02 #13507 [Verbose] > │     System.Console.WriteLine v0                                              │
00:02:02 #13508 [Verbose] > │     let v1 : string = $"__expect / actual: %A{45} / expected: %A{45}"        │
00:02:02 #13509 [Verbose] > │     ()                                                                       │
00:02:02 #13510 [Verbose] > │ method0()                                                                    │
00:02:02 #13511 [Verbose] > │                                                                              │
00:02:02 #13512 [Verbose] > │ 45                                                                           │
00:02:02 #13513 [Verbose] > │                                                                              │
00:02:02 #13514 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:02 #13515 [Verbose] >
00:02:02 #13516 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:02 #13517 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:02 #13518 [Verbose] > │ ## to_list                                                                   │
00:02:02 #13519 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:02 #13520 [Verbose] >
00:02:02 #13521 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:02 #13522 [Verbose] > inl to_list seq =
00:02:02 #13523 [Verbose] >     seq
00:02:02 #13524 [Verbose] >     |> fold (fun acc x => x :: acc) [[]]
00:02:02 #13525 [Verbose] >     |> listm.rev
00:02:02 #13526 [Verbose] >
00:02:02 #13527 [Verbose] > inl to_list_ seq =
00:02:02 #13528 [Verbose] >     seq
00:02:02 #13529 [Verbose] >     |> fold_ (fun acc x => x :: acc) [[]]
00:02:02 #13530 [Verbose] >     |> listm.rev
00:02:02 #13531 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-3208-0834-04a56164d7d6/main.spi
00:02:03 #13532 [Verbose] >
00:02:03 #13533 [Verbose] > ╭─[ 126.88ms - stdout ]────────────────────────────────────────────────────────╮
00:02:03 #13534 [Verbose] > │ ()                                                                           │
00:02:03 #13535 [Verbose] > │                                                                              │
00:02:03 #13536 [Verbose] > │                                                                              │
00:02:03 #13537 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:03 #13538 [Verbose] >
00:02:03 #13539 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:03 #13540 [Verbose] > // // test
00:02:03 #13541 [Verbose] >
00:02:03 #13542 [Verbose] > listm.init 10i32 id
00:02:03 #13543 [Verbose] > |> from_list
00:02:03 #13544 [Verbose] > |> fun f (n : i32) => f n
00:02:03 #13545 [Verbose] > |> to_list
00:02:03 #13546 [Verbose] > |> _assert_eq (listm.init 10i32 id)
00:02:03 #13547 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-3221-2112-29e5696a2d51/main.spi
00:02:03 #13548 [Verbose] > /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:02:03 #13549 [Verbose] >   return _pygments_highlight(
00:02:03 #13550 [Verbose] >
00:02:03 #13551 [Verbose] > ╭─[ 226.83ms - stdout ]────────────────────────────────────────────────────────╮
00:02:03 #13552 [Verbose] > │ type UH0 =                                                                   │
00:02:03 #13553 [Verbose] > │     | UH0_0 of int32 * UH0                                                   │
00:02:03 #13554 [Verbose] > │     | UH0_1                                                                  │
00:02:03 #13555 [Verbose] > │ let rec method0 () : unit =                                                  │
00:02:03 #13556 [Verbose] > │     let v0 : UH0 = UH0_1                                                     │
00:02:03 #13557 [Verbose] > │     let v1 : UH0 = UH0_0(9, v0)                                              │
00:02:03 #13558 [Verbose] > │     let v2 : UH0 = UH0_0(8, v1)                                              │
00:02:03 #13559 [Verbose] > │     let v3 : UH0 = UH0_0(7, v2)                                              │
00:02:03 #13560 [Verbose] > │     let v4 : UH0 = UH0_0(6, v3)                                              │
00:02:03 #13561 [Verbose] > │     let v5 : UH0 = UH0_0(5, v4)                                              │
00:02:03 #13562 [Verbose] > │     let v6 : UH0 = UH0_0(4, v5)                                              │
00:02:03 #13563 [Verbose] > │     let v7 : UH0 = UH0_0(3, v6)                                              │
00:02:03 #13564 [Verbose] > │     let v8 : UH0 = UH0_0(2, v7)                                              │
00:02:03 #13565 [Verbose] > │     let v9 : UH0 = UH0_0(1, v8)                                              │
00:02:03 #13566 [Verbose] > │     let v10 : UH0 = UH0_0(0, v9)                                             │
00:02:03 #13567 [Verbose] > │     let v11 : string = $"%A{v10}"                                            │
00:02:03 #13568 [Verbose] > │     System.Console.WriteLine v11                                             │
00:02:03 #13569 [Verbose] > │     let v100 : UH0 = UH0_1                                                   │
00:02:03 #13570 [Verbose] > │     let v101 : UH0 = UH0_0(9, v100)                                          │
00:02:03 #13571 [Verbose] > │     let v102 : UH0 = UH0_0(8, v101)                                          │
00:02:03 #13572 [Verbose] > │     let v103 : UH0 = UH0_0(7, v102)                                          │
00:02:03 #13573 [Verbose] > │     let v104 : UH0 = UH0_0(6, v103)                                          │
00:02:03 #13574 [Verbose] > │     let v105 : UH0 = UH0_0(5, v104)                                          │
00:02:03 #13575 [Verbose] > │     let v106 : UH0 = UH0_0(4, v105)                                          │
00:02:03 #13576 [Verbose] > │     let v107 : UH0 = UH0_0(3, v106)                                          │
00:02:03 #13577 [Verbose] > │     let v108 : UH0 = UH0_0(2, v107)                                          │
00:02:03 #13578 [Verbose] > │     let v109 : UH0 = UH0_0(1, v108)                                          │
00:02:03 #13579 [Verbose] > │     let v110 : UH0 = UH0_0(0, v109)                                          │
00:02:03 #13580 [Verbose] > │     let v111 : UH0 = UH0_1                                                   │
00:02:03 #13581 [Verbose] > │     let v112 : UH0 = UH0_0(9, v111)                                          │
00:02:03 #13582 [Verbose] > │     let v113 : UH0 = UH0_0(8, v112)                                          │
00:02:03 #13583 [Verbose] > │     let v114 : UH0 = UH0_0(7, v113)                                          │
00:02:03 #13584 [Verbose] > │     let v115 : UH0 = UH0_0(6, v114)                                          │
00:02:03 #13585 [Verbose] > │     let v116 : UH0 = UH0_0(5, v115)                                          │
00:02:03 #13586 [Verbose] > │     let v117 : UH0 = UH0_0(4, v116)                                          │
00:02:03 #13587 [Verbose] > │     let v118 : UH0 = UH0_0(3, v117)                                          │
00:02:03 #13588 [Verbose] > │     let v119 : UH0 = UH0_0(2, v118)                                          │
00:02:03 #13589 [Verbose] > │     let v120 : UH0 = UH0_0(1, v119)                                          │
00:02:03 #13590 [Verbose] > │     let v121 : UH0 = UH0_0(0, v120)                                          │
00:02:03 #13591 [Verbose] > │     let v122 : string = $"__expect / actual: %A{v110} / expected: %A{v121}"  │
00:02:03 #13592 [Verbose] > │     ()                                                                       │
00:02:03 #13593 [Verbose] > │ method0()                                                                    │
00:02:03 #13594 [Verbose] > │                                                                              │
00:02:03 #13595 [Verbose] > │ UH0_0                                                                        │
00:02:03 #13596 [Verbose] > │   (0,                                                                        │
00:02:03 #13597 [Verbose] > │    UH0_0                                                                     │
00:02:03 #13598 [Verbose] > │      (1,                                                                     │
00:02:03 #13599 [Verbose] > │       UH0_0                                                                  │
00:02:03 #13600 [Verbose] > │         (2,                                                                  │
00:02:03 #13601 [Verbose] > │          UH0_0                                                               │
00:02:03 #13602 [Verbose] > │            (3,                                                               │
00:02:03 #13603 [Verbose] > │             UH0_0                                                            │
00:02:03 #13604 [Verbose] > │               (4, UH0_0 (5, UH0_0 (6, UH0_0 (7, UH0_0 (8, UH0_0 (9,          │
00:02:03 #13605 [Verbose] > │ UH0_1))))))))))                                                              │
00:02:03 #13606 [Verbose] > │                                                                              │
00:02:03 #13607 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:03 #13608 [Verbose] >
00:02:03 #13609 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:03 #13610 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:03 #13611 [Verbose] > │ ## from_array                                                                │
00:02:03 #13612 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:03 #13613 [Verbose] >
00:02:03 #13614 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:03 #13615 [Verbose] > inl from_array forall dim {number; int} el. (array : a dim el) : seq dim el =
00:02:03 #13616 [Verbose] >     fun n =>
00:02:03 #13617 [Verbose] >         if n >= length array
00:02:03 #13618 [Verbose] >         then None
00:02:03 #13619 [Verbose] >         else index array n |> Some
00:02:03 #13620 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-3244-4432-464882a64c19/main.spi
00:02:03 #13621 [Verbose] > [NbConvertApp] Writing 284270 bytes to file_system.dib.html
00:02:03 #13622 [Verbose] >
00:02:03 #13623 [Verbose] > ╭─[ 153.00ms - stdout ]────────────────────────────────────────────────────────╮
00:02:03 #13624 [Verbose] > │ ()                                                                           │
00:02:03 #13625 [Verbose] > │                                                                              │
00:02:03 #13626 [Verbose] > │                                                                              │
00:02:03 #13627 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:03 #13628 [Verbose] >
00:02:03 #13629 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:03 #13630 [Verbose] > // // test
00:02:03 #13631 [Verbose] >
00:02:03 #13632 [Verbose] > a ;[[ 1; 2; 3 ]]
00:02:03 #13633 [Verbose] > |> from_array
00:02:03 #13634 [Verbose] > |> try_item 1i32
00:02:03 #13635 [Verbose] > |> _assert_eq (Some 2i32)
00:02:03 #13636 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-3259-5965-514855d8403f/main.spi
00:02:03 #13637 [Verbose] >
00:02:03 #13638 [Verbose] > ╭─[ 221.41ms - stdout ]────────────────────────────────────────────────────────╮
00:02:03 #13639 [Verbose] > │ type [<Struct>] US0 =                                                        │
00:02:03 #13640 [Verbose] > │     | US0_0                                                                  │
00:02:03 #13641 [Verbose] > │     | US0_1 of f1_0 : int32                                                  │
00:02:03 #13642 [Verbose] > │ let rec method1 (v0 : (int32 [])) : (int32 []) =                             │
00:02:03 #13643 [Verbose] > │     v0                                                                       │
00:02:03 #13644 [Verbose] > │ and method2 (v0 : bool) : bool =                                             │
00:02:03 #13645 [Verbose] > │     v0                                                                       │
00:02:03 #13646 [Verbose] > │ and method0 () : unit =                                                      │
00:02:03 #13647 [Verbose] > │     let v0 : (int32 []) = [|1; 2; 3|]                                        │
00:02:03 #13648 [Verbose] > │     let v1 : (int32 []) = method1(v0)                                        │
00:02:03 #13649 [Verbose] > │     let v2 : int32 = v1.Length                                               │
00:02:03 #13650 [Verbose] > │     let v3 : bool = 1 >= v2                                                  │
00:02:03 #13651 [Verbose] > │     let v7 : US0 =                                                           │
00:02:03 #13652 [Verbose] > │         if v3 then                                                           │
00:02:03 #13653 [Verbose] > │             US0_0                                                            │
00:02:03 #13654 [Verbose] > │         else                                                                 │
00:02:03 #13655 [Verbose] > │             let v5 : int32 = v1.[int 1]                                      │
00:02:03 #13656 [Verbose] > │             US0_1(v5)                                                        │
00:02:03 #13657 [Verbose] > │     let v8 : string = $"%A{v7}"                                              │
00:02:03 #13658 [Verbose] > │     System.Console.WriteLine v8                                              │
00:02:03 #13659 [Verbose] > │     let v12 : bool =                                                         │
00:02:03 #13660 [Verbose] > │         match v7 with                                                        │
00:02:03 #13661 [Verbose] > │         | US0_1(v10) -> (* Some *)                                           │
00:02:03 #13662 [Verbose] > │             let v11 : bool = v10 = 2                                         │
00:02:03 #13663 [Verbose] > │             v11                                                              │
00:02:03 #13664 [Verbose] > │         | _ ->                                                               │
00:02:03 #13665 [Verbose] > │             false                                                            │
00:02:03 #13666 [Verbose] > │     let v14 : bool =                                                         │
00:02:03 #13667 [Verbose] > │         if v12 then                                                          │
00:02:03 #13668 [Verbose] > │             true                                                             │
00:02:03 #13669 [Verbose] > │         else                                                                 │
00:02:03 #13670 [Verbose] > │             method2(v12)                                                     │
00:02:03 #13671 [Verbose] > │     let v15 : US0 = US0_1(2)                                                 │
00:02:03 #13672 [Verbose] > │     let v16 : string = $"__expect / actual: %A{v7} / expected: %A{v15}"      │
00:02:03 #13673 [Verbose] > │     let v17 : bool = v14 = false                                             │
00:02:03 #13674 [Verbose] > │     if v17 then                                                              │
00:02:03 #13675 [Verbose] > │         failwith<unit> v16                                                   │
00:02:03 #13676 [Verbose] > │ method0()                                                                    │
00:02:03 #13677 [Verbose] > │                                                                              │
00:02:03 #13678 [Verbose] > │ US0_1 2                                                                      │
00:02:03 #13679 [Verbose] > │                                                                              │
00:02:03 #13680 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:03 #13681 [Verbose] >
00:02:03 #13682 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:03 #13683 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:03 #13684 [Verbose] > │ ## to_array                                                                  │
00:02:03 #13685 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:03 #13686 [Verbose] >
00:02:03 #13687 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:03 #13688 [Verbose] > inl to_array seq =
00:02:03 #13689 [Verbose] >     inl ar = a ;[[]] |> mut
00:02:03 #13690 [Verbose] >     ((), seq)
00:02:03 #13691 [Verbose] >     ||> fold fun _ x =>
00:02:03 #13692 [Verbose] >         ar <- *ar /@ a ;[[x]]
00:02:03 #13693 [Verbose] >     *ar
00:02:03 #13694 [Verbose] >
00:02:03 #13695 [Verbose] > inl to_array_ seq =
00:02:03 #13696 [Verbose] >     inl ar = a ;[[]] |> mut
00:02:03 #13697 [Verbose] >     ((), seq)
00:02:03 #13698 [Verbose] >     ||> fold_ fun _ x =>
00:02:03 #13699 [Verbose] >         ar <- *ar /@ a ;[[x]]
00:02:03 #13700 [Verbose] >     *ar
00:02:03 #13701 [Debug] executeAsync / exitCode: 0 / output.Length: 14954
00:02:03 #13702 [Debug] main / executeCommand / exitCode: 0
00:02:03 #13703 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 physics.dib""
  WorkingDirectory = None
  CancellationToken = Some System.Threading.CancellationToken
  OnLine = None }
00:02:03 #13704 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-3282-8248-8208dc9c6d15/main.spi
00:02:03 #13705 [Verbose] >
00:02:03 #13706 [Verbose] > ╭─[ 138.80ms - stdout ]────────────────────────────────────────────────────────╮
00:02:03 #13707 [Verbose] > │ ()                                                                           │
00:02:03 #13708 [Verbose] > │                                                                              │
00:02:03 #13709 [Verbose] > │                                                                              │
00:02:03 #13710 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:03 #13711 [Verbose] >
00:02:03 #13712 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:03 #13713 [Verbose] > // // test
00:02:03 #13714 [Verbose] >
00:02:03 #13715 [Verbose] > listm.init 10i32 id
00:02:03 #13716 [Verbose] > |> from_list
00:02:03 #13717 [Verbose] > |> fun (x : i32 -> _) => x
00:02:03 #13718 [Verbose] > |> to_array
00:02:03 #13719 [Verbose] > |> _assert_eq (a ;[[ 0; 1; 2; 3; 4; 5; 6; 7; 8; 9 ]] : _ i32 _)
00:02:03 #13720 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-3296-9653-9c358ba424df/main.spi
00:02:04 #13721 [Verbose] >
00:02:04 #13722 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:04 #13723 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:04 #13724 [Verbose] > │ # rust                                                                       │
00:02:04 #13725 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:04 #13726 [Verbose] >
00:02:04 #13727 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:04 #13728 [Verbose] > // // test
00:02:04 #13729 [Verbose] >
00:02:04 #13730 [Verbose] > open testing
00:02:04 #13731 [Verbose] >
00:02:04 #13732 [Verbose] > ╭─[ 507.44ms - stdout ]────────────────────────────────────────────────────────╮
00:02:04 #13733 [Verbose] > │ type Mut0 = {mutable l0 : (int32 [])}                                        │
00:02:04 #13734 [Verbose] > │ and Mut1 = {mutable l0 : int32}                                              │
00:02:04 #13735 [Verbose] > │ let rec method1 (v0 : (int32 [])) : (int32 []) =                             │
00:02:04 #13736 [Verbose] > │     v0                                                                       │
00:02:04 #13737 [Verbose] > │ and method2 (v0 : int32, v1 : Mut1) : bool =                                 │
00:02:04 #13738 [Verbose] > │     let v2 : int32 = v1.l0                                                   │
00:02:04 #13739 [Verbose] > │     let v3 : bool = v2 < v0                                                  │
00:02:04 #13740 [Verbose] > │     v3                                                                       │
00:02:04 #13741 [Verbose] > │ and method3 (v0 : (int32 []), v1 : (int32 []), v2 : int32) : bool =          │
00:02:04 #13742 [Verbose] > │     let v3 : int32 = v0.Length                                               │
00:02:04 #13743 [Verbose] > │     let v4 : bool = v2 < v3                                                  │
00:02:04 #13744 [Verbose] > │     if v4 then                                                               │
00:02:04 #13745 [Verbose] > │         let v5 : int32 = v0.[int v2]                                         │
00:02:04 #13746 [Verbose] > │         let v6 : int32 = v1.[int v2]                                         │
00:02:04 #13747 [Verbose] > │         let v7 : bool = v5 = v6                                              │
00:02:04 #13748 [Verbose] > │         if v7 then                                                           │
00:02:04 #13749 [Verbose] > │             let v8 : int32 = v2 + 1                                          │
00:02:04 #13750 [Verbose] > │             method3(v0, v1, v8)                                              │
00:02:04 #13751 [Verbose] > │         else                                                                 │
00:02:04 #13752 [Verbose] > │             false                                                            │
00:02:04 #13753 [Verbose] > │     else                                                                     │
00:02:04 #13754 [Verbose] > │         true                                                                 │
00:02:04 #13755 [Verbose] > │ and method4 (v0 : bool) : bool =                                             │
00:02:04 #13756 [Verbose] > │     v0                                                                       │
00:02:04 #13757 [Verbose] > │ and method0 () : unit =                                                      │
00:02:04 #13758 [Verbose] > │     let v0 : (int32 []) = [||]                                               │
00:02:04 #13759 [Verbose] > │     let v1 : (int32 []) = method1(v0)                                        │
00:02:04 #13760 [Verbose] > │     let v2 : Mut0 = {l0 = v1} : Mut0                                         │
00:02:04 #13761 [Verbose] > │     let v3 : (int32 []) = v2.l0                                              │
00:02:04 #13762 [Verbose] > │     let v4 : (int32 []) = [|0|]                                              │
00:02:04 #13763 [Verbose] > │     let v5 : (int32 []) = method1(v4)                                        │
00:02:04 #13764 [Verbose] > │     let v6 : int32 = v3.Length                                               │
00:02:04 #13765 [Verbose] > │     let v7 : int32 = v5.Length                                               │
00:02:04 #13766 [Verbose] > │     let v8 : int32 = v6 + v7                                                 │
00:02:04 #13767 [Verbose] > │     let v9 : (int32 []) = Array.zeroCreate<int32> (v8)                       │
00:02:04 #13768 [Verbose] > │     let v10 : Mut1 = {l0 = 0} : Mut1                                         │
00:02:04 #13769 [Verbose] > │     while method2(v8, v10) do                                                │
00:02:04 #13770 [Verbose] > │         let v12 : int32 = v10.l0                                             │
00:02:04 #13771 [Verbose] > │         let v13 : bool = v12 < v6                                            │
00:02:04 #13772 [Verbose] > │         let v17 : int32 =                                                    │
00:02:04 #13773 [Verbose] > │             if v13 then                                                      │
00:02:04 #13774 [Verbose] > │                 let v14 : int32 = v3.[int v12]                               │
00:02:04 #13775 [Verbose] > │                 v14                                                          │
00:02:04 #13776 [Verbose] > │             else                                                             │
00:02:04 #13777 [Verbose] > │                 let v15 : int32 = v12 - v6                                   │
00:02:04 #13778 [Verbose] > │                 let v16 : int32 = v5.[int v15]                               │
00:02:04 #13779 [Verbose] > │                 v16                                                          │
00:02:04 #13780 [Verbose] > │         v9.[int v12] <- v17                                                  │
00:02:04 #13781 [Verbose] > │         let v18 : int32 = v12 + 1                                            │
00:02:04 #13782 [Verbose] > │         v10.l0 <- v18                                                        │
00:02:04 #13783 [Verbose] > │         ()                                                                   │
00:02:04 #13784 [Verbose] > │     v2.l0 <- v9                                                              │
00:02:04 #13785 [Verbose] > │     let v19 : (int32 []) = v2.l0                                             │
00:02:04 #13786 [Verbose] > │     let v20 : (int32 []) = [|1|]                                             │
00:02:04 #13787 [Verbose] > │     let v21 : (int32 []) = method1(v20)                                      │
00:02:04 #13788 [Verbose] > │     let v22 : int32 = v19.Length                                             │
00:02:04 #13789 [Verbose] > │     let v23 : int32 = v21.Length                                             │
00:02:04 #13790 [Verbose] > │     let v24 : int32 = v22 + v23                                              │
00:02:04 #13791 [Verbose] > │     let v25 : (int32 []) = Array.zeroCreate<int32> (v24)                     │
00:02:04 #13792 [Verbose] > │     let v26 : Mut1 = {l0 = 0} : Mut1                                         │
00:02:04 #13793 [Verbose] > │     while method2(v24, v26) do                                               │
00:02:04 #13794 [Verbose] > │         let v28 : int32 = v26.l0                                             │
00:02:04 #13795 [Verbose] > │         let v29 : bool = v28 < v22                                           │
00:02:04 #13796 [Verbose] > │         let v33 : int32 =                                                    │
00:02:04 #13797 [Verbose] > │             if v29 then                                                      │
00:02:04 #13798 [Verbose] > │                 let v30 : int32 = v19.[int v28]                              │
00:02:04 #13799 [Verbose] > │                 v30                                                          │
00:02:04 #13800 [Verbose] > │             else                                                             │
00:02:04 #13801 [Verbose] > │                 let v31 : int32 = v28 - v22                                  │
00:02:04 #13802 [Verbose] > │                 let v32 : int32 = v21.[int v31]                              │
00:02:04 #13803 [Verbose] > │                 v32                                                          │
00:02:04 #13804 [Verbose] > │         v25.[int v28] <- v33                                                 │
00:02:04 #13805 [Verbose] > │         let v34 : int32 = v28 + 1                                            │
00:02:04 #13806 [Verbose] > │         v26.l0 <- v34                                                        │
00:02:04 #13807 [Verbose] > │         ()                                                                   │
00:02:04 #13808 [Verbose] > │     v2.l0 <- v25                                                             │
00:02:04 #13809 [Verbose] > │     let v35 : (int32 []) = v2.l0                                             │
00:02:04 #13810 [Verbose] > │     let v36 : (int32 []) = [|2|]                                             │
00:02:04 #13811 [Verbose] > │     let v37 : (int32 []) = method1(v36)                                      │
00:02:04 #13812 [Verbose] > │     let v38 : int32 = v35.Length                                             │
00:02:04 #13813 [Verbose] > │     let v39 : int32 = v37.Length                                             │
00:02:04 #13814 [Verbose] > │     let v40 : int32 = v38 + v39                                              │
00:02:04 #13815 [Verbose] > │     let v41 : (int32 []) = Array.zeroCreate<int32> (v40)                     │
00:02:04 #13816 [Verbose] > │     let v42 : Mut1 = {l0 = 0} : Mut1                                         │
00:02:04 #13817 [Verbose] > │     while method2(v40, v42) do                                               │
00:02:04 #13818 [Verbose] > │         let v44 : int32 = v42.l0                                             │
00:02:04 #13819 [Verbose] > │         let v45 : bool = v44 < v38                                           │
00:02:04 #13820 [Verbose] > │         let v49 : int32 =                                                    │
00:02:04 #13821 [Verbose] > │             if v45 then                                                      │
00:02:04 #13822 [Verbose] > │                 let v46 : int32 = v35.[int v44]                              │
00:02:04 #13823 [Verbose] > │                 v46                                                          │
00:02:04 #13824 [Verbose] > │             else                                                             │
00:02:04 #13825 [Verbose] > │                 let v47 : int32 = v44 - v38                                  │
00:02:04 #13826 [Verbose] > │                 let v48 : int32 = v37.[int v47]                              │
00:02:04 #13827 [Verbose] > │                 v48                                                          │
00:02:04 #13828 [Verbose] > │         v41.[int v44] <- v49                                                 │
00:02:04 #13829 [Verbose] > │         let v50 : int32 = v44 + 1                                            │
00:02:04 #13830 [Verbose] > │         v42.l0 <- v50                                                        │
00:02:04 #13831 [Verbose] > │         ()                                                                   │
00:02:04 #13832 [Verbose] > │     v2.l0 <- v41                                                             │
00:02:04 #13833 [Verbose] > │     let v51 : (int32 []) = v2.l0                                             │
00:02:04 #13834 [Verbose] > │     let v52 : (int32 []) = [|3|]                                             │
00:02:04 #13835 [Verbose] > │     let v53 : (int32 []) = method1(v52)                                      │
00:02:04 #13836 [Verbose] > │     let v54 : int32 = v51.Length                                             │
00:02:04 #13837 [Verbose] > │     let v55 : int32 = v53.Length                                             │
00:02:04 #13838 [Verbose] > │     let v56 : int32 = v54 + v55                                              │
00:02:04 #13839 [Verbose] > │     let v57 : (int32 []) = Array.zeroCreate<int32> (v56)                     │
00:02:04 #13840 [Verbose] > │     let v58 : Mut1 = {l0 = 0} : Mut1                                         │
00:02:04 #13841 [Verbose] > │     while method2(v56, v58) do                                               │
00:02:04 #13842 [Verbose] > │         let v60 : int32 = v58.l0                                             │
00:02:04 #13843 [Verbose] > │         let v61 : bool = v60 < v54                                           │
00:02:04 #13844 [Verbose] > │         let v65 : int32 =                                                    │
00:02:04 #13845 [Verbose] > │             if v61 then                                                      │
00:02:04 #13846 [Verbose] > │                 let v62 : int32 = v51.[int v60]                              │
00:02:04 #13847 [Verbose] > │                 v62                                                          │
00:02:04 #13848 [Verbose] > │             else                                                             │
00:02:04 #13849 [Verbose] > │                 let v63 : int32 = v60 - v54                                  │
00:02:04 #13850 [Verbose] > │                 let v64 : int32 = v53.[int v63]                              │
00:02:04 #13851 [Verbose] > │                 v64                                                          │
00:02:04 #13852 [Verbose] > │         v57.[int v60] <- v65                                                 │
00:02:04 #13853 [Verbose] > │         let v66 : int32 = v60 + 1                                            │
00:02:04 #13854 [Verbose] > │         v58.l0 <- v66                                                        │
00:02:04 #13855 [Verbose] > │         ()                                                                   │
00:02:04 #13856 [Verbose] > │     v2.l0 <- v57                                                             │
00:02:04 #13857 [Verbose] > │     let v67 : (int32 []) = v2.l0                                             │
00:02:04 #13858 [Verbose] > │     let v68 : (int32 []) = [|4|]                                             │
00:02:04 #13859 [Verbose] > │     let v69 : (int32 []) = method1(v68)                                      │
00:02:04 #13860 [Verbose] > │     let v70 : int32 = v67.Length                                             │
00:02:04 #13861 [Verbose] > │     let v71 : int32 = v69.Length                                             │
00:02:04 #13862 [Verbose] > │     let v72 : int32 = v70 + v71                                              │
00:02:04 #13863 [Verbose] > │     let v73 : (int32 []) = Array.zeroCreate<int32> (v72)                     │
00:02:04 #13864 [Verbose] > │     let v74 : Mut1 = {l0 = 0} : Mut1                                         │
00:02:04 #13865 [Verbose] > │     while method2(v72, v74) do                                               │
00:02:04 #13866 [Verbose] > │         let v76 : int32 = v74.l0                                             │
00:02:04 #13867 [Verbose] > │         let v77 : bool = v76 < v70                                           │
00:02:04 #13868 [Verbose] > │         let v81 : int32 =                                                    │
00:02:04 #13869 [Verbose] > │             if v77 then                                                      │
00:02:04 #13870 [Verbose] > │                 let v78 : int32 = v67.[int v76]                              │
00:02:04 #13871 [Verbose] > │                 v78                                                          │
00:02:04 #13872 [Verbose] > │             else                                                             │
00:02:04 #13873 [Verbose] > │                 let v79 : int32 = v76 - v70                                  │
00:02:04 #13874 [Verbose] > │                 let v80 : int32 = v69.[int v79]                              │
00:02:04 #13875 [Verbose] > │                 v80                                                          │
00:02:04 #13876 [Verbose] > │         v73.[int v76] <- v81                                                 │
00:02:04 #13877 [Verbose] > │         let v82 : int32 = v76 + 1                                            │
00:02:04 #13878 [Verbose] > │         v74.l0 <- v82                                                        │
00:02:04 #13879 [Verbose] > │         ()                                                                   │
00:02:04 #13880 [Verbose] > │     v2.l0 <- v73                                                             │
00:02:04 #13881 [Verbose] > │     let v83 : (int32 []) = v2.l0                                             │
00:02:04 #13882 [Verbose] > │     let v84 : (int32 []) = [|5|]                                             │
00:02:04 #13883 [Verbose] > │     let v85 : (int32 []) = method1(v84)                                      │
00:02:04 #13884 [Verbose] > │     let v86 : int32 = v83.Length                                             │
00:02:04 #13885 [Verbose] > │     let v87 : int32 = v85.Length                                             │
00:02:04 #13886 [Verbose] > │     let v88 : int32 = v86 + v87                                              │
00:02:04 #13887 [Verbose] > │     let v89 : (int32 []) = Array.zeroCreate<int32> (v88)                     │
00:02:04 #13888 [Verbose] > │     let v90 : Mut1 = {l0 = 0} : Mut1                                         │
00:02:04 #13889 [Verbose] > │     while method2(v88, v90) do                                               │
00:02:04 #13890 [Verbose] > │         let v92 : int32 = v90.l0                                             │
00:02:04 #13891 [Verbose] > │         let v93 : bool = v92 < v86                                           │
00:02:04 #13892 [Verbose] > │         let v97 : int32 =                                                    │
00:02:04 #13893 [Verbose] > │             if v93 then                                                      │
00:02:04 #13894 [Verbose] > │                 let v94 : int32 = v83.[int v92]                              │
00:02:04 #13895 [Verbose] > │                 v94                                                          │
00:02:04 #13896 [Verbose] > │             else                                                             │
00:02:04 #13897 [Verbose] > │                 let v95 : int32 = v92 - v86                                  │
00:02:04 #13898 [Verbose] > │                 let v96 : int32 = v85.[int v95]                              │
00:02:04 #13899 [Verbose] > │                 v96                                                          │
00:02:04 #13900 [Verbose] > │         v89.[int v92] <- v97                                                 │
00:02:04 #13901 [Verbose] > │         let v98 : int32 = v92 + 1                                            │
00:02:04 #13902 [Verbose] > │         v90.l0 <- v98                                                        │
00:02:04 #13903 [Verbose] > │         ()                                                                   │
00:02:04 #13904 [Verbose] > │     v2.l0 <- v89                                                             │
00:02:04 #13905 [Verbose] > │     let v99 : (int32 []) = v2.l0                                             │
00:02:04 #13906 [Verbose] > │     let v100 : (int32 []) = [|6|]                                            │
00:02:04 #13907 [Verbose] > │     let v101 : (int32 []) = method1(v100)                                    │
00:02:04 #13908 [Verbose] > │     let v102 : int32 = v99.Length                                            │
00:02:04 #13909 [Verbose] > │     let v103 : int32 = v101.Length                                           │
00:02:04 #13910 [Verbose] > │     let v104 : int32 = v102 + v103                                           │
00:02:04 #13911 [Verbose] > │     let v105 : (int32 []) = Array.zeroCreate<int32> (v104)                   │
00:02:04 #13912 [Verbose] > │     let v106 : Mut1 = {l0 = 0} : Mut1                                        │
00:02:04 #13913 [Verbose] > │     while method2(v104, v106) do                                             │
00:02:04 #13914 [Verbose] > │         let v108 : int32 = v106.l0                                           │
00:02:04 #13915 [Verbose] > │         let v109 : bool = v108 < v102                                        │
00:02:04 #13916 [Verbose] > │         let v113 : int32 =                                                   │
00:02:04 #13917 [Verbose] > │             if v109 then                                                     │
00:02:04 #13918 [Verbose] > │                 let v110 : int32 = v99.[int v108]                            │
00:02:04 #13919 [Verbose] > │                 v110                                                         │
00:02:04 #13920 [Verbose] > │             else                                                             │
00:02:04 #13921 [Verbose] > │                 let v111 : int32 = v108 - v102                               │
00:02:04 #13922 [Verbose] > │                 let v112 : int32 = v101.[int v111]                           │
00:02:04 #13923 [Verbose] > │                 v112                                                         │
00:02:04 #13924 [Verbose] > │         v105.[int v108] <- v113                                              │
00:02:04 #13925 [Verbose] > │         let v114 : int32 = v108 + 1                                          │
00:02:04 #13926 [Verbose] > │         v106.l0 <- v114                                                      │
00:02:04 #13927 [Verbose] > │         ()                                                                   │
00:02:04 #13928 [Verbose] > │     v2.l0 <- v105                                                            │
00:02:04 #13929 [Verbose] > │     let v115 : (int32 []) = v2.l0                                            │
00:02:04 #13930 [Verbose] > │     let v116 : (int32 []) = [|7|]                                            │
00:02:04 #13931 [Verbose] > │     let v117 : (int32 []) = method1(v116)                                    │
00:02:04 #13932 [Verbose] > │     let v118 : int32 = v115.Length                                           │
00:02:04 #13933 [Verbose] > │     let v119 : int32 = v117.Length                                           │
00:02:04 #13934 [Verbose] > │     let v120 : int32 = v118 + v119                                           │
00:02:04 #13935 [Verbose] > │     let v121 : (int32 []) = Array.zeroCreate<int32> (v120)                   │
00:02:04 #13936 [Verbose] > │     let v122 : Mut1 = {l0 = 0} : Mut1                                        │
00:02:04 #13937 [Verbose] > │     while method2(v120, v122) do                                             │
00:02:04 #13938 [Verbose] > │         let v124 : int32 = v122.l0                                           │
00:02:04 #13939 [Verbose] > │         let v125 : bool = v124 < v118                                        │
00:02:04 #13940 [Verbose] > │         let v129 : int32 =                                                   │
00:02:04 #13941 [Verbose] > │             if v125 then                                                     │
00:02:04 #13942 [Verbose] > │                 let v126 : int32 = v115.[int v124]                           │
00:02:04 #13943 [Verbose] > │                 v126                                                         │
00:02:04 #13944 [Verbose] > │             else                                                             │
00:02:04 #13945 [Verbose] > │                 let v127 : int32 = v124 - v118                               │
00:02:04 #13946 [Verbose] > │                 let v128 : int32 = v117.[int v127]                           │
00:02:04 #13947 [Verbose] > │                 v128                                                         │
00:02:04 #13948 [Verbose] > │         v121.[int v124] <- v129                                              │
00:02:04 #13949 [Verbose] > │         let v130 : int32 = v124 + 1                                          │
00:02:04 #13950 [Verbose] > │         v122.l0 <- v130                                                      │
00:02:04 #13951 [Verbose] > │         ()                                                                   │
00:02:04 #13952 [Verbose] > │     v2.l0 <- v121                                                            │
00:02:04 #13953 [Verbose] > │     let v131 : (int32 []) = v2.l0                                            │
00:02:04 #13954 [Verbose] > │     let v132 : (int32 []) = [|8|]                                            │
00:02:04 #13955 [Verbose] > │     let v133 : (int32 []) = method1(v132)                                    │
00:02:04 #13956 [Verbose] > │     let v134 : int32 = v131.Length                                           │
00:02:04 #13957 [Verbose] > │     let v135 : int32 = v133.Length                                           │
00:02:04 #13958 [Verbose] > │     let v136 : int32 = v134 + v135                                           │
00:02:04 #13959 [Verbose] > │     let v137 : (int32 []) = Array.zeroCreate<int32> (v136)                   │
00:02:04 #13960 [Verbose] > │     let v138 : Mut1 = {l0 = 0} : Mut1                                        │
00:02:04 #13961 [Verbose] > │     while method2(v136, v138) do                                             │
00:02:04 #13962 [Verbose] > │         let v140 : int32 = v138.l0                                           │
00:02:04 #13963 [Verbose] > │         let v141 : bool = v140 < v134                                        │
00:02:04 #13964 [Verbose] > │         let v145 : int32 =                                                   │
00:02:04 #13965 [Verbose] > │             if v141 then                                                     │
00:02:04 #13966 [Verbose] > │                 let v142 : int32 = v131.[int v140]                           │
00:02:04 #13967 [Verbose] > │                 v142                                                         │
00:02:04 #13968 [Verbose] > │             else                                                             │
00:02:04 #13969 [Verbose] > │                 let v143 : int32 = v140 - v134                               │
00:02:04 #13970 [Verbose] > │                 let v144 : int32 = v133.[int v143]                           │
00:02:04 #13971 [Verbose] > │                 v144                                                         │
00:02:04 #13972 [Verbose] > │         v137.[int v140] <- v145                                              │
00:02:04 #13973 [Verbose] > │         let v146 : int32 = v140 + 1                                          │
00:02:04 #13974 [Verbose] > │         v138.l0 <- v146                                                      │
00:02:04 #13975 [Verbose] > │         ()                                                                   │
00:02:04 #13976 [Verbose] > │     v2.l0 <- v137                                                            │
00:02:04 #13977 [Verbose] > │     let v147 : (int32 []) = v2.l0                                            │
00:02:04 #13978 [Verbose] > │     let v148 : (int32 []) = [|9|]                                            │
00:02:04 #13979 [Verbose] > │     let v149 : (int32 []) = method1(v148)                                    │
00:02:04 #13980 [Verbose] > │     let v150 : int32 = v147.Length                                           │
00:02:04 #13981 [Verbose] > │     let v151 : int32 = v149.Length                                           │
00:02:04 #13982 [Verbose] > │     let v152 : int32 = v150 + v151                                           │
00:02:04 #13983 [Verbose] > │     let v153 : (int32 []) = Array.zeroCreate<int32> (v152)                   │
00:02:04 #13984 [Verbose] > │     let v154 : Mut1 = {l0 = 0} : Mut1                                        │
00:02:04 #13985 [Verbose] > │     while method2(v152, v154) do                                             │
00:02:04 #13986 [Verbose] > │         let v156 : int32 = v154.l0                                           │
00:02:04 #13987 [Verbose] > │         let v157 : bool = v156 < v150                                        │
00:02:04 #13988 [Verbose] > │         let v161 : int32 =                                                   │
00:02:04 #13989 [Verbose] > │             if v157 then                                                     │
00:02:04 #13990 [Verbose] > │                 let v158 : int32 = v147.[int v156]                           │
00:02:04 #13991 [Verbose] > │                 v158                                                         │
00:02:04 #13992 [Verbose] > │             else                                                             │
00:02:04 #13993 [Verbose] > │                 let v159 : int32 = v156 - v150                               │
00:02:04 #13994 [Verbose] > │                 let v160 : int32 = v149.[int v159]                           │
00:02:04 #13995 [Verbose] > │                 v160                                                         │
00:02:04 #13996 [Verbose] > │         v153.[int v156] <- v161                                              │
00:02:04 #13997 [Verbose] > │         let v162 : int32 = v156 + 1                                          │
00:02:04 #13998 [Verbose] > │         v154.l0 <- v162                                                      │
00:02:04 #13999 [Verbose] > │         ()                                                                   │
00:02:04 #14000 [Verbose] > │     v2.l0 <- v153                                                            │
00:02:04 #14001 [Verbose] > │     let v163 : (int32 []) = v2.l0                                            │
00:02:04 #14002 [Verbose] > │     let v164 : (int32 []) = [|0; 1; 2; 3; 4; 5; 6; 7; 8; 9|]                 │
00:02:04 #14003 [Verbose] > │     let v165 : (int32 []) = method1(v164)                                    │
00:02:04 #14004 [Verbose] > │     let v166 : string = $"%A{v163}"                                          │
00:02:04 #14005 [Verbose] > │     System.Console.WriteLine v166                                            │
00:02:04 #14006 [Verbose] > │     let v167 : int32 = v163.Length                                           │
00:02:04 #14007 [Verbose] > │     let v168 : int32 = v165.Length                                           │
00:02:04 #14008 [Verbose] > │     let v169 : bool = v167 = v168                                            │
00:02:04 #14009 [Verbose] > │     let v170 : bool = v169 <> true                                           │
00:02:04 #14010 [Verbose] > │     let v173 : bool =                                                        │
00:02:04 #14011 [Verbose] > │         if v170 then                                                         │
00:02:04 #14012 [Verbose] > │             false                                                            │
00:02:04 #14013 [Verbose] > │         else                                                                 │
00:02:04 #14014 [Verbose] > │             let v171 : int32 = 0                                             │
00:02:04 #14015 [Verbose] > │             method3(v163, v165, v171)                                        │
00:02:04 #14016 [Verbose] > │     let v175 : bool =                                                        │
00:02:04 #14017 [Verbose] > │         if v173 then                                                         │
00:02:04 #14018 [Verbose] > │             true                                                             │
00:02:04 #14019 [Verbose] > │         else                                                                 │
00:02:04 #14020 [Verbose] > │             method4(v173)                                                    │
00:02:04 #14021 [Verbose] > │     let v176 : string = $"__expect / actual: %A{v163} / expected: %A{v165}"  │
00:02:04 #14022 [Verbose] > │     let v177 : bool = v175 = false                                           │
00:02:04 #14023 [Verbose] > │     if v177 then                                                             │
00:02:04 #14024 [Verbose] > │         failwith<unit> v176                                                  │
00:02:04 #14025 [Verbose] > │ method0()                                                                    │
00:02:04 #14026 [Verbose] > │                                                                              │
00:02:04 #14027 [Verbose] > │ [|0; 1; 2; 3; 4; 5; 6; 7; 8; 9|]                                             │
00:02:04 #14028 [Verbose] > │                                                                              │
00:02:04 #14029 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:04 #14030 [Verbose] >
00:02:04 #14031 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:04 #14032 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:04 #14033 [Verbose] > │ ## take_while                                                                │
00:02:04 #14034 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:04 #14035 [Verbose] >
00:02:04 #14036 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:04 #14037 [Verbose] > inl take_while cond seq =
00:02:04 #14038 [Verbose] >     inl rec loop acc i =
00:02:04 #14039 [Verbose] >         match seq i with
00:02:04 #14040 [Verbose] >         | Some st when cond st i => loop (st :: acc) (i + 1)
00:02:04 #14041 [Verbose] >         | _ => acc |> listm.rev
00:02:04 #14042 [Verbose] >     loop [[]] 0
00:02:04 #14043 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-3350-5007-53dee0c719a2/main.spi
00:02:04 #14044 [Verbose] >
00:02:04 #14045 [Verbose] > ╭─[ 194.73ms - stdout ]────────────────────────────────────────────────────────╮
00:02:04 #14046 [Verbose] > │ ()                                                                           │
00:02:04 #14047 [Verbose] > │                                                                              │
00:02:04 #14048 [Verbose] > │                                                                              │
00:02:04 #14049 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:04 #14050 [Verbose] >
00:02:04 #14051 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:04 #14052 [Verbose] > // // test
00:02:04 #14053 [Verbose] >
00:02:04 #14054 [Verbose] > listm.init 10i32 id
00:02:04 #14055 [Verbose] > |> from_list
00:02:04 #14056 [Verbose] > |> take_while (fun n (_ : i32) => n < 5)
00:02:04 #14057 [Verbose] > |> listm'.sum
00:02:04 #14058 [Verbose] > |> _assert_eq 10
00:02:04 #14059 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-3369-6951-6fe6cb2f5ee4/main.spi
00:02:04 #14060 [Verbose] >
00:02:04 #14061 [Verbose] > ╭─[ 144.00ms - stdout ]────────────────────────────────────────────────────────╮
00:02:04 #14062 [Verbose] > │ let rec method0 () : unit =                                                  │
00:02:04 #14063 [Verbose] > │     let v0 : string = $"%A{10}"                                              │
00:02:04 #14064 [Verbose] > │     System.Console.WriteLine v0                                              │
00:02:04 #14065 [Verbose] > │     let v1 : string = $"__expect / actual: %A{10} / expected: %A{10}"        │
00:02:04 #14066 [Verbose] > │     ()                                                                       │
00:02:04 #14067 [Verbose] > │ method0()                                                                    │
00:02:04 #14068 [Verbose] > │                                                                              │
00:02:04 #14069 [Verbose] > │ 10                                                                           │
00:02:04 #14070 [Verbose] > │                                                                              │
00:02:04 #14071 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:04 #14072 [Verbose] >
00:02:04 #14073 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:04 #14074 [Verbose] > // // test
00:02:04 #14075 [Verbose] >
00:02:04 #14076 [Verbose] > stream.new_finite_stream print_and_return 10i32
00:02:04 #14077 [Verbose] > |> flip stream.try_item
00:02:04 #14078 [Verbose] > |> take_while (fun n (_ : i32) => n < 5)
00:02:04 #14079 [Verbose] > |> listm'.sum
00:02:04 #14080 [Verbose] > |> _assert_eq 10
00:02:04 #14081 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-3383-8392-8c111828d964/main.spi
00:02:04 #14082 [Verbose] >
00:02:04 #14083 [Verbose] > ╭─[ 188.77ms - stdout ]────────────────────────────────────────────────────────╮
00:02:04 #14084 [Verbose] > │ let rec method0 () : unit =                                                  │
00:02:04 #14085 [Verbose] > │     printfn $"print_and_return / x: {0}"                                     │
00:02:04 #14086 [Verbose] > │     printfn $"print_and_return / x: {1}"                                     │
00:02:04 #14087 [Verbose] > │     printfn $"print_and_return / x: {1}"                                     │
00:02:04 #14088 [Verbose] > │     printfn $"print_and_return / x: {2}"                                     │
00:02:04 #14089 [Verbose] > │     printfn $"print_and_return / x: {1}"                                     │
00:02:04 #14090 [Verbose] > │     printfn $"print_and_return / x: {2}"                                     │
00:02:04 #14091 [Verbose] > │     printfn $"print_and_return / x: {3}"                                     │
00:02:04 #14092 [Verbose] > │     printfn $"print_and_return / x: {1}"                                     │
00:02:04 #14093 [Verbose] > │     printfn $"print_and_return / x: {2}"                                     │
00:02:04 #14094 [Verbose] > │     printfn $"print_and_return / x: {3}"                                     │
00:02:04 #14095 [Verbose] > │     printfn $"print_and_return / x: {4}"                                     │
00:02:04 #14096 [Verbose] > │     printfn $"print_and_return / x: {1}"                                     │
00:02:04 #14097 [Verbose] > │     printfn $"print_and_return / x: {2}"                                     │
00:02:04 #14098 [Verbose] > │     printfn $"print_and_return / x: {3}"                                     │
00:02:04 #14099 [Verbose] > │     printfn $"print_and_return / x: {4}"                                     │
00:02:04 #14100 [Verbose] > │     printfn $"print_and_return / x: {5}"                                     │
00:02:04 #14101 [Verbose] > │     let v0 : string = $"%A{10}"                                              │
00:02:04 #14102 [Verbose] > │     System.Console.WriteLine v0                                              │
00:02:04 #14103 [Verbose] > │     let v1 : string = $"__expect / actual: %A{10} / expected: %A{10}"        │
00:02:04 #14104 [Verbose] > │     ()                                                                       │
00:02:04 #14105 [Verbose] > │ method0()                                                                    │
00:02:04 #14106 [Verbose] > │                                                                              │
00:02:04 #14107 [Verbose] > │ print_and_return / x: 0                                                      │
00:02:04 #14108 [Verbose] > │ print_and_return / x: 1                                                      │
00:02:04 #14109 [Verbose] > │ print_and_return / x: 1                                                      │
00:02:04 #14110 [Verbose] > │ print_and_return / x: 2                                                      │
00:02:04 #14111 [Verbose] > │ print_and_return / x: 1                                                      │
00:02:04 #14112 [Verbose] > │ print_and_return / x: 2                                                      │
00:02:04 #14113 [Verbose] > │ print_and_return / x: 3                                                      │
00:02:04 #14114 [Verbose] > │ print_and_return / x: 1                                                      │
00:02:04 #14115 [Verbose] > │ print_and_return / x: 2                                                      │
00:02:04 #14116 [Verbose] > │ print_and_return / x: 3                                                      │
00:02:04 #14117 [Verbose] > │ print_and_return / x: 4                                                      │
00:02:04 #14118 [Verbose] > │ print_and_return / x: 1                                                      │
00:02:04 #14119 [Verbose] > │ print_and_return / x: 2                                                      │
00:02:04 #14120 [Verbose] > │ print_and_return / x: 3                                                      │
00:02:04 #14121 [Verbose] > │ print_and_return / x: 4                                                      │
00:02:04 #14122 [Verbose] > │ print_and_return / x: 5                                                      │
00:02:04 #14123 [Verbose] > │ 10                                                                           │
00:02:04 #14124 [Verbose] > │                                                                              │
00:02:04 #14125 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:04 #14126 [Verbose] >
00:02:04 #14127 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:04 #14128 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:04 #14129 [Verbose] > │ ## take_while_                                                               │
00:02:04 #14130 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:04 #14131 [Verbose] >
00:02:04 #14132 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:04 #14133 [Verbose] > inl take_while_ cond seq =
00:02:04 #14134 [Verbose] >     let rec loop acc i =
00:02:04 #14135 [Verbose] >         match seq i with
00:02:04 #14136 [Verbose] >         | Some st when cond st i => loop (st :: acc) (i + 1)
00:02:04 #14137 [Verbose] >         | _ => acc |> listm.rev
00:02:04 #14138 [Verbose] >     loop [[]] 0
00:02:04 #14139 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-3403-0356-0c28be4af7ed/main.spi
00:02:06 #14140 [Verbose] >
00:02:06 #14141 [Verbose] > ╭─[ 1.50s - stdout ]───────────────────────────────────────────────────────────╮
00:02:06 #14142 [Verbose] > │ ()                                                                           │
00:02:06 #14143 [Verbose] > │                                                                              │
00:02:06 #14144 [Verbose] > │                                                                              │
00:02:06 #14145 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:06 #14146 [Verbose] >
00:02:06 #14147 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:06 #14148 [Verbose] > // // test
00:02:06 #14149 [Verbose] >
00:02:06 #14150 [Verbose] > stream.new_infinite_stream_ print_and_return
00:02:06 #14151 [Verbose] > |> flip stream.try_item
00:02:06 #14152 [Verbose] > |> take_while_ (fun n (_ : i32) => n < 5i32)
00:02:06 #14153 [Verbose] > |> listm'.sum
00:02:06 #14154 [Verbose] > |> _assert_eq 10
00:02:06 #14155 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-3553-5367-5778785502db/main.spi
00:02:06 #14156 [Verbose] >
00:02:06 #14157 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:06 #14158 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:06 #14159 [Verbose] > │ # physics                                                                    │
00:02:06 #14160 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:06 #14161 [Verbose] >
00:02:06 #14162 [Verbose] > ╭─[ 274.54ms - stdout ]────────────────────────────────────────────────────────╮
00:02:06 #14163 [Verbose] > │ type UH0 =                                                                   │
00:02:06 #14164 [Verbose] > │     | UH0_0 of int32 * (unit -> UH0)                                         │
00:02:06 #14165 [Verbose] > │     | UH0_1                                                                  │
00:02:06 #14166 [Verbose] > │ and UH1 =                                                                    │
00:02:06 #14167 [Verbose] > │     | UH1_0 of int32 * UH1                                                   │
00:02:06 #14168 [Verbose] > │     | UH1_1                                                                  │
00:02:06 #14169 [Verbose] > │ and [<Struct>] US0 =                                                         │
00:02:06 #14170 [Verbose] > │     | US0_0                                                                  │
00:02:06 #14171 [Verbose] > │     | US0_1 of f1_0 : int32                                                  │
00:02:06 #14172 [Verbose] > │ let rec closure0 (v0 : int32) () : UH0 =                                     │
00:02:06 #14173 [Verbose] > │     let v1 : int32 = v0 + 1                                                  │
00:02:06 #14174 [Verbose] > │     method1(v1)                                                              │
00:02:06 #14175 [Verbose] > │ and method1 (v0 : int32) : UH0 =                                             │
00:02:06 #14176 [Verbose] > │     printfn $"print_and_return / x: {v0}"                                    │
00:02:06 #14177 [Verbose] > │     let v1 : (unit -> UH0) = closure0(v0)                                    │
00:02:06 #14178 [Verbose] > │     UH0_0(v0, v1)                                                            │
00:02:06 #14179 [Verbose] > │ and method3 (v0 : int32, v1 : UH0) : US0 =                                   │
00:02:06 #14180 [Verbose] > │     match v1 with                                                            │
00:02:06 #14181 [Verbose] > │     | UH0_0(v2, v3) -> (* StreamCons *)                                      │
00:02:06 #14182 [Verbose] > │         let v4 : bool = v0 <= 0                                              │
00:02:06 #14183 [Verbose] > │         if v4 then                                                           │
00:02:06 #14184 [Verbose] > │             US0_1(v2)                                                        │
00:02:06 #14185 [Verbose] > │         else                                                                 │
00:02:06 #14186 [Verbose] > │             let v6 : int32 = v0 - 1                                          │
00:02:06 #14187 [Verbose] > │             let v7 : UH0 = v3 ()                                             │
00:02:06 #14188 [Verbose] > │             method3(v6, v7)                                                  │
00:02:06 #14189 [Verbose] > │     | UH0_1 -> (* StreamNil *)                                               │
00:02:06 #14190 [Verbose] > │         US0_0                                                                │
00:02:06 #14191 [Verbose] > │ and method4 (v0 : UH1, v1 : UH1) : UH1 =                                     │
00:02:06 #14192 [Verbose] > │     match v0 with                                                            │
00:02:06 #14193 [Verbose] > │     | UH1_0(v2, v3) -> (* Cons *)                                            │
00:02:06 #14194 [Verbose] > │         let v4 : UH1 = UH1_0(v2, v1)                                         │
00:02:06 #14195 [Verbose] > │         method4(v3, v4)                                                      │
00:02:06 #14196 [Verbose] > │     | UH1_1 -> (* Nil *)                                                     │
00:02:06 #14197 [Verbose] > │         v1                                                                   │
00:02:06 #14198 [Verbose] > │ and method2 (v0 : UH0, v1 : UH1, v2 : int32) : UH1 =                         │
00:02:06 #14199 [Verbose] > │     let v3 : US0 = method3(v2, v0)                                           │
00:02:06 #14200 [Verbose] > │     match v3 with                                                            │
00:02:06 #14201 [Verbose] > │     | US0_1(v4) -> (* Some *)                                                │
00:02:06 #14202 [Verbose] > │         let v5 : bool = v4 < 5                                               │
00:02:06 #14203 [Verbose] > │         if v5 then                                                           │
00:02:06 #14204 [Verbose] > │             let v6 : UH1 = UH1_0(v4, v1)                                     │
00:02:06 #14205 [Verbose] > │             let v7 : int32 = v2 + 1                                          │
00:02:06 #14206 [Verbose] > │             method2(v0, v6, v7)                                              │
00:02:06 #14207 [Verbose] > │         else                                                                 │
00:02:06 #14208 [Verbose] > │             let v9 : UH1 = UH1_1                                             │
00:02:06 #14209 [Verbose] > │             method4(v1, v9)                                                  │
00:02:06 #14210 [Verbose] > │     | _ ->                                                                   │
00:02:06 #14211 [Verbose] > │         let v12 : UH1 = UH1_1                                                │
00:02:06 #14212 [Verbose] > │         method4(v1, v12)                                                     │
00:02:06 #14213 [Verbose] > │ and method5 (v0 : UH1, v1 : int32) : int32 =                                 │
00:02:06 #14214 [Verbose] > │     match v0 with                                                            │
00:02:06 #14215 [Verbose] > │     | UH1_0(v2, v3) -> (* Cons *)                                            │
00:02:06 #14216 [Verbose] > │         let v4 : int32 = v1 + v2                                             │
00:02:06 #14217 [Verbose] > │         method5(v3, v4)                                                      │
00:02:06 #14218 [Verbose] > │     | UH1_1 -> (* Nil *)                                                     │
00:02:06 #14219 [Verbose] > │         v1                                                                   │
00:02:06 #14220 [Verbose] > │ and method6 (v0 : bool) : bool =                                             │
00:02:06 #14221 [Verbose] > │     v0                                                                       │
00:02:06 #14222 [Verbose] > │ and method0 () : unit =                                                      │
00:02:06 #14223 [Verbose] > │     let v0 : int32 = 0                                                       │
00:02:06 #14224 [Verbose] > │     let v1 : UH0 = method1(v0)                                               │
00:02:06 #14225 [Verbose] > │     let v2 : UH1 = UH1_1                                                     │
00:02:06 #14226 [Verbose] > │     let v3 : int32 = 0                                                       │
00:02:06 #14227 [Verbose] > │     let v4 : UH1 = method2(v1, v2, v3)                                       │
00:02:06 #14228 [Verbose] > │     let v5 : int32 = 0                                                       │
00:02:06 #14229 [Verbose] > │     let v6 : int32 = method5(v4, v5)                                         │
00:02:06 #14230 [Verbose] > │     let v7 : string = $"%A{v6}"                                              │
00:02:06 #14231 [Verbose] > │     System.Console.WriteLine v7                                              │
00:02:06 #14232 [Verbose] > │     let v8 : bool = v6 = 10                                                  │
00:02:06 #14233 [Verbose] > │     let v10 : bool =                                                         │
00:02:06 #14234 [Verbose] > │         if v8 then                                                           │
00:02:06 #14235 [Verbose] > │             true                                                             │
00:02:06 #14236 [Verbose] > │         else                                                                 │
00:02:06 #14237 [Verbose] > │             method6(v8)                                                      │
00:02:06 #14238 [Verbose] > │     let v11 : string = $"__expect / actual: %A{v6} / expected: %A{10}"       │
00:02:06 #14239 [Verbose] > │     let v12 : bool = v10 = false                                             │
00:02:06 #14240 [Verbose] > │     if v12 then                                                              │
00:02:06 #14241 [Verbose] > │         failwith<unit> v11                                                   │
00:02:06 #14242 [Verbose] > │ method0()                                                                    │
00:02:06 #14243 [Verbose] > │                                                                              │
00:02:06 #14244 [Verbose] > │ print_and_return / x: 0                                                      │
00:02:06 #14245 [Verbose] > │ print_and_return / x: 1                                                      │
00:02:06 #14246 [Verbose] > │ print_and_return / x: 1                                                      │
00:02:06 #14247 [Verbose] > │ print_and_return / x: 2                                                      │
00:02:06 #14248 [Verbose] > │ print_and_return / x: 1                                                      │
00:02:06 #14249 [Verbose] > │ print_and_return / x: 2                                                      │
00:02:06 #14250 [Verbose] > │ print_and_return / x: 3                                                      │
00:02:06 #14251 [Verbose] > │ print_and_return / x: 1                                                      │
00:02:06 #14252 [Verbose] > │ print_and_return / x: 2                                                      │
00:02:06 #14253 [Verbose] > │ print_and_return / x: 3                                                      │
00:02:06 #14254 [Verbose] > │ print_and_return / x: 4                                                      │
00:02:06 #14255 [Verbose] > │ print_and_return / x: 1                                                      │
00:02:06 #14256 [Verbose] > │ print_and_return / x: 2                                                      │
00:02:06 #14257 [Verbose] > │ print_and_return / x: 3                                                      │
00:02:06 #14258 [Verbose] > │ print_and_return / x: 4                                                      │
00:02:06 #14259 [Verbose] > │ print_and_return / x: 5                                                      │
00:02:06 #14260 [Verbose] > │ 10                                                                           │
00:02:06 #14261 [Verbose] > │                                                                              │
00:02:06 #14262 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:06 #14263 [Verbose] >
00:02:06 #14264 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:06 #14265 [Verbose] > // // test
00:02:06 #14266 [Verbose] >
00:02:06 #14267 [Verbose] > stream.new_infinite_stream_ print_and_return
00:02:06 #14268 [Verbose] > |> stream.memoize
00:02:06 #14269 [Verbose] > |> fun list =>
00:02:06 #14270 [Verbose] >     inl list = list ()
00:02:06 #14271 [Verbose] >     fun n =>
00:02:06 #14272 [Verbose] >         list |> stream.try_item n
00:02:06 #14273 [Verbose] > |> take_while_ (fun n (_ : i32) => n < 5i32)
00:02:06 #14274 [Verbose] > |> listm'.sum
00:02:06 #14275 [Verbose] > |> _assert_eq 10
00:02:06 #14276 [Verbose] >
00:02:06 #14277 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:02:06 #14278 [Verbose] > #!import ../../lib/fsharp/Plotting.dib
00:02:06 #14279 [Verbose] >
00:02:06 #14280 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:06 #14281 [Verbose] > #r
00:02:06 #14282 [Verbose] > "/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Asp
00:02:06 #14283 [Verbose] > NetCore.Html.Abstractions.dll"
00:02:06 #14284 [Verbose] > #r
00:02:06 #14285 [Verbose] > "/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
00:02:06 #14286 [Verbose] > Net.Interactive.dll"
00:02:06 #14287 [Verbose] > #r
00:02:06 #14288 [Verbose] > "/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
00:02:06 #14289 [Verbose] > Net.Interactive.FSharp.dll"
00:02:06 #14290 [Verbose] > #r
00:02:06 #14291 [Verbose] > "/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
00:02:06 #14292 [Verbose] > Net.Interactive.Formatting.dll"
00:02:06 #14293 [Verbose] > open System
00:02:06 #14294 [Verbose] > open System.IO
00:02:06 #14295 [Verbose] > open System.Text
00:02:06 #14296 [Verbose] > open Microsoft.DotNet.Interactive.Formatting
00:02:06 #14297 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-3583-8312-89dc13f50324/main.spi
00:02:06 #14298 [Verbose] >
00:02:06 #14299 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-3562-6225-6826bd5146b8/main.spi
00:02:06 #14300 [Verbose] > ╭─[ 311.88ms - stdout ]────────────────────────────────────────────────────────╮
00:02:06 #14301 [Verbose] > │ type UH0 =                                                                   │
00:02:06 #14302 [Verbose] > │     | UH0_0 of int32 * (unit -> UH0)                                         │
00:02:06 #14303 [Verbose] > │     | UH0_1                                                                  │
00:02:06 #14304 [Verbose] > │ and [<Struct>] US0 =                                                         │
00:02:06 #14305 [Verbose] > │     | US0_0 of f0_0 : UH0                                                    │
00:02:06 #14306 [Verbose] > │     | US0_1 of f1_0 : (unit -> UH0)                                          │
00:02:06 #14307 [Verbose] > │ and Mut0 = {mutable l0 : US0}                                                │
00:02:06 #14308 [Verbose] > │ and UH1 =                                                                    │
00:02:06 #14309 [Verbose] > │     | UH1_0 of int32 * UH1                                                   │
00:02:06 #14310 [Verbose] > │     | UH1_1                                                                  │
00:02:06 #14311 [Verbose] > │ and [<Struct>] US1 =                                                         │
00:02:06 #14312 [Verbose] > │     | US1_0                                                                  │
00:02:06 #14313 [Verbose] > │     | US1_1 of f1_0 : int32                                                  │
00:02:06 #14314 [Verbose] > │ let rec closure0 (v0 : int32) () : UH0 =                                     │
00:02:06 #14315 [Verbose] > │     let v1 : int32 = v0 + 1                                                  │
00:02:06 #14316 [Verbose] > │     method1(v1)                                                              │
00:02:06 #14317 [Verbose] > │ and method1 (v0 : int32) : UH0 =                                             │
00:02:06 #14318 [Verbose] > │     printfn $"print_and_return / x: {v0}"                                    │
00:02:06 #14319 [Verbose] > │     let v1 : (unit -> UH0) = closure0(v0)                                    │
00:02:06 #14320 [Verbose] > │     UH0_0(v0, v1)                                                            │
00:02:06 #14321 [Verbose] > │ and closure1 (v0 : UH0) () : UH0 =                                           │
00:02:06 #14322 [Verbose] > │     v0                                                                       │
00:02:06 #14323 [Verbose] > │ and closure2 (v0 : UH0, v1 : Mut0) () : UH0 =                                │
00:02:06 #14324 [Verbose] > │     let v2 : US0 = v1.l0                                                     │
00:02:06 #14325 [Verbose] > │     match v2 with                                                            │
00:02:06 #14326 [Verbose] > │     | US0_0(v3) -> (* Computed *)                                            │
00:02:06 #14327 [Verbose] > │         v3                                                                   │
00:02:06 #14328 [Verbose] > │     | US0_1(v4) -> (* NotComputed *)                                         │
00:02:06 #14329 [Verbose] > │         let v5 : UH0 = v4 ()                                                 │
00:02:06 #14330 [Verbose] > │         let v12 : UH0 =                                                      │
00:02:06 #14331 [Verbose] > │             match v5 with                                                    │
00:02:06 #14332 [Verbose] > │             | UH0_0(v7, v8) -> (* StreamCons *)                              │
00:02:06 #14333 [Verbose] > │                 let v9 : (unit -> UH0) = method2(v0, v8)                     │
00:02:06 #14334 [Verbose] > │                 UH0_0(v7, v9)                                                │
00:02:06 #14335 [Verbose] > │             | UH0_1 -> (* StreamNil *)                                       │
00:02:06 #14336 [Verbose] > │                 UH0_1                                                        │
00:02:06 #14337 [Verbose] > │         let v13 : US0 = US0_0(v12)                                           │
00:02:06 #14338 [Verbose] > │         v1.l0 <- v13                                                         │
00:02:06 #14339 [Verbose] > │         v12                                                                  │
00:02:06 #14340 [Verbose] > │ and method2 (v0 : UH0, v1 : (unit -> UH0)) : (unit -> UH0) =                 │
00:02:06 #14341 [Verbose] > │     let v2 : US0 = US0_1(v1)                                                 │
00:02:06 #14342 [Verbose] > │     let v3 : Mut0 = {l0 = v2} : Mut0                                         │
00:02:06 #14343 [Verbose] > │     closure2(v0, v3)                                                         │
00:02:06 #14344 [Verbose] > │ and method4 (v0 : int32, v1 : UH0) : US1 =                                   │
00:02:06 #14345 [Verbose] > │     match v1 with                                                            │
00:02:06 #14346 [Verbose] > │     | UH0_0(v2, v3) -> (* StreamCons *)                                      │
00:02:06 #14347 [Verbose] > │         let v4 : bool = v0 <= 0                                              │
00:02:06 #14348 [Verbose] > │         if v4 then                                                           │
00:02:06 #14349 [Verbose] > │             US1_1(v2)                                                        │
00:02:06 #14350 [Verbose] > │         else                                                                 │
00:02:06 #14351 [Verbose] > │             let v6 : int32 = v0 - 1                                          │
00:02:06 #14352 [Verbose] > │             let v7 : UH0 = v3 ()                                             │
00:02:06 #14353 [Verbose] > │             method4(v6, v7)                                                  │
00:02:06 #14354 [Verbose] > │     | UH0_1 -> (* StreamNil *)                                               │
00:02:06 #14355 [Verbose] > │         US1_0                                                                │
00:02:06 #14356 [Verbose] > │ and method5 (v0 : UH1, v1 : UH1) : UH1 =                                     │
00:02:06 #14357 [Verbose] > │     match v0 with                                                            │
00:02:06 #14358 [Verbose] > │     | UH1_0(v2, v3) -> (* Cons *)                                            │
00:02:06 #14359 [Verbose] > │         let v4 : UH1 = UH1_0(v2, v1)                                         │
00:02:06 #14360 [Verbose] > │         method5(v3, v4)                                                      │
00:02:06 #14361 [Verbose] > │     | UH1_1 -> (* Nil *)                                                     │
00:02:06 #14362 [Verbose] > │         v1                                                                   │
00:02:06 #14363 [Verbose] > │ and method3 (v0 : UH0, v1 : UH1, v2 : int32) : UH1 =                         │
00:02:06 #14364 [Verbose] > │     let v3 : US1 = method4(v2, v0)                                           │
00:02:06 #14365 [Verbose] > │     match v3 with                                                            │
00:02:06 #14366 [Verbose] > │     | US1_1(v4) -> (* Some *)                                                │
00:02:06 #14367 [Verbose] > │         let v5 : bool = v4 < 5                                               │
00:02:06 #14368 [Verbose] > │         if v5 then                                                           │
00:02:06 #14369 [Verbose] > │             let v6 : UH1 = UH1_0(v4, v1)                                     │
00:02:06 #14370 [Verbose] > │             let v7 : int32 = v2 + 1                                          │
00:02:06 #14371 [Verbose] > │             method3(v0, v6, v7)                                              │
00:02:06 #14372 [Verbose] > │         else                                                                 │
00:02:06 #14373 [Verbose] > │             let v9 : UH1 = UH1_1                                             │
00:02:06 #14374 [Verbose] > │             method5(v1, v9)                                                  │
00:02:06 #14375 [Verbose] > │     | _ ->                                                                   │
00:02:06 #14376 [Verbose] > │         let v12 : UH1 = UH1_1                                                │
00:02:06 #14377 [Verbose] > │         method5(v1, v12)                                                     │
00:02:06 #14378 [Verbose] > │ and method6 (v0 : UH1, v1 : int32) : int32 =                                 │
00:02:06 #14379 [Verbose] > │     match v0 with                                                            │
00:02:06 #14380 [Verbose] > │     | UH1_0(v2, v3) -> (* Cons *)                                            │
00:02:06 #14381 [Verbose] > │         let v4 : int32 = v1 + v2                                             │
00:02:06 #14382 [Verbose] > │         method6(v3, v4)                                                      │
00:02:06 #14383 [Verbose] > │     | UH1_1 -> (* Nil *)                                                     │
00:02:06 #14384 [Verbose] > │         v1                                                                   │
00:02:06 #14385 [Verbose] > │ and method7 (v0 : bool) : bool =                                             │
00:02:06 #14386 [Verbose] > │     v0                                                                       │
00:02:06 #14387 [Verbose] > │ and method0 () : unit =                                                      │
00:02:06 #14388 [Verbose] > │     let v0 : int32 = 0                                                       │
00:02:06 #14389 [Verbose] > │     let v1 : UH0 = method1(v0)                                               │
00:02:06 #14390 [Verbose] > │     let v2 : (unit -> UH0) = closure1(v1)                                    │
00:02:06 #14391 [Verbose] > │     let v3 : (unit -> UH0) = method2(v1, v2)                                 │
00:02:06 #14392 [Verbose] > │     let v4 : UH0 = v3 ()                                                     │
00:02:06 #14393 [Verbose] > │     let v5 : UH1 = UH1_1                                                     │
00:02:06 #14394 [Verbose] > │     let v6 : int32 = 0                                                       │
00:02:06 #14395 [Verbose] > │     let v7 : UH1 = method3(v4, v5, v6)                                       │
00:02:06 #14396 [Verbose] > │     let v8 : int32 = 0                                                       │
00:02:06 #14397 [Verbose] > │     let v9 : int32 = method6(v7, v8)                                         │
00:02:06 #14398 [Verbose] > │     let v10 : string = $"%A{v9}"                                             │
00:02:06 #14399 [Verbose] > │     System.Console.WriteLine v10                                             │
00:02:06 #14400 [Verbose] > │     let v11 : bool = v9 = 10                                                 │
00:02:06 #14401 [Verbose] > │     let v13 : bool =                                                         │
00:02:06 #14402 [Verbose] > │         if v11 then                                                          │
00:02:06 #14403 [Verbose] > │             true                                                             │
00:02:06 #14404 [Verbose] > │         else                                                                 │
00:02:06 #14405 [Verbose] > │             method7(v11)                                                     │
00:02:07 #14406 [Verbose] > │     let v14 : string = $"__expect / actual: %A{v9} / expected: %A{10}"       │
00:02:07 #14407 [Verbose] > │     let v15 : bool = v13 = false                                             │
00:02:07 #14408 [Verbose] > │     if v15 then                                                              │
00:02:07 #14409 [Verbose] > │         failwith<unit> v14                                                   │
00:02:07 #14410 [Verbose] > │ method0()                                                                    │
00:02:07 #14411 [Verbose] > │                                                                              │
00:02:07 #14412 [Verbose] > │ print_and_return / x: 0                                                      │
00:02:07 #14413 [Verbose] > │ print_and_return / x: 1                                                      │
00:02:07 #14414 [Verbose] > │ print_and_return / x: 2                                                      │
00:02:07 #14415 [Verbose] > │ print_and_return / x: 3                                                      │
00:02:07 #14416 [Verbose] > │ print_and_return / x: 4                                                      │
00:02:07 #14417 [Verbose] > │ print_and_return / x: 5                                                      │
00:02:07 #14418 [Verbose] > │ 10                                                                           │
00:02:07 #14419 [Verbose] > │                                                                              │
00:02:07 #14420 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:07 #14421 [Verbose] >
00:02:07 #14422 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:07 #14423 [Verbose] > // // test
00:02:07 #14424 [Verbose] >
00:02:07 #14425 [Verbose] > stream.new_finite_stream print_and_return 10i32
00:02:07 #14426 [Verbose] > |> stream.memoize
00:02:07 #14427 [Verbose] > |> fun list =>
00:02:07 #14428 [Verbose] >     inl list = list ()
00:02:07 #14429 [Verbose] >     fun n =>
00:02:07 #14430 [Verbose] >         list |> stream.try_item n
00:02:07 #14431 [Verbose] > |> take_while_ (fun n (_ : i32) => n < 5)
00:02:07 #14432 [Verbose] > |> listm'.sum
00:02:07 #14433 [Verbose] > |> _assert_eq 10
00:02:07 #14434 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-3614-1444-154ac57bc7c6/main.spi
00:02:07 #14435 [Verbose] >
00:02:07 #14436 [Verbose] > ╭─[ 459.96ms - stdout ]────────────────────────────────────────────────────────╮
00:02:07 #14437 [Verbose] > │ type UH0 =                                                                   │
00:02:07 #14438 [Verbose] > │     | UH0_0 of int32 * (unit -> UH0)                                         │
00:02:07 #14439 [Verbose] > │     | UH0_1                                                                  │
00:02:07 #14440 [Verbose] > │ and [<Struct>] US0 =                                                         │
00:02:07 #14441 [Verbose] > │     | US0_0 of f0_0 : UH0                                                    │
00:02:07 #14442 [Verbose] > │     | US0_1 of f1_0 : (unit -> UH0)                                          │
00:02:07 #14443 [Verbose] > │ and Mut0 = {mutable l0 : US0}                                                │
00:02:07 #14444 [Verbose] > │ and UH1 =                                                                    │
00:02:07 #14445 [Verbose] > │     | UH1_0 of int32 * UH1                                                   │
00:02:07 #14446 [Verbose] > │     | UH1_1                                                                  │
00:02:07 #14447 [Verbose] > │ and [<Struct>] US1 =                                                         │
00:02:07 #14448 [Verbose] > │     | US1_0                                                                  │
00:02:07 #14449 [Verbose] > │     | US1_1 of f1_0 : int32                                                  │
00:02:07 #14450 [Verbose] > │ let rec closure10 () () : UH0 =                                              │
00:02:07 #14451 [Verbose] > │     UH0_1                                                                    │
00:02:07 #14452 [Verbose] > │ and closure9 () () : UH0 =                                                   │
00:02:07 #14453 [Verbose] > │     printfn $"print_and_return / x: {9}"                                     │
00:02:07 #14454 [Verbose] > │     let v0 : (unit -> UH0) = closure10()                                     │
00:02:07 #14455 [Verbose] > │     UH0_0(9, v0)                                                             │
00:02:07 #14456 [Verbose] > │ and closure8 () () : UH0 =                                                   │
00:02:07 #14457 [Verbose] > │     printfn $"print_and_return / x: {8}"                                     │
00:02:07 #14458 [Verbose] > │     let v0 : (unit -> UH0) = closure9()                                      │
00:02:07 #14459 [Verbose] > │     UH0_0(8, v0)                                                             │
00:02:07 #14460 [Verbose] > │ and closure7 () () : UH0 =                                                   │
00:02:07 #14461 [Verbose] > │     printfn $"print_and_return / x: {7}"                                     │
00:02:07 #14462 [Verbose] > │     let v0 : (unit -> UH0) = closure8()                                      │
00:02:07 #14463 [Verbose] > │     UH0_0(7, v0)                                                             │
00:02:07 #14464 [Verbose] > │ and closure6 () () : UH0 =                                                   │
00:02:07 #14465 [Verbose] > │     printfn $"print_and_return / x: {6}"                                     │
00:02:07 #14466 [Verbose] > │     let v0 : (unit -> UH0) = closure7()                                      │
00:02:07 #14467 [Verbose] > │     UH0_0(6, v0)                                                             │
00:02:07 #14468 [Verbose] > │ and closure5 () () : UH0 =                                                   │
00:02:07 #14469 [Verbose] > │     printfn $"print_and_return / x: {5}"                                     │
00:02:07 #14470 [Verbose] > │     let v0 : (unit -> UH0) = closure6()                                      │
00:02:07 #14471 [Verbose] > │     UH0_0(5, v0)                                                             │
00:02:07 #14472 [Verbose] > │ and closure4 () () : UH0 =                                                   │
00:02:07 #14473 [Verbose] > │     printfn $"print_and_return / x: {4}"                                     │
00:02:07 #14474 [Verbose] > │     let v0 : (unit -> UH0) = closure5()                                      │
00:02:07 #14475 [Verbose] > │     UH0_0(4, v0)                                                             │
00:02:07 #14476 [Verbose] > │ and closure3 () () : UH0 =                                                   │
00:02:07 #14477 [Verbose] > │     printfn $"print_and_return / x: {3}"                                     │
00:02:07 #14478 [Verbose] > │     let v0 : (unit -> UH0) = closure4()                                      │
00:02:07 #14479 [Verbose] > │     UH0_0(3, v0)                                                             │
00:02:07 #14480 [Verbose] > │ and closure2 () () : UH0 =                                                   │
00:02:07 #14481 [Verbose] > │     printfn $"print_and_return / x: {2}"                                     │
00:02:07 #14482 [Verbose] > │     let v0 : (unit -> UH0) = closure3()                                      │
00:02:07 #14483 [Verbose] > │     UH0_0(2, v0)                                                             │
00:02:07 #14484 [Verbose] > │ and closure1 () () : UH0 =                                                   │
00:02:07 #14485 [Verbose] > │     printfn $"print_and_return / x: {1}"                                     │
00:02:07 #14486 [Verbose] > │     let v0 : (unit -> UH0) = closure2()                                      │
00:02:07 #14487 [Verbose] > │     UH0_0(1, v0)                                                             │
00:02:07 #14488 [Verbose] > │ and closure0 () () : UH0 =                                                   │
00:02:07 #14489 [Verbose] > │     let v0 : (unit -> UH0) = closure1()                                      │
00:02:07 #14490 [Verbose] > │     UH0_0(0, v0)                                                             │
00:02:07 #14491 [Verbose] > │ and closure11 (v0 : Mut0) () : UH0 =                                         │
00:02:07 #14492 [Verbose] > │     let v1 : US0 = v0.l0                                                     │
00:02:07 #14493 [Verbose] > │     match v1 with                                                            │
00:02:07 #14494 [Verbose] > │     | US0_0(v2) -> (* Computed *)                                            │
00:02:07 #14495 [Verbose] > │         v2                                                                   │
00:02:07 #14496 [Verbose] > │     | US0_1(v3) -> (* NotComputed *)                                         │
00:02:07 #14497 [Verbose] > │         let v4 : UH0 = v3 ()                                                 │
00:02:07 #14498 [Verbose] > │         let v13 : UH0 =                                                      │
00:02:07 #14499 [Verbose] > │             match v4 with                                                    │
00:02:07 #14500 [Verbose] > │             | UH0_0(v6, v7) -> (* StreamCons *)                              │
00:02:07 #14501 [Verbose] > │                 let v8 : US0 = US0_1(v7)                                     │
00:02:07 #14502 [Verbose] > │                 let v9 : Mut0 = {l0 = v8} : Mut0                             │
00:02:07 #14503 [Verbose] > │                 let v10 : (unit -> UH0) = closure11(v9)                      │
00:02:07 #14504 [Verbose] > │                 UH0_0(v6, v10)                                               │
00:02:07 #14505 [Verbose] > │             | UH0_1 -> (* StreamNil *)                                       │
00:02:07 #14506 [Verbose] > │                 UH0_1                                                        │
00:02:07 #14507 [Verbose] > │         let v14 : US0 = US0_0(v13)                                           │
00:02:07 #14508 [Verbose] > │         v0.l0 <- v14                                                         │
00:02:07 #14509 [Verbose] > │         v13                                                                  │
00:02:07 #14510 [Verbose] > │ and method2 (v0 : int32, v1 : UH0) : US1 =                                   │
00:02:07 #14511 [Verbose] > │     match v1 with                                                            │
00:02:07 #14512 [Verbose] > │     | UH0_0(v2, v3) -> (* StreamCons *)                                      │
00:02:07 #14513 [Verbose] > │         let v4 : bool = v0 <= 0                                              │
00:02:07 #14514 [Verbose] > │         if v4 then                                                           │
00:02:07 #14515 [Verbose] > │             US1_1(v2)                                                        │
00:02:07 #14516 [Verbose] > │         else                                                                 │
00:02:07 #14517 [Verbose] > │             let v6 : int32 = v0 - 1                                          │
00:02:07 #14518 [Verbose] > │             let v7 : UH0 = v3 ()                                             │
00:02:07 #14519 [Verbose] > │             method2(v6, v7)                                                  │
00:02:07 #14520 [Verbose] > │     | UH0_1 -> (* StreamNil *)                                               │
00:02:07 #14521 [Verbose] > │         US1_0                                                                │
00:02:07 #14522 [Verbose] > │ and method3 (v0 : UH1, v1 : UH1) : UH1 =                                     │
00:02:07 #14523 [Verbose] > │     match v0 with                                                            │
00:02:07 #14524 [Verbose] > │     | UH1_0(v2, v3) -> (* Cons *)                                            │
00:02:07 #14525 [Verbose] > │         let v4 : UH1 = UH1_0(v2, v1)                                         │
00:02:07 #14526 [Verbose] > │         method3(v3, v4)                                                      │
00:02:07 #14527 [Verbose] > │     | UH1_1 -> (* Nil *)                                                     │
00:02:07 #14528 [Verbose] > │         v1                                                                   │
00:02:07 #14529 [Verbose] > │ and method1 (v0 : UH0, v1 : UH1, v2 : int32) : UH1 =                         │
00:02:07 #14530 [Verbose] > │     let v3 : US1 = method2(v2, v0)                                           │
00:02:07 #14531 [Verbose] > │     match v3 with                                                            │
00:02:07 #14532 [Verbose] > │     | US1_1(v4) -> (* Some *)                                                │
00:02:07 #14533 [Verbose] > │         let v5 : bool = v4 < 5                                               │
00:02:07 #14534 [Verbose] > │         if v5 then                                                           │
00:02:07 #14535 [Verbose] > │             let v6 : UH1 = UH1_0(v4, v1)                                     │
00:02:07 #14536 [Verbose] > │             let v7 : int32 = v2 + 1                                          │
00:02:07 #14537 [Verbose] > │             method1(v0, v6, v7)                                              │
00:02:07 #14538 [Verbose] > │         else                                                                 │
00:02:07 #14539 [Verbose] > │             let v9 : UH1 = UH1_1                                             │
00:02:07 #14540 [Verbose] > │             method3(v1, v9)                                                  │
00:02:07 #14541 [Verbose] > │     | _ ->                                                                   │
00:02:07 #14542 [Verbose] > │         let v12 : UH1 = UH1_1                                                │
00:02:07 #14543 [Verbose] > │         method3(v1, v12)                                                     │
00:02:07 #14544 [Verbose] > │ and method4 (v0 : UH1, v1 : int32) : int32 =                                 │
00:02:07 #14545 [Verbose] > │     match v0 with                                                            │
00:02:07 #14546 [Verbose] > │     | UH1_0(v2, v3) -> (* Cons *)                                            │
00:02:07 #14547 [Verbose] > │         let v4 : int32 = v1 + v2                                             │
00:02:07 #14548 [Verbose] > │         method4(v3, v4)                                                      │
00:02:07 #14549 [Verbose] > │     | UH1_1 -> (* Nil *)                                                     │
00:02:07 #14550 [Verbose] > │         v1                                                                   │
00:02:07 #14551 [Verbose] > │ and method5 (v0 : bool) : bool =                                             │
00:02:07 #14552 [Verbose] > │     v0                                                                       │
00:02:07 #14553 [Verbose] > │ and method0 () : unit =                                                      │
00:02:07 #14554 [Verbose] > │     printfn $"print_and_return / x: {0}"                                     │
00:02:07 #14555 [Verbose] > │     let v0 : (unit -> UH0) = closure0()                                      │
00:02:07 #14556 [Verbose] > │     let v1 : US0 = US0_1(v0)                                                 │
00:02:07 #14557 [Verbose] > │     let v2 : Mut0 = {l0 = v1} : Mut0                                         │
00:02:07 #14558 [Verbose] > │     let v3 : US0 = v2.l0                                                     │
00:02:07 #14559 [Verbose] > │     let v18 : UH0 =                                                          │
00:02:07 #14560 [Verbose] > │         match v3 with                                                        │
00:02:07 #14561 [Verbose] > │         | US0_0(v4) -> (* Computed *)                                        │
00:02:07 #14562 [Verbose] > │             v4                                                               │
00:02:07 #14563 [Verbose] > │         | US0_1(v5) -> (* NotComputed *)                                     │
00:02:07 #14564 [Verbose] > │             let v6 : UH0 = v5 ()                                             │
00:02:07 #14565 [Verbose] > │             let v15 : UH0 =                                                  │
00:02:07 #14566 [Verbose] > │                 match v6 with                                                │
00:02:07 #14567 [Verbose] > │                 | UH0_0(v8, v9) -> (* StreamCons *)                          │
00:02:07 #14568 [Verbose] > │                     let v10 : US0 = US0_1(v9)                                │
00:02:07 #14569 [Verbose] > │                     let v11 : Mut0 = {l0 = v10} : Mut0                       │
00:02:07 #14570 [Verbose] > │                     let v12 : (unit -> UH0) = closure11(v11)                 │
00:02:07 #14571 [Verbose] > │                     UH0_0(v8, v12)                                           │
00:02:07 #14572 [Verbose] > │                 | UH0_1 -> (* StreamNil *)                                   │
00:02:07 #14573 [Verbose] > │                     UH0_1                                                    │
00:02:07 #14574 [Verbose] > │             let v16 : US0 = US0_0(v15)                                       │
00:02:07 #14575 [Verbose] > │             v2.l0 <- v16                                                     │
00:02:07 #14576 [Verbose] > │             v15                                                              │
00:02:07 #14577 [Verbose] > │     let v19 : UH1 = UH1_1                                                    │
00:02:07 #14578 [Verbose] > │     let v20 : int32 = 0                                                      │
00:02:07 #14579 [Verbose] > │     let v21 : UH1 = method1(v18, v19, v20)                                   │
00:02:07 #14580 [Verbose] > │     let v22 : int32 = 0                                                      │
00:02:07 #14581 [Verbose] > │     let v23 : int32 = method4(v21, v22)                                      │
00:02:07 #14582 [Verbose] > │     let v24 : string = $"%A{v23}"                                            │
00:02:07 #14583 [Verbose] > │     System.Console.WriteLine v24                                             │
00:02:07 #14584 [Verbose] > │     let v25 : bool = v23 = 10                                                │
00:02:07 #14585 [Verbose] > │     let v27 : bool =                                                         │
00:02:07 #14586 [Verbose] > │         if v25 then                                                          │
00:02:07 #14587 [Verbose] > │             true                                                             │
00:02:07 #14588 [Verbose] > │         else                                                                 │
00:02:07 #14589 [Verbose] > │             method5(v25)                                                     │
00:02:07 #14590 [Verbose] > │     let v28 : string = $"__expect / actual: %A{v23} / expected: %A{10}"      │
00:02:07 #14591 [Verbose] > │     let v29 : bool = v27 = false                                             │
00:02:07 #14592 [Verbose] > │     if v29 then                                                              │
00:02:07 #14593 [Verbose] > │         failwith<unit> v28                                                   │
00:02:07 #14594 [Verbose] > │ method0()                                                                    │
00:02:07 #14595 [Verbose] > │                                                                              │
00:02:07 #14596 [Verbose] > │ print_and_return / x: 0                                                      │
00:02:07 #14597 [Verbose] > │ print_and_return / x: 1                                                      │
00:02:07 #14598 [Verbose] > │ print_and_return / x: 2                                                      │
00:02:07 #14599 [Verbose] > │ print_and_return / x: 3                                                      │
00:02:07 #14600 [Verbose] > │ print_and_return / x: 4                                                      │
00:02:07 #14601 [Verbose] > │ print_and_return / x: 5                                                      │
00:02:07 #14602 [Verbose] > │ 10                                                                           │
00:02:07 #14603 [Verbose] > │                                                                              │
00:02:07 #14604 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:07 #14605 [Verbose] >
00:02:07 #14606 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:07 #14607 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:07 #14608 [Verbose] > │ ## memoize                                                                   │
00:02:07 #14609 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:07 #14610 [Verbose] >
00:02:07 #14611 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:07 #14612 [Verbose] > inl memoize seq =
00:02:07 #14613 [Verbose] >     inl state = mut [[]]
00:02:07 #14614 [Verbose] >     fun n =>
00:02:07 #14615 [Verbose] >         match *state |> listm'.try_find (fun (n', _) => n' = n) with
00:02:07 #14616 [Verbose] >         | Some (_, v) => v
00:02:07 #14617 [Verbose] >         | None =>
00:02:07 #14618 [Verbose] >             inl new_state = seq n
00:02:07 #14619 [Verbose] >             state <- (n, new_state) :: *state
00:02:07 #14620 [Verbose] >             new_state
00:02:07 #14621 [Verbose] >
00:02:07 #14622 [Verbose] > inl memoize_ seq =
00:02:07 #14623 [Verbose] >     inl state = mut [[]]
00:02:07 #14624 [Verbose] >     fun n =>
00:02:07 #14625 [Verbose] >         match *state |> listm'.try_find_ (fun (n', _) => n' = n) with
00:02:07 #14626 [Verbose] >         | Some (_, v) => v
00:02:07 #14627 [Verbose] >         | None =>
00:02:07 #14628 [Verbose] >             inl new_state = seq n
00:02:07 #14629 [Verbose] >             state <- (n, new_state) :: *state
00:02:07 #14630 [Verbose] >             new_state
00:02:07 #14631 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-3663-6394-649beda84f83/main.spi
00:02:07 #14632 [Verbose] >
00:02:07 #14633 [Verbose] > ╭─[ 168.43ms - stdout ]────────────────────────────────────────────────────────╮
00:02:07 #14634 [Verbose] > │ ()                                                                           │
00:02:07 #14635 [Verbose] > │                                                                              │
00:02:07 #14636 [Verbose] > │                                                                              │
00:02:07 #14637 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:07 #14638 [Verbose] >
00:02:07 #14639 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:07 #14640 [Verbose] > // // test
00:02:07 #14641 [Verbose] >
00:02:07 #14642 [Verbose] > inl seq =
00:02:07 #14643 [Verbose] >     fun n =>
00:02:07 #14644 [Verbose] >         n |> print_and_return |> Some
00:02:07 #14645 [Verbose] >     |> memoize_
00:02:07 #14646 [Verbose] >
00:02:07 #14647 [Verbose] > seq
00:02:07 #14648 [Verbose] > |> take_while_ (fun n (_ : i32) => n < 5)
00:02:07 #14649 [Verbose] > |> listm'.sum
00:02:07 #14650 [Verbose] > |> _assert_eq 10
00:02:07 #14651 [Verbose] >
00:02:07 #14652 [Verbose] > seq
00:02:07 #14653 [Verbose] > |> take_while_ (fun n _ => n < 5)
00:02:07 #14654 [Verbose] > |> listm'.sum
00:02:07 #14655 [Verbose] > |> _assert_eq 10
00:02:07 #14656 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-3681-8112-8e13ca856b41/main.spi
00:02:08 #14657 [Verbose] >
00:02:08 #14658 [Verbose] > ╭─[ 458.24ms - stdout ]────────────────────────────────────────────────────────╮
00:02:08 #14659 [Verbose] > │ type [<Struct>] US0 =                                                        │
00:02:08 #14660 [Verbose] > │     | US0_0                                                                  │
00:02:08 #14661 [Verbose] > │     | US0_1 of f1_0 : int32                                                  │
00:02:08 #14662 [Verbose] > │ and UH0 =                                                                    │
00:02:08 #14663 [Verbose] > │     | UH0_0 of int32 * US0 * UH0                                             │
00:02:08 #14664 [Verbose] > │     | UH0_1                                                                  │
00:02:08 #14665 [Verbose] > │ and Mut0 = {mutable l0 : UH0}                                                │
00:02:08 #14666 [Verbose] > │ and UH1 =                                                                    │
00:02:08 #14667 [Verbose] > │     | UH1_0 of int32 * UH1                                                   │
00:02:08 #14668 [Verbose] > │     | UH1_1                                                                  │
00:02:08 #14669 [Verbose] > │ and [<Struct>] US1 =                                                         │
00:02:08 #14670 [Verbose] > │     | US1_0                                                                  │
00:02:08 #14671 [Verbose] > │     | US1_1 of f1_0 : int32 * f1_1 : US0                                     │
00:02:08 #14672 [Verbose] > │ let rec method2 (v0 : int32, v1 : UH0) : US1 =                               │
00:02:08 #14673 [Verbose] > │     match v1 with                                                            │
00:02:08 #14674 [Verbose] > │     | UH0_0(v3, v4, v5) -> (* Cons *)                                        │
00:02:08 #14675 [Verbose] > │         let v6 : bool = v3 = v0                                              │
00:02:08 #14676 [Verbose] > │         if v6 then                                                           │
00:02:08 #14677 [Verbose] > │             US1_1(v3, v4)                                                    │
00:02:08 #14678 [Verbose] > │         else                                                                 │
00:02:08 #14679 [Verbose] > │             method2(v0, v5)                                                  │
00:02:08 #14680 [Verbose] > │     | UH0_1 -> (* Nil *)                                                     │
00:02:08 #14681 [Verbose] > │         US1_0                                                                │
00:02:08 #14682 [Verbose] > │ and method3 (v0 : UH1, v1 : UH1) : UH1 =                                     │
00:02:08 #14683 [Verbose] > │     match v0 with                                                            │
00:02:08 #14684 [Verbose] > │     | UH1_0(v2, v3) -> (* Cons *)                                            │
00:02:08 #14685 [Verbose] > │         let v4 : UH1 = UH1_0(v2, v1)                                         │
00:02:08 #14686 [Verbose] > │         method3(v3, v4)                                                      │
00:02:08 #14687 [Verbose] > │     | UH1_1 -> (* Nil *)                                                     │
00:02:08 #14688 [Verbose] > │         v1                                                                   │
00:02:08 #14689 [Verbose] > │ and method1 (v0 : Mut0, v1 : UH1, v2 : int32) : UH1 =                        │
00:02:08 #14690 [Verbose] > │     let v3 : UH0 = v0.l0                                                     │
00:02:08 #14691 [Verbose] > │     let v4 : US1 = method2(v2, v3)                                           │
00:02:08 #14692 [Verbose] > │     let v12 : US0 =                                                          │
00:02:08 #14693 [Verbose] > │         match v4 with                                                        │
00:02:08 #14694 [Verbose] > │         | US1_0 -> (* None *)                                                │
00:02:08 #14695 [Verbose] > │             printfn $"print_and_return / x: {v2}"                            │
00:02:08 #14696 [Verbose] > │             let v7 : UH0 = v0.l0                                             │
00:02:08 #14697 [Verbose] > │             let v8 : US0 = US0_1(v2)                                         │
00:02:08 #14698 [Verbose] > │             let v9 : UH0 = UH0_0(v2, v8, v7)                                 │
00:02:08 #14699 [Verbose] > │             v0.l0 <- v9                                                      │
00:02:08 #14700 [Verbose] > │             US0_1(v2)                                                        │
00:02:08 #14701 [Verbose] > │         | US1_1(v5, v6) -> (* Some *)                                        │
00:02:08 #14702 [Verbose] > │             v6                                                               │
00:02:08 #14703 [Verbose] > │     match v12 with                                                           │
00:02:08 #14704 [Verbose] > │     | US0_1(v13) -> (* Some *)                                               │
00:02:08 #14705 [Verbose] > │         let v14 : bool = v13 < 5                                             │
00:02:08 #14706 [Verbose] > │         if v14 then                                                          │
00:02:08 #14707 [Verbose] > │             let v15 : UH1 = UH1_0(v13, v1)                                   │
00:02:08 #14708 [Verbose] > │             let v16 : int32 = v2 + 1                                         │
00:02:08 #14709 [Verbose] > │             method1(v0, v15, v16)                                            │
00:02:08 #14710 [Verbose] > │         else                                                                 │
00:02:08 #14711 [Verbose] > │             let v18 : UH1 = UH1_1                                            │
00:02:08 #14712 [Verbose] > │             method3(v1, v18)                                                 │
00:02:08 #14713 [Verbose] > │     | _ ->                                                                   │
00:02:08 #14714 [Verbose] > │         let v21 : UH1 = UH1_1                                                │
00:02:08 #14715 [Verbose] > │         method3(v1, v21)                                                     │
00:02:08 #14716 [Verbose] > │ and method4 (v0 : UH1, v1 : int32) : int32 =                                 │
00:02:08 #14717 [Verbose] > │     match v0 with                                                            │
00:02:08 #14718 [Verbose] > │     | UH1_0(v2, v3) -> (* Cons *)                                            │
00:02:08 #14719 [Verbose] > │         let v4 : int32 = v1 + v2                                             │
00:02:08 #14720 [Verbose] > │         method4(v3, v4)                                                      │
00:02:08 #14721 [Verbose] > │     | UH1_1 -> (* Nil *)                                                     │
00:02:08 #14722 [Verbose] > │         v1                                                                   │
00:02:08 #14723 [Verbose] > │ and method5 (v0 : bool) : bool =                                             │
00:02:08 #14724 [Verbose] > │     v0                                                                       │
00:02:08 #14725 [Verbose] > │ and method6 (v0 : Mut0, v1 : UH1, v2 : int32) : UH1 =                        │
00:02:08 #14726 [Verbose] > │     let v3 : UH0 = v0.l0                                                     │
00:02:08 #14727 [Verbose] > │     let v4 : US1 = method2(v2, v3)                                           │
00:02:08 #14728 [Verbose] > │     let v12 : US0 =                                                          │
00:02:08 #14729 [Verbose] > │         match v4 with                                                        │
00:02:08 #14730 [Verbose] > │         | US1_0 -> (* None *)                                                │
00:02:08 #14731 [Verbose] > │             printfn $"print_and_return / x: {v2}"                            │
00:02:08 #14732 [Verbose] > │             let v7 : UH0 = v0.l0                                             │
00:02:08 #14733 [Verbose] > │             let v8 : US0 = US0_1(v2)                                         │
00:02:08 #14734 [Verbose] > │             let v9 : UH0 = UH0_0(v2, v8, v7)                                 │
00:02:08 #14735 [Verbose] > │             v0.l0 <- v9                                                      │
00:02:08 #14736 [Verbose] > │             US0_1(v2)                                                        │
00:02:08 #14737 [Verbose] > │         | US1_1(v5, v6) -> (* Some *)                                        │
00:02:08 #14738 [Verbose] > │             v6                                                               │
00:02:08 #14739 [Verbose] > │     match v12 with                                                           │
00:02:08 #14740 [Verbose] > │     | US0_1(v13) -> (* Some *)                                               │
00:02:08 #14741 [Verbose] > │         let v14 : bool = v13 < 5                                             │
00:02:08 #14742 [Verbose] > │         if v14 then                                                          │
00:02:08 #14743 [Verbose] > │             let v15 : UH1 = UH1_0(v13, v1)                                   │
00:02:08 #14744 [Verbose] > │             let v16 : int32 = v2 + 1                                         │
00:02:08 #14745 [Verbose] > │             method6(v0, v15, v16)                                            │
00:02:08 #14746 [Verbose] > │         else                                                                 │
00:02:08 #14747 [Verbose] > │             let v18 : UH1 = UH1_1                                            │
00:02:08 #14748 [Verbose] > │             method3(v1, v18)                                                 │
00:02:08 #14749 [Verbose] > │     | _ ->                                                                   │
00:02:08 #14750 [Verbose] > │         let v21 : UH1 = UH1_1                                                │
00:02:08 #14751 [Verbose] > │         method3(v1, v21)                                                     │
00:02:08 #14752 [Verbose] > │ and method0 () : unit =                                                      │
00:02:08 #14753 [Verbose] > │     let v0 : UH0 = UH0_1                                                     │
00:02:08 #14754 [Verbose] > │     let v1 : Mut0 = {l0 = v0} : Mut0                                         │
00:02:08 #14755 [Verbose] > │     let v2 : UH1 = UH1_1                                                     │
00:02:08 #14756 [Verbose] > │     let v3 : int32 = 0                                                       │
00:02:08 #14757 [Verbose] > │     let v4 : UH1 = method1(v1, v2, v3)                                       │
00:02:08 #14758 [Verbose] > │     let v5 : int32 = 0                                                       │
00:02:08 #14759 [Verbose] > │     let v6 : int32 = method4(v4, v5)                                         │
00:02:08 #14760 [Verbose] > │     let v7 : string = $"%A{v6}"                                              │
00:02:08 #14761 [Verbose] > │     System.Console.WriteLine v7                                              │
00:02:08 #14762 [Verbose] > │     let v8 : bool = v6 = 10                                                  │
00:02:08 #14763 [Verbose] > │     let v10 : bool =                                                         │
00:02:08 #14764 [Verbose] > │         if v8 then                                                           │
00:02:08 #14765 [Verbose] > │             true                                                             │
00:02:08 #14766 [Verbose] > │         else                                                                 │
00:02:08 #14767 [Verbose] > │             method5(v8)                                                      │
00:02:08 #14768 [Verbose] > │     let v11 : string = $"__expect / actual: %A{v6} / expected: %A{10}"       │
00:02:08 #14769 [Verbose] > │     let v12 : bool = v10 = false                                             │
00:02:08 #14770 [Verbose] > │     if v12 then                                                              │
00:02:08 #14771 [Verbose] > │         failwith<unit> v11                                                   │
00:02:08 #14772 [Verbose] > │     let v13 : UH1 = UH1_1                                                    │
00:02:08 #14773 [Verbose] > │     let v14 : int32 = 0                                                      │
00:02:08 #14774 [Verbose] > │     let v15 : UH1 = method6(v1, v13, v14)                                    │
00:02:08 #14775 [Verbose] > │     let v16 : int32 = 0                                                      │
00:02:08 #14776 [Verbose] > │     let v17 : int32 = method4(v15, v16)                                      │
00:02:08 #14777 [Verbose] > │     let v18 : string = $"%A{v17}"                                            │
00:02:08 #14778 [Verbose] > │     System.Console.WriteLine v18                                             │
00:02:08 #14779 [Verbose] > │     let v19 : bool = v17 = 10                                                │
00:02:08 #14780 [Verbose] > │     let v21 : bool =                                                         │
00:02:08 #14781 [Verbose] > │         if v19 then                                                          │
00:02:08 #14782 [Verbose] > │             true                                                             │
00:02:08 #14783 [Verbose] > │         else                                                                 │
00:02:08 #14784 [Verbose] > │             method5(v19)                                                     │
00:02:08 #14785 [Verbose] > │     let v22 : string = $"__expect / actual: %A{v17} / expected: %A{10}"      │
00:02:08 #14786 [Verbose] > │     let v23 : bool = v21 = false                                             │
00:02:08 #14787 [Verbose] > │     if v23 then                                                              │
00:02:08 #14788 [Verbose] > │         failwith<unit> v22                                                   │
00:02:08 #14789 [Verbose] > │ method0()                                                                    │
00:02:08 #14790 [Verbose] > │                                                                              │
00:02:08 #14791 [Verbose] > │ print_and_return / x: 0                                                      │
00:02:08 #14792 [Verbose] > │ print_and_return / x: 1                                                      │
00:02:08 #14793 [Verbose] > │ print_and_return / x: 2                                                      │
00:02:08 #14794 [Verbose] > │ print_and_return / x: 3                                                      │
00:02:08 #14795 [Verbose] > │ print_and_return / x: 4                                                      │
00:02:08 #14796 [Verbose] > │ print_and_return / x: 5                                                      │
00:02:08 #14797 [Verbose] > │ 10                                                                           │
00:02:08 #14798 [Verbose] > │ 10                                                                           │
00:02:08 #14799 [Verbose] > │                                                                              │
00:02:08 #14800 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:08 #14801 [Verbose] >
00:02:08 #14802 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:08 #14803 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:08 #14804 [Verbose] > │ ## iterate                                                                   │
00:02:08 #14805 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:08 #14806 [Verbose] >
00:02:08 #14807 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:08 #14808 [Verbose] > inl iterate f x0 num_steps =
00:02:08 #14809 [Verbose] >     inl rec loop x n =
00:02:08 #14810 [Verbose] >         if n <= 0
00:02:08 #14811 [Verbose] >         then x
00:02:08 #14812 [Verbose] >         else loop (f x) (n - 1)
00:02:08 #14813 [Verbose] >     loop x0 num_steps
00:02:08 #14814 [Verbose] >
00:02:08 #14815 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-3729-2902-205b8f18c14f/main.spi
00:02:08 #14816 [Verbose] > ╭─[ 4.09s - stdout ]───────────────────────────────────────────────────────────╮
00:02:08 #14817 [Verbose] > │ ()                                                                           │
00:02:08 #14818 [Verbose] > │                                                                              │
00:02:08 #14819 [Verbose] > │                                                                              │
00:02:08 #14820 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:08 #14821 [Verbose] >
00:02:08 #14822 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:08 #14823 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:08 #14824 [Verbose] > │ ## emit_expr                                                                 │
00:02:08 #14825 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:08 #14826 [Verbose] >
00:02:08 #14827 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:08 #14828 [Verbose] > inl emit_expr forall a t. (args : a) (code : string) : t =
00:02:08 #14829 [Verbose] >     real
00:02:08 #14830 [Verbose] >         $"Fable.Core.RustInterop.emitRustExpr !args !code" : t
00:02:08 #14831 [Verbose] >
00:02:08 #14832 [Verbose] > ╭─[ 144.13ms - stdout ]────────────────────────────────────────────────────────╮
00:02:08 #14833 [Verbose] > │ ()                                                                           │
00:02:08 #14834 [Verbose] > │                                                                              │
00:02:08 #14835 [Verbose] > │                                                                              │
00:02:08 #14836 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:08 #14837 [Verbose] >
00:02:08 #14838 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:08 #14839 [Verbose] > // // test
00:02:08 #14840 [Verbose] >
00:02:08 #14841 [Verbose] > 10i32 |> iterate ((*) 2) 1i32
00:02:08 #14842 [Verbose] > |> _assert_eq 1024
00:02:08 #14843 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-3738-3827-33dbc14054fd/main.spi
00:02:08 #14844 [Verbose] >
00:02:08 #14845 [Verbose] > ╭─[ 126.43ms - stdout ]────────────────────────────────────────────────────────╮
00:02:08 #14846 [Verbose] > │ ()                                                                           │
00:02:08 #14847 [Verbose] > │                                                                              │
00:02:08 #14848 [Verbose] > │                                                                              │
00:02:08 #14849 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:08 #14850 [Verbose] >
00:02:08 #14851 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:08 #14852 [Verbose] > inl types () =
00:02:08 #14853 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"Func0<$0>\")>]] type
00:02:08 #14854 [Verbose] > Func0<'T> = class end"
00:02:08 #14855 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"Func1<$0, $1>\")>]] type
00:02:08 #14856 [Verbose] > Func0<'T, 'U> = class end"
00:02:08 #14857 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"Box<$0>\")>]] type Box<'T> =
00:02:08 #14858 [Verbose] > class end"
00:02:08 #14859 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"dyn $0\")>]] type Dyn<'T> =
00:02:08 #14860 [Verbose] > class end"
00:02:08 #14861 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"Fn() -> $0\")>]] type Fn<'T>
00:02:08 #14862 [Verbose] > = class end"
00:02:08 #14863 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"Fn()\")>]] type FnUnit =
00:02:08 #14864 [Verbose] > class end"
00:02:08 #14865 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"FnOnce() -> $0\")>]] type
00:02:08 #14866 [Verbose] > FnOnce<'T> = class end"
00:02:08 #14867 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"Fn($0, $1)\")>]] type
00:02:08 #14868 [Verbose] > ActionFn2<'T, 'U> = class end"
00:02:08 #14869 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"impl $0\")>]] type Impl<'T> =
00:02:08 #14870 [Verbose] > class end"
00:02:08 #14871 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"mut $0\")>]] type Mut<'T> =
00:02:08 #14872 [Verbose] > class end"
00:02:08 #14873 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"&$0\")>]] type Ref<'T> =
00:02:08 #14874 [Verbose] > class end"
00:02:08 #14875 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"&'static $0\")>]] type
00:02:08 #14876 [Verbose] > StaticRef<'T> = class end"
00:02:08 #14877 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"MutCell<$0>\")>]] type
00:02:08 #14878 [Verbose] > MutCell<'T> = class end"
00:02:08 #14879 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::any::Any\")>]] type
00:02:08 #14880 [Verbose] > std_any_Any = class end"
00:02:08 #14881 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::cell::RefCell<$0>\")>]]
00:02:08 #14882 [Verbose] > type std_cell_RefCell<'T> = class end"
00:02:08 #14883 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::pin::Pin<$0>\")>]] type
00:02:08 #14884 [Verbose] > std_pin_Pin<'T> = class end"
00:02:08 #14885 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::rc::Rc<$0>\")>]] type
00:02:08 #14886 [Verbose] > std_rc_Rc<'T> = class end"
00:02:08 #14887 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::rc::Weak<$0>\")>]] type
00:02:08 #14888 [Verbose] > std_rc_Weak<'T> = class end"
00:02:08 #14889 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::sync::Arc<$0>\")>]] type
00:02:08 #14890 [Verbose] > std_sync_Arc<'T> = class end"
00:02:08 #14891 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-3743-4342-4f6cd3be0bab/main.spi
00:02:08 #14892 [Verbose] >
00:02:08 #14893 [Verbose] > ╭─[ 163.51ms - stdout ]────────────────────────────────────────────────────────╮
00:02:08 #14894 [Verbose] > │ let rec method0 () : unit =                                                  │
00:02:08 #14895 [Verbose] > │     let v0 : string = $"%A{1024}"                                            │
00:02:08 #14896 [Verbose] > │     System.Console.WriteLine v0                                              │
00:02:08 #14897 [Verbose] > │     let v1 : string = $"__expect / actual: %A{1024} / expected: %A{1024}"    │
00:02:08 #14898 [Verbose] > │     ()                                                                       │
00:02:08 #14899 [Verbose] > │ method0()                                                                    │
00:02:08 #14900 [Verbose] > │                                                                              │
00:02:08 #14901 [Verbose] > │ 1024                                                                         │
00:02:08 #14902 [Verbose] > │                                                                              │
00:02:08 #14903 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:08 #14904 [Verbose] >
00:02:08 #14905 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:08 #14906 [Verbose] > inl iterate_ f x0 num_steps =
00:02:08 #14907 [Verbose] >     let rec loop x n =
00:02:08 #14908 [Verbose] >         if n <= 0
00:02:08 #14909 [Verbose] >         then x
00:02:08 #14910 [Verbose] >         else loop (f x) (n - 1)
00:02:08 #14911 [Verbose] >     loop x0 num_steps
00:02:08 #14912 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-3750-5046-5f9f41ace024/main.spi
00:02:08 #14913 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-3759-5984-541b970e845b/main.spi
00:02:08 #14914 [Verbose] >
00:02:08 #14915 [Verbose] > ╭─[ 239.58ms - stdout ]────────────────────────────────────────────────────────╮
00:02:08 #14916 [Verbose] > │ ()                                                                           │
00:02:08 #14917 [Verbose] > │                                                                              │
00:02:08 #14918 [Verbose] > │                                                                              │
00:02:08 #14919 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:08 #14920 [Verbose] >
00:02:08 #14921 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:08 #14922 [Verbose] > nominal ref_cell t = $"std_cell_RefCell<`t>"
00:02:08 #14923 [Verbose] > nominal rc t = $"std_rc_Rc<`t>"
00:02:08 #14924 [Verbose] > nominal weak_rc t = $"std_rc_Weak<`t>"
00:02:08 #14925 [Verbose] > nominal box t = $"Box<`t>"
00:02:08 #14926 [Verbose] > nominal mut_cell t = $"MutCell<`t>"
00:02:08 #14927 [Verbose] > nominal pin t = $"std_pin_Pin<`t>"
00:02:08 #14928 [Verbose] > nominal arc t = $"std_sync_Arc<`t>"
00:02:08 #14929 [Verbose] > nominal dyn' t = $"Dyn<`t>"
00:02:08 #14930 [Verbose] > nominal fn' t = $"Fn<`t>"
00:02:08 #14931 [Verbose] > nominal action_fn2 t u = $"ActionFn2<`t, `u>"
00:02:08 #14932 [Verbose] > nominal fn_once t = $"FnOnce<`t>"
00:02:08 #14933 [Verbose] > nominal fn_unit = $"FnUnit"
00:02:08 #14934 [Verbose] > nominal func0 t = $"Func0<`t>"
00:02:08 #14935 [Verbose] > nominal func1 t u = $"Func0<`t, `u>"
00:02:08 #14936 [Verbose] > nominal impl t = $"Impl<`t>"
00:02:08 #14937 [Verbose] > nominal mut' t = $"Mut<`t>"
00:02:08 #14938 [Verbose] > nominal ref' t = $"Ref<`t>"
00:02:08 #14939 [Verbose] > nominal static_ref' t = $"StaticRef<`t>"
00:02:08 #14940 [Verbose] >
00:02:08 #14941 [Verbose] > ╭─[ 156.31ms - stdout ]────────────────────────────────────────────────────────╮
00:02:08 #14942 [Verbose] > │ ()                                                                           │
00:02:08 #14943 [Verbose] > │                                                                              │
00:02:08 #14944 [Verbose] > │                                                                              │
00:02:08 #14945 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:08 #14946 [Verbose] >
00:02:08 #14947 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:08 #14948 [Verbose] > // // test
00:02:08 #14949 [Verbose] >
00:02:08 #14950 [Verbose] > 10i32 |> iterate_ ((*) 2) 1i32
00:02:08 #14951 [Verbose] > |> _assert_eq 1024
00:02:08 #14952 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-3774-7429-7867df830bf7/main.spi
00:02:08 #14953 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-3775-7569-7446353953de/main.spi
00:02:08 #14954 [Verbose] >
00:02:08 #14955 [Verbose] > ╭─[ 134.13ms - stdout ]────────────────────────────────────────────────────────╮
00:02:08 #14956 [Verbose] > │ ()                                                                           │
00:02:08 #14957 [Verbose] > │                                                                              │
00:02:08 #14958 [Verbose] > │                                                                              │
00:02:08 #14959 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:08 #14960 [Verbose] >
00:02:08 #14961 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:08 #14962 [Verbose] > inl (~!\) forall t. (code : string) : t =
00:02:08 #14963 [Verbose] >     emit_expr () code
00:02:08 #14964 [Verbose] >
00:02:08 #14965 [Verbose] > inl (~!\\) forall t u. ((args : t), (code : string)) : u =
00:02:08 #14966 [Verbose] >     emit_expr args code
00:02:08 #14967 [Verbose] >
00:02:08 #14968 [Verbose] > inl new_box forall t. (x : t) : box t =
00:02:08 #14969 [Verbose] >     inl x = join x
00:02:08 #14970 [Verbose] >     !\($'"Box::new(!x)"')
00:02:08 #14971 [Verbose] >
00:02:08 #14972 [Verbose] > inl new_rc forall t. (x : t) : rc t =
00:02:08 #14973 [Verbose] >     inl x = join x
00:02:08 #14974 [Verbose] >     !\($'"std::rc::Rc::new(!x)"')
00:02:08 #14975 [Verbose] >
00:02:08 #14976 [Verbose] > inl rc_clone forall t. (x : rc t) : rc t =
00:02:08 #14977 [Verbose] >     inl x = join x
00:02:08 #14978 [Verbose] >     !\($'"std::rc::Rc::clone(&!x)"')
00:02:08 #14979 [Verbose] >
00:02:08 #14980 [Verbose] > inl rc_downgrade forall t. (x : rc t) : weak_rc t =
00:02:08 #14981 [Verbose] >     inl x = join x
00:02:08 #14982 [Verbose] >     !\($'"std::rc::Rc::downgrade(&!x)"')
00:02:08 #14983 [Verbose] >
00:02:08 #14984 [Verbose] > inl new_ref_cell forall t. (x : t) : ref_cell t =
00:02:08 #14985 [Verbose] >     inl x = join x
00:02:08 #14986 [Verbose] >     !\($'"std::cell::RefCell::new(!x)"')
00:02:08 #14987 [Verbose] >
00:02:08 #14988 [Verbose] > inl ref_cell_borrow forall t. (x : rc (ref_cell t)) : t =
00:02:08 #14989 [Verbose] >     inl x = join x
00:02:08 #14990 [Verbose] >     !\($'"*std::cell::RefCell::borrow(&std::rc::Rc::clone(&!x))"')
00:02:08 #14991 [Verbose] >
00:02:08 #14992 [Verbose] > inl ref_cell_borrow_mut forall t. (x : rc (ref_cell t)) : mut' t =
00:02:08 #14993 [Verbose] >     inl x = join x
00:02:08 #14994 [Verbose] >     !\($'"*std::cell::RefCell::borrow_mut(&std::rc::Rc::clone(&!x))"')
00:02:08 #14995 [Verbose] >
00:02:08 #14996 [Verbose] > inl to_mut forall t. (x : t) : mut' t =
00:02:08 #14997 [Verbose] >     // !\($'"let mut !x = !x"')
00:02:08 #14998 [Verbose] >     // !\($'"!x"')
00:02:08 #14999 [Verbose] >     emit_expr () $"\"let mut !x = !x\""
00:02:08 #15000 [Verbose] >     emit_expr () $"\"!x\""
00:02:08 #15001 [Verbose] >
00:02:08 #15002 [Verbose] > inl ref_map forall t u. (fn : t -> u) (x : ref' t) : ref' u =
00:02:08 #15003 [Verbose] >     !\($'"!fn(!x)"')
00:02:08 #15004 [Verbose] >
00:02:08 #15005 [Verbose] > inl from_mut forall t. (x : mut' t) : t =
00:02:08 #15006 [Verbose] >     !\($'"!x"')
00:02:08 #15007 [Verbose] >
00:02:08 #15008 [Verbose] > inl new_arc forall t. (x : t) : arc t =
00:02:08 #15009 [Verbose] >     inl x = join x
00:02:08 #15010 [Verbose] >     !\($'"std::sync::Arc::new(!x)"')
00:02:08 #15011 [Verbose] >
00:02:08 #15012 [Verbose] > inl box_fn forall t. (x : () -> ()) : box t =
00:02:08 #15013 [Verbose] >     inl x = join x
00:02:08 #15014 [Verbose] >     !\($'"Box::new(move || !x())"')
00:02:08 #15015 [Verbose] >
00:02:08 #15016 [Verbose] > inl new_pin forall t. (x : t) : pin (box t) =
00:02:08 #15017 [Verbose] >     inl x = join x
00:02:08 #15018 [Verbose] >     !\($'"Box::pin(!x)"')
00:02:08 #15019 [Verbose] >
00:02:08 #15020 [Verbose] > inl deref forall t. (ref : ref' t) : t =
00:02:08 #15021 [Verbose] >     inl ref = join ref
00:02:08 #15022 [Verbose] >     !\($'"*!ref"')
00:02:08 #15023 [Verbose] >
00:02:08 #15024 [Verbose] > inl ops_deref forall t. (ref : t) : t =
00:02:08 #15025 [Verbose] >     inl ref = join ref
00:02:08 #15026 [Verbose] >     !\($'"core::ops::Deref::deref(&!ref)"')
00:02:08 #15027 [Verbose] >
00:02:08 #15028 [Verbose] > inl func0_get forall t. (x : func0 t) : t =
00:02:08 #15029 [Verbose] >     inl x = join x
00:02:08 #15030 [Verbose] >     !\($'"!x()"')
00:02:08 #15031 [Verbose] >
00:02:08 #15032 [Verbose] > inl func0_move forall t. (fn : func0 t) : t =
00:02:08 #15033 [Verbose] >     inl fn = join fn
00:02:08 #15034 [Verbose] >     !\($'"(move || !fn())()"')
00:02:08 #15035 [Verbose] >
00:02:08 #15036 [Verbose] > inl move forall t. (fn : () -> t) : func0 t =
00:02:08 #15037 [Verbose] >     inl fn = join fn
00:02:08 #15038 [Verbose] >     !\($'"Func0::new(move || !fn())"')
00:02:08 #15039 [Verbose] >
00:02:08 #15040 [Verbose] > inl to_static_ref_unbox forall t. (x : ref' t) : static_ref' t =
00:02:08 #15041 [Verbose] >     $"!x |> unbox"
00:02:08 #15042 [Verbose] >
00:02:08 #15043 [Verbose] > inl from_static_ref_unbox forall t. (x : static_ref' t) : ref' t =
00:02:08 #15044 [Verbose] >     $"!x |> unbox"
00:02:08 #15045 [Verbose] >
00:02:08 #15046 [Verbose] > inl box_leak forall t. (x : box t) : static_ref' (mut' t) =
00:02:08 #15047 [Verbose] >     emit_expr () $"\"Box::leak(!x)\""
00:02:08 #15048 [Verbose] >
00:02:08 #15049 [Verbose] >
00:02:08 #15050 [Verbose] > inl fix_closure depth' x' =
00:02:08 #15051 [Verbose] >     inl depth = depth' |> fst
00:02:08 #15052 [Verbose] >     if depth = 1
00:02:08 #15053 [Verbose] >     then !\($'"!x' })"')
00:02:08 #15054 [Verbose] >     elif depth = 2
00:02:08 #15055 [Verbose] >     then !\($'"!x' }})"')
00:02:08 #15056 [Verbose] >     elif depth = 3
00:02:08 #15057 [Verbose] >     then !\($'"!x' }}})"')
00:02:08 #15058 [Verbose] >     elif depth = 4
00:02:08 #15059 [Verbose] >     then !\($'"!x' }}}})"')
00:02:08 #15060 [Verbose] >     elif depth = 5
00:02:08 #15061 [Verbose] >     then !\($'"!x' }}}}})"')
00:02:08 #15062 [Verbose] >     elif depth = 6 // , 4) // ?
00:02:08 #15063 [Verbose] >     then !\($'"!x' }}}}}})"')
00:02:08 #15064 [Verbose] >     elif depth = 7 // , 5) // 7
00:02:08 #15065 [Verbose] >     then !\($'"!x' }}}}}}})"')
00:02:08 #15066 [Verbose] >     elif depth = 8 // , 5) // 7
00:02:08 #15067 [Verbose] >     then !\($'"!x' }}}}}}}})"')
00:02:08 #15068 [Verbose] >
00:02:08 #15069 [Verbose] >     inl depth = depth' |> snd
00:02:08 #15070 [Verbose] >     if depth = 1
00:02:08 #15071 [Verbose] >     then !\($'"{ //"')
00:02:08 #15072 [Verbose] >     elif depth = 2
00:02:08 #15073 [Verbose] >     then !\($'"{{ //"')
00:02:08 #15074 [Verbose] >     elif depth = 3
00:02:08 #15075 [Verbose] >     then !\($'"{{{ //"')
00:02:08 #15076 [Verbose] >     elif depth = 4
00:02:08 #15077 [Verbose] >     then !\($'"{{{{ //"')
00:02:08 #15078 [Verbose] >     elif depth = 5
00:02:08 #15079 [Verbose] >     then !\($'"{{{{{ //"')
00:02:08 #15080 [Verbose] >     elif depth = 6
00:02:08 #15081 [Verbose] >     then !\($'"{{{{{{ //"')
00:02:08 #15082 [Verbose] >     elif depth = 7
00:02:08 #15083 [Verbose] >     then !\($'"{{{{{{{ //"')
00:02:08 #15084 [Verbose] >     elif depth = 8
00:02:08 #15085 [Verbose] >     then !\($'"{{{{{{{{ //"')
00:02:08 #15086 [Verbose] >
00:02:08 #15087 [Verbose] > ╭─[ 190.96ms - stdout ]────────────────────────────────────────────────────────╮
00:02:08 #15088 [Verbose] > │ let rec method1 (v0 : int32, v1 : int32) : int32 =                           │
00:02:08 #15089 [Verbose] > │     let v2 : bool = v1 <= 0                                                  │
00:02:08 #15090 [Verbose] > │     if v2 then                                                               │
00:02:08 #15091 [Verbose] > │         v0                                                                   │
00:02:08 #15092 [Verbose] > │     else                                                                     │
00:02:08 #15093 [Verbose] > │         let v3 : int32 = 2 * v0                                              │
00:02:08 #15094 [Verbose] > │         let v4 : int32 = v1 - 1                                              │
00:02:08 #15095 [Verbose] > │         method1(v3, v4)                                                      │
00:02:08 #15096 [Verbose] > │ and method2 (v0 : bool) : bool =                                             │
00:02:08 #15097 [Verbose] > │     v0                                                                       │
00:02:08 #15098 [Verbose] > │ and method0 () : unit =                                                      │
00:02:08 #15099 [Verbose] > │     let v0 : int32 = 1                                                       │
00:02:08 #15100 [Verbose] > │     let v1 : int32 = 10                                                      │
00:02:08 #15101 [Verbose] > │     let v2 : int32 = method1(v0, v1)                                         │
00:02:08 #15102 [Verbose] > │     let v3 : string = $"%A{v2}"                                              │
00:02:08 #15103 [Verbose] > │     System.Console.WriteLine v3                                              │
00:02:08 #15104 [Verbose] > │     let v4 : bool = v2 = 1024                                                │
00:02:08 #15105 [Verbose] > │     let v6 : bool =                                                          │
00:02:08 #15106 [Verbose] > │         if v4 then                                                           │
00:02:08 #15107 [Verbose] > │             true                                                             │
00:02:08 #15108 [Verbose] > │         else                                                                 │
00:02:08 #15109 [Verbose] > │             method2(v4)                                                      │
00:02:08 #15110 [Verbose] > │     let v7 : string = $"__expect / actual: %A{v2} / expected: %A{1024}"      │
00:02:08 #15111 [Verbose] > │     let v8 : bool = v6 = false                                               │
00:02:08 #15112 [Verbose] > │     if v8 then                                                               │
00:02:08 #15113 [Verbose] > │         failwith<unit> v7                                                    │
00:02:08 #15114 [Verbose] > │ method0()                                                                    │
00:02:08 #15115 [Verbose] > │                                                                              │
00:02:08 #15116 [Verbose] > │ 1024                                                                         │
00:02:08 #15117 [Verbose] > │                                                                              │
00:02:08 #15118 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:08 #15119 [Verbose] >
00:02:08 #15120 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:08 #15121 [Verbose] > inl iterate' f x0 num_steps =
00:02:08 #15122 [Verbose] >     listm.init num_steps id
00:02:08 #15123 [Verbose] >     |> listm.fold (fun x _ => f x) x0
00:02:08 #15124 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-3795-9507-998f4bb71146/main.spi
00:02:08 #15125 [Verbose] >
00:02:08 #15126 [Verbose] > ╭─[ 136.27ms - stdout ]────────────────────────────────────────────────────────╮
00:02:08 #15127 [Verbose] > │ ()                                                                           │
00:02:08 #15128 [Verbose] > │                                                                              │
00:02:08 #15129 [Verbose] > │                                                                              │
00:02:08 #15130 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:08 #15131 [Verbose] >
00:02:08 #15132 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:08 #15133 [Verbose] > // // test
00:02:08 #15134 [Verbose] >
00:02:08 #15135 [Verbose] > 10i32 |> iterate' ((*) 2) 1i32
00:02:08 #15136 [Verbose] > |> _assert_eq 1024
00:02:09 #15137 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-3808-0852-089d78969954/main.spi
00:02:09 #15138 [Verbose] >
00:02:09 #15139 [Verbose] > ╭─[ 165.22ms - stdout ]────────────────────────────────────────────────────────╮
00:02:09 #15140 [Verbose] > │ let rec method0 () : unit =                                                  │
00:02:09 #15141 [Verbose] > │     let v0 : string = $"%A{1024}"                                            │
00:02:09 #15142 [Verbose] > │     System.Console.WriteLine v0                                              │
00:02:09 #15143 [Verbose] > │     let v1 : string = $"__expect / actual: %A{1024} / expected: %A{1024}"    │
00:02:09 #15144 [Verbose] > │     ()                                                                       │
00:02:09 #15145 [Verbose] > │ method0()                                                                    │
00:02:09 #15146 [Verbose] > │                                                                              │
00:02:09 #15147 [Verbose] > │ 1024                                                                         │
00:02:09 #15148 [Verbose] > │                                                                              │
00:02:09 #15149 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:09 #15150 [Verbose] >
00:02:09 #15151 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:09 #15152 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:09 #15153 [Verbose] > │ ## find_last                                                                 │
00:02:09 #15154 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:09 #15155 [Verbose] >
00:02:09 #15156 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:09 #15157 [Verbose] > inl find_last forall item result. fold_fn fn target : option result =
00:02:09 #15158 [Verbose] >     fold_fn (fun (item : item) (result : option result) =>
00:02:09 #15159 [Verbose] >         match result with
00:02:09 #15160 [Verbose] >         | None => fn item
00:02:09 #15161 [Verbose] >         | result => result
00:02:09 #15162 [Verbose] >     ) target (None : option result)
00:02:09 #15163 [Verbose] >
00:02:09 #15164 [Verbose] > inl array_find_last forall item result. (fn : item -> option result) (target : a
00:02:09 #15165 [Verbose] > i32 item) : option result =
00:02:09 #15166 [Verbose] >     find_last am.foldBack fn target
00:02:09 #15167 [Verbose] >
00:02:09 #15168 [Verbose] > inl list_find_last forall item result. (fn : item -> option result) (target :
00:02:09 #15169 [Verbose] > list item) : option result =
00:02:09 #15170 [Verbose] >     find_last listm.foldBack fn target
00:02:09 #15171 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-3825-2525-2f60a4296ae3/main.spi
00:02:09 #15172 [Verbose] >
00:02:09 #15173 [Verbose] > ╭─[ 174.75ms - stdout ]────────────────────────────────────────────────────────╮
00:02:09 #15174 [Verbose] > │ ()                                                                           │
00:02:09 #15175 [Verbose] > │                                                                              │
00:02:09 #15176 [Verbose] > │                                                                              │
00:02:09 #15177 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:09 #15178 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-3789-8906-8299448c0057/main.spi
00:02:09 #15179 [Verbose] >
00:02:09 #15180 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:09 #15181 [Verbose] > #r
00:02:09 #15182 [Verbose] > "/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
00:02:09 #15183 [Verbose] > Net.Interactive.FSharp.dll"
00:02:09 #15184 [Verbose] > open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
00:02:09 #15185 [Verbose] > #r
00:02:09 #15186 [Verbose] > "/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
00:02:09 #15187 [Verbose] > Net.Interactive.dll"
00:02:09 #15188 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel
00:02:09 #15189 [Verbose] >
00:02:09 #15190 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:09 #15191 [Verbose] > //// test
00:02:09 #15192 [Verbose] >
00:02:09 #15193 [Verbose] > Formatter.ListExpansionLimit <- 100
00:02:10 #15194 [Verbose] >
00:02:10 #15195 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:10 #15196 [Verbose] > #r
00:02:10 #15197 [Verbose] > @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
00:02:10 #15198 [Verbose] > dard2.1/FSharp.Control.AsyncSeq.dll"
00:02:10 #15199 [Verbose] > #r
00:02:10 #15200 [Verbose] > @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
00:02:10 #15201 [Verbose] > 0/System.Reactive.dll"
00:02:10 #15202 [Verbose] > #r
00:02:10 #15203 [Verbose] > @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib
00:02:10 #15204 [Verbose] > netstandard2.0/System.Reactive.Linq.dll"
00:02:10 #15205 [Verbose] > #r
00:02:10 #15206 [Verbose] > @"../../../../../../../.nuget/packages/argu/6.2.2/lib/netstandard2.0/Argu.dll"
00:02:10 #15207 [Verbose] > #r
00:02:10 #15208 [Verbose] > @"../../../../../../../.nuget/packages/system.commandline/2.0.0-beta4.22272.1/li
00:02:10 #15209 [Verbose] > b/net6.0/System.CommandLine.dll"
00:02:10 #15210 [Verbose] > #r
00:02:10 #15211 [Verbose] > @"../../../../../../../.nuget/packages/fsharp.json/0.4.1/lib/netstandard2.0/FSha
00:02:10 #15212 [Verbose] > rp.Json.dll"
00:02:10 #15213 [Verbose] >
00:02:10 #15214 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:10 #15215 [Verbose] > type [[<Struct>]] US0 =
00:02:10 #15216 [Verbose] >     | US0_0
00:02:10 #15217 [Verbose] >     | US0_1
00:02:10 #15218 [Verbose] > and [[<Struct>]] US1 =
00:02:10 #15219 [Verbose] >     | US1_0
00:02:10 #15220 [Verbose] >     | US1_1 of f1_0 : US0
00:02:10 #15221 [Verbose] > let rec method0 (v0 : (unit -> unit)) : (unit -> unit) =
00:02:10 #15222 [Verbose] >     v0
00:02:10 #15223 [Verbose] > and closure0 () (v0 : (unit -> unit)) : System.IDisposable =
00:02:10 #15224 [Verbose] >     let mutable result = None
00:02:10 #15225 [Verbose] >     #if FABLE_COMPILER_RUST && !WASM
00:02:10 #15226 [Verbose] >     let v1 : (unit -> unit) = method0(v0)
00:02:10 #15227 [Verbose] >     let v2 : System.IDisposable = { new System.IDisposable with member _.Dispose
00:02:10 #15228 [Verbose] > () = Fable.Core.RustInterop.emitRustExpr () "v1()" }
00:02:10 #15229 [Verbose] >     v2
00:02:10 #15230 [Verbose] >     #endif
00:02:10 #15231 [Verbose] >     #if FABLE_COMPILER_RUST && WASM
00:02:10 #15232 [Verbose] >     let v3 : (unit -> unit) = method0(v0)
00:02:10 #15233 [Verbose] >     let v4 : System.IDisposable = { new System.IDisposable with member _.Dispose
00:02:10 #15234 [Verbose] > () = Fable.Core.RustInterop.emitRustExpr () "v3()" }
00:02:10 #15235 [Verbose] >     v4
00:02:10 #15236 [Verbose] >     #endif
00:02:10 #15237 [Verbose] >     #if !FABLE_COMPILER && !F...
00:02:10 #15238 [Verbose] > [NbConvertApp] Converting notebook seq.dib.ipynb to html
00:02:10 #15239 [Verbose] > /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:02:10 #15240 [Verbose] >   validate(nb)
00:02:10 #15241 [Verbose] > /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:02:10 #15242 [Verbose] >   return _pygments_highlight(
00:02:11 #15243 [Verbose] > [NbConvertApp] Writing 406487 bytes to seq.dib.html
00:02:11 #15244 [Verbose] >
00:02:11 #15245 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:11 #15246 [Verbose] > let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
00:02:11 #15247 [Verbose] >     let v2 : string = v0.ToString ()
00:02:11 #15248 [Verbose] >     let v3 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
00:02:11 #15249 [Verbose] >     let v4 : System.Guid = System.Guid $"{v3}{v2.[[v3.Length..]]}"
00:02:11 #15250 [Verbose] >     v4
00:02:11 #15251 [Verbose] > and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
00:02:11 #15252 [Verbose] >     closure1(v0)
00:02:11 #15253 [Verbose] > and closure5 (v0 : string, v1 : string) (v2 : string) : string =
00:02:11 #15254 [Verbose] >     let v3 : string = v2.Replace (v0, v1)
00:02:11 #15255 [Verbose] >     v3
00:02:11 #15256 [Verbose] > and closure4 (v0 : string) (v1 : string) : (string -> string) =
00:02:11 #15257 [Verbose] >     closure5(v0, v1)
00:02:11 #15258 [Verbose] > and closure3 () (v0 : string) : (string -> (string -> string)) =
00:02:11 #15259 [Verbose] >     closure4(v0)
00:02:11 #15260 [Verbose] > and method0 () : (string -> (string -> (string -> string))) =
00:02:11 #15261 [Verbose] >     closure3()
00:02:11 #15262 [Verbose] > and closure2 () (v0 : System.Guid) : System.DateTime =
00:02:11 #15263 [Verbose] >   ...
00:02:11 #15264 [Verbose] >
00:02:11 #15265 [Verbose] > ╭─[ 2.66s - stdout ]───────────────────────────────────────────────────────────╮
00:02:11 #15266 [Verbose] > │ ()                                                                           │
00:02:11 #15267 [Verbose] > │                                                                              │
00:02:11 #15268 [Verbose] > │                                                                              │
00:02:11 #15269 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:11 #15270 [Verbose] >
00:02:11 #15271 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:11 #15272 [Verbose] > let rec closure0 () () : string =
00:02:11 #15273 [Verbose] >     let v0 : string =
00:02:11 #15274 [Verbose] > System.Reflection.Assembly.GetEntryAssembly().GetName().Name
00:02:11 #15275 [Verbose] >     let v1 : (unit -> string) = System.IO.Path.GetTempPath
00:02:11 #15276 [Verbose] >     let v2 : string = v1 ()
00:02:11 #15277 [Verbose] >     let v3 : string = $"{v0}"
00:02:11 #15278 [Verbose] >     let v4 : string = System.IO.Path.Combine (v2, v3)
00:02:11 #15279 [Verbose] >     let v5 : System.DateTime = System.DateTime.Now
00:02:11 #15280 [Verbose] >     let v6 : System.Guid = System.Guid.NewGuid ()
00:02:11 #15281 [Verbose] >     let v7 : string = v6.ToString ()
00:02:11 #15282 [Verbose] >     let v8 : string = v5.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
00:02:11 #15283 [Verbose] >     let v9 : System.Guid = System.Guid $"{v8}{v7.[[v8.Length..]]}"
00:02:11 #15284 [Verbose] >     let v10 : string = v9.ToString ()
00:02:11 #15285 [Verbose] >     let v11 : string = System.IO.Path.Combine (v4, v10)
00:02:11 #15286 [Verbose] >     v11
00:02:11 #15287 [Verbose] > let v0 : (unit -> string) = closure0()
00:02:11 #15288 [Verbose] > let create_temp_directory_name x = v0 x
00:02:11 #15289 [Verbose] > ()
00:02:11 #15290 [Verbose] >
00:02:11 #15291 [Verbose] >
00:02:11 #15292 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:11 #15293 [Verbose] > #if !INTERACTIVE
00:02:11 #15294 [Verbose] > namespace Polyglot
00:02:11 #15295 [Verbose] > #endif
00:02:11 #15296 [Verbose] >
00:02:11 #15297 [Verbose] > module Common =
00:02:11 #15298 [Verbose] >
00:02:11 #15299 [Verbose] > #if !WASM && !FABLE_COMPILER
00:02:11 #15300 [Verbose] >     let Date_time = {|
00:02:11 #15301 [Verbose] >         new_guid_from_date_time =
00:02:11 #15302 [Verbose] > #if !INTERACTIVE
00:02:11 #15303 [Verbose] >             Date_time.new_guid_from_date_time
00:02:11 #15304 [Verbose] > #else
00:02:11 #15305 [Verbose] >             new_guid_from_date_time
00:02:11 #15306 [Verbose] > #endif
00:02:11 #15307 [Verbose] >     |}
00:02:11 #15308 [Verbose] > #endif
00:02:11 #15309 [Verbose] >
00:02:11 #15310 [Verbose] >     let nl = System.Environment.NewLine
00:02:11 #15311 [Verbose] >     let q = @""""
00:02:11 #15312 [Verbose] >
00:02:11 #15313 [Verbose] >     let inline cons head tail = head :: tail
00:02:11 #15314 [Verbose] >
00:02:11 #15315 [Verbose] >     module String =
00:02:11 #15316 [Verbose] >         let inline contains (value : string) (input : string) =
00:02:11 #15317 [Verbose] >             input.Contains value
00:02:11 #15318 [Verbose] >
00:02:11 #15319 [Verbose] >         let inline endsWith (value : string) (input : string) =
00:02:11 #15320 [Verbose] >             input.EndsWith value
00:02:11 #15321 [Verbose] >
00:02:11 #15322 [Verbose] >         let inline padLeft totalWidth paddingChar (input : string) =
00:02:11 #15323 [Verbose] >             input.PadLeft (totalWidth, paddingChar)
00:02:11 #15324 [Verbose] >
00:02:11 #15325 [Verbose] >         let inline replace (oldVa...
00:02:11 #15326 [Debug] executeAsync / exitCode: 0 / output.Length: 174808
00:02:11 #15327 [Debug] main / executeCommand / exitCode: 0
00:02:11 #15328 [Verbose] >
00:02:11 #15329 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:11 #15330 [Verbose] > #if !INTERACTIVE
00:02:11 #15331 [Verbose] > namespace Polyglot
00:02:11 #15332 [Verbose] > #endif
00:02:11 #15333 [Verbose] >
00:02:11 #15334 [Verbose] > module CommonFSharp =
00:02:11 #15335 [Verbose] >
00:02:11 #15336 [Verbose] >     open Common
00:02:11 #15337 [Verbose] >
00:02:11 #15338 [Verbose] >     /// ## getUnionCaseName
00:02:11 #15339 [Verbose] >
00:02:11 #15340 [Verbose] >     let inline getUnionCaseName<'T> (x: 'T) =
00:02:11 #15341 [Verbose] >         match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with
00:02:11 #15342 [Verbose] >         | case, _ -> case.Name
00:02:11 #15343 [Verbose] >
00:02:11 #15344 [Verbose] >
00:02:11 #15345 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:11 #15346 [Verbose] > #if !INTERACTIVE
00:02:11 #15347 [Verbose] > namespace Polyglot
00:02:11 #15348 [Verbose] > #endif
00:02:11 #15349 [Verbose] >
00:02:11 #15350 [Verbose] > module Crypto =
00:02:11 #15351 [Verbose] >
00:02:11 #15352 [Verbose] >     open Common
00:02:11 #15353 [Verbose] >
00:02:11 #15354 [Verbose] >     /// ## hashText
00:02:11 #15355 [Verbose] >
00:02:11 #15356 [Verbose] >     let hashText (input : string) =
00:02:11 #15357 [Verbose] >         use sha256 = System.Security.Cryptography.SHA256.Create ()
00:02:11 #15358 [Verbose] >         input
00:02:11 #15359 [Verbose] >         |> System.Text.Encoding.UTF8.GetBytes
00:02:11 #15360 [Verbose] >         |> sha256.ComputeHash
00:02:11 #15361 [Verbose] >         |> Array.map (fun b -> b.ToString "x2")
00:02:11 #15362 [Verbose] >         |> String.concat ""
00:02:11 #15363 [Verbose] >
00:02:12 #15364 [Verbose] >
00:02:12 #15365 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:12 #15366 [Verbose] > #if !INTERACTIVE
00:02:12 #15367 [Verbose] > namespace Polyglot
00:02:12 #15368 [Verbose] > #endif
00:02:12 #15369 [Verbose] >
00:02:12 #15370 [Verbose] > module Async =
00:02:12 #15371 [Verbose] >
00:02:12 #15372 [Verbose] >     open Common
00:02:12 #15373 [Verbose] >
00:02:12 #15374 [Verbose] >     /// ## choice
00:02:12 #15375 [Verbose] >
00:02:12 #15376 [Verbose] >     let inline choice asyncs = async {
00:02:12 #15377 [Verbose] >         let e = Event<_> ()
00:02:12 #15378 [Verbose] >         use cts = new System.Threading.CancellationTokenSource ()
00:02:12 #15379 [Verbose] >         let fn =
00:02:12 #15380 [Verbose] >             asyncs
00:02:12 #15381 [Verbose] >             |> Seq.map (fun a -> async {
00:02:12 #15382 [Verbose] >                 let! x = a
00:02:12 #15383 [Verbose] >                 e.Trigger x
00:02:12 #15384 [Verbose] >             })
00:02:12 #15385 [Verbose] >             |> Async.Parallel
00:02:12 #15386 [Verbose] >             |> Async.Ignore
00:02:12 #15387 [Verbose] >         Async.Start (fn, cts.Token)
00:02:12 #15388 [Verbose] >         let! result = Async.AwaitEvent e.Publish
00:02:12 #15389 [Verbose] >         cts.Cancel ()
00:02:12 #15390 [Verbose] >         return result
00:02:12 #15391 [Verbose] >     }
00:02:12 #15392 [Verbose] >
00:02:12 #15393 [Verbose] >     /// ## map
00:02:12 #15394 [Verbose] >
00:02:12 #15395 [Verbose] >     let inline map fn a = async {
00:02:12 #15396 [Verbose] >         let! x = a
00:02:12 #15397 [Verbose] >         return fn x
00:02:12 #15398 [Verbose] >     }
00:02:12 #15399 [Verbose] >
00:02:12 #15400 [Verbose] >     /// ## catch
00:02:12 #15401 [Verbose] >
00:02:12 #15402 [Verbose] >     let inline catch a =
00:02:12 #15403 [Verbose] >         a
00:02:12 #15404 [Verbose] >         |> Async.Catch
00:02:12 #15405 [Verbose] >         ...
00:02:12 #15406 [Verbose] > [NbConvertApp] Converting notebook rust.dib.ipynb to html
00:02:12 #15407 [Verbose] > /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:02:12 #15408 [Verbose] >   validate(nb)
00:02:12 #15409 [Verbose] >
00:02:12 #15410 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:12 #15411 [Verbose] > #if !INTERACTIVE
00:02:12 #15412 [Verbose] > namespace Polyglot
00:02:12 #15413 [Verbose] > #endif
00:02:12 #15414 [Verbose] >
00:02:12 #15415 [Verbose] > module AsyncSeq =
00:02:12 #15416 [Verbose] >
00:02:12 #15417 [Verbose] >     open Common
00:02:12 #15418 [Verbose] >
00:02:12 #15419 [Verbose] >     /// ## subscribeEvent
00:02:12 #15420 [Verbose] >
00:02:12 #15421 [Verbose] >     let inline subscribeEvent (event: IEvent<'H, 'A>) map =
00:02:12 #15422 [Verbose] >         let observable = System.Reactive.Linq.Observable.FromEventPattern<'H,
00:02:12 #15423 [Verbose] > 'A>(event.AddHandler, event.RemoveHandler)
00:02:12 #15424 [Verbose] >         System.Reactive.Linq.Observable.Select (observable, fun event -> map
00:02:12 #15425 [Verbose] > event.EventArgs)
00:02:12 #15426 [Verbose] >         |> FSharp.Control.AsyncSeq.ofObservableBuffered
00:02:12 #15427 [Verbose] >
00:02:12 #15428 [Verbose] >     let subscribeToken (token : System.Threading.CancellationToken) =
00:02:12 #15429 [Verbose] >         let tcs = new System.Threading.Tasks.TaskCompletionSource ()
00:02:12 #15430 [Verbose] >         System.Action tcs.SetResult |> token.Register |> ignore
00:02:12 #15431 [Verbose] >         let start = System.DateTime.Now.Ticks
00:02:12 #15432 [Verbose] >         FSharp.Control.AsyncSeq.unfoldAsync
00:02:12 #15433 [Verbose] >             (fun (...
00:02:12 #15434 [Verbose] >
00:02:12 #15435 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:12 #15436 [Verbose] > #if !INTERACTIVE
00:02:12 #15437 [Verbose] > namespace Polyglot
00:02:12 #15438 [Verbose] > #endif
00:02:12 #15439 [Verbose] >
00:02:12 #15440 [Verbose] > module Networking =
00:02:12 #15441 [Verbose] >
00:02:12 #15442 [Verbose] >     open Common
00:02:12 #15443 [Verbose] >
00:02:12 #15444 [Verbose] >     /// ## testPortOpen
00:02:12 #15445 [Verbose] >
00:02:12 #15446 [Verbose] >     let inline testPortOpen port = async {
00:02:12 #15447 [Verbose] >         let! ct = Async.CancellationToken
00:02:12 #15448 [Verbose] >         use client = new System.Net.Sockets.TcpClient ()
00:02:12 #15449 [Verbose] >         try
00:02:12 #15450 [Verbose] >             do! client.ConnectAsync ("127.0.0.1", port, ct) |>
00:02:12 #15451 [Verbose] > Async.awaitValueTaskUnit
00:02:12 #15452 [Verbose] >             return true
00:02:12 #15453 [Verbose] >         with ex ->
00:02:12 #15454 [Verbose] >             trace Verbose (fun () -> $"testPortOpen / ex: {ex |>
00:02:12 #15455 [Verbose] > formatException}") getLocals
00:02:12 #15456 [Verbose] >             return false
00:02:12 #15457 [Verbose] >     }
00:02:12 #15458 [Verbose] >
00:02:12 #15459 [Verbose] >     let inline testPortOpenTimeout timeout port = async {
00:02:12 #15460 [Verbose] >         let! result =
00:02:12 #15461 [Verbose] >             testPortOpen port
00:02:12 #15462 [Verbose] >             |> Async.runWithTimeoutAsync timeout
00:02:12 #15463 [Verbose] >         return
00:02:12 #15464 [Verbose] >             match result with
00:02:12 #15465 [Verbose] >             | None -> false
00:02:12 #15466 [Verbose] > ...
00:02:12 #15467 [Verbose] > /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:02:12 #15468 [Verbose] >   return _pygments_highlight(
00:02:12 #15469 [Verbose] >
00:02:12 #15470 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:12 #15471 [Verbose] > #if !INTERACTIVE
00:02:12 #15472 [Verbose] > namespace Polyglot
00:02:12 #15473 [Verbose] > #endif
00:02:12 #15474 [Verbose] >
00:02:12 #15475 [Verbose] > module Runtime =
00:02:12 #15476 [Verbose] >
00:02:12 #15477 [Verbose] >     open Common
00:02:12 #15478 [Verbose] >
00:02:12 #15479 [Verbose] >     /// ## isWindows
00:02:12 #15480 [Verbose] >
00:02:12 #15481 [Verbose] >     let isWindows =
00:02:12 #15482 [Verbose] >         fun () ->
00:02:12 #15483 [Verbose] >             System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform
00:02:12 #15484 [Verbose] >                 System.Runtime.InteropServices.OSPlatform.Windows
00:02:12 #15485 [Verbose] >         |> memoize
00:02:12 #15486 [Verbose] >
00:02:12 #15487 [Verbose] >     /// ## getExecutableSuffix
00:02:12 #15488 [Verbose] >
00:02:12 #15489 [Verbose] >     let inline getExecutableSuffix () =
00:02:12 #15490 [Verbose] >         if isWindows ()
00:02:12 #15491 [Verbose] >         then ".exe"
00:02:12 #15492 [Verbose] >         else ""
00:02:12 #15493 [Verbose] >
00:02:12 #15494 [Verbose] >     /// ## splitCommand
00:02:12 #15495 [Verbose] >
00:02:12 #15496 [Verbose] >     type private CommandParseStep =
00:02:12 #15497 [Verbose] >         | Start
00:02:12 #15498 [Verbose] >         | Path of quoted: bool
00:02:12 #15499 [Verbose] >         | Arguments
00:02:12 #15500 [Verbose] >
00:02:12 #15501 [Verbose] >     let splitCommand (command: string) =
00:02:12 #15502 [Verbose] >         let rec loop (path, args) chars step =
00:02:12 #15503 [Verbose] >             match chars, step with
00:02:12 #15504 [Verbose] >             | ('"' | '\'') :: tail, _ when path = "" -> loop (pat...
00:02:12 #15505 [Verbose] > [NbConvertApp] Writing 304806 bytes to rust.dib.html
00:02:13 #15506 [Debug] executeAsync / exitCode: 0 / output.Length: 10435
00:02:13 #15507 [Debug] main / executeCommand / exitCode: 0
00:02:13 #15508 [Verbose] >
00:02:13 #15509 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:13 #15510 [Verbose] > #if !INTERACTIVE
00:02:13 #15511 [Verbose] > namespace Polyglot
00:02:13 #15512 [Verbose] > #endif
00:02:13 #15513 [Verbose] >
00:02:13 #15514 [Verbose] > module FileSystem =
00:02:13 #15515 [Verbose] >
00:02:13 #15516 [Verbose] >     let File_system = {|
00:02:13 #15517 [Verbose] >         create_temp_directory_name =
00:02:13 #15518 [Verbose] > #if !INTERACTIVE
00:02:13 #15519 [Verbose] >             File_system.create_temp_directory_name
00:02:13 #15520 [Verbose] > #else
00:02:13 #15521 [Verbose] >             create_temp_directory_name
00:02:13 #15522 [Verbose] > #endif
00:02:13 #15523 [Verbose] >     |}
00:02:13 #15524 [Verbose] >
00:02:13 #15525 [Verbose] >     open Common
00:02:13 #15526 [Verbose] >
00:02:13 #15527 [Verbose] >     /// ## Operators
00:02:13 #15528 [Verbose] >
00:02:13 #15529 [Verbose] >     module Operators =
00:02:13 #15530 [Verbose] >         let inline (</>) a b =
00:02:13 #15531 [Verbose] >             System.IO.Path.Combine (a, b)
00:02:13 #15532 [Verbose] >
00:02:13 #15533 [Verbose] >     open Operators
00:02:13 #15534 [Verbose] >
00:02:13 #15535 [Verbose] >     /// ## createTempDirectory
00:02:13 #15536 [Verbose] >
00:02:13 #15537 [Verbose] >     let inline createTempDirectory () =
00:02:13 #15538 [Verbose] >         let tempFolder = File_system.create_temp_directory_name ()
00:02:13 #15539 [Verbose] >         let result = System.IO.Directory.CreateDirectory tempFolder
00:02:13 #15540 [Verbose] >
00:02:13 #15541 [Verbose] >         if not result.Exists then
00:02:13 #15542 [Verbose] >             let getLocals () =
00:02:13 #15543 [Verbose] >                 $"tempFolder: {tempFolder} / result: {({|
00:02:13 #15544 [Verbose] >         ...
00:02:15 #15545 [Verbose] >
00:02:15 #15546 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:15 #15547 [Verbose] > open Common
00:02:15 #15548 [Verbose] > open FileSystem.Operators
00:02:15 #15549 [Verbose] >
00:02:15 #15550 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:15 #15551 [Verbose] > let tmpSpiralPath = Path.GetTempPath () </> "!dotnet-interactive-spiral"
00:02:15 #15552 [Verbose] > let linePlotsDataPath = tmpSpiralPath </> "line-plots-data"
00:02:15 #15553 [Verbose] > let linePlotsSvgPath = tmpSpiralPath </> "line-plots-svg"
00:02:15 #15554 [Verbose] >
00:02:15 #15555 [Verbose] > [[ tmpSpiralPath; linePlotsDataPath; linePlotsSvgPath ]]
00:02:15 #15556 [Verbose] > |> List.iter (fun dir -> if Directory.Exists dir |> not then
00:02:15 #15557 [Verbose] > Directory.CreateDirectory dir |> ignore)
00:02:15 #15558 [Verbose] >
00:02:15 #15559 [Verbose] > Formatter.Register<struct (string * string * string * struct (string * float
00:02:15 #15560 [Verbose] > array * float array) array)> (
00:02:15 #15561 [Verbose] >     (fun struct (caption, x_desc, y_desc, ys) ->
00:02:15 #15562 [Verbose] >         let json = (caption, x_desc, y_desc, ys) |> FSharp.Json.Json.serialize
00:02:15 #15563 [Verbose] >         async {
00:02:15 #15564 [Verbose] >             let hashHex = json |> Crypto.hashText
00:02:15 #15565 [Verbose] >             let svgPath = linePlotsSvgPath </> $"{hashHex}.svg"
00:02:15 #15566 [Verbose] >
00:02:15 #15567 [Verbose] >             if System.IO.File.Exi...
00:02:15 #15568 [Verbose] >
00:02:15 #15569 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:15 #15570 [Verbose] > // // test
00:02:15 #15571 [Verbose] >
00:02:15 #15572 [Verbose] > open testing
00:02:16 #15573 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-4489-8902-814bfb9ab174/main.spi
00:02:16 #15574 [Verbose] >
00:02:16 #15575 [Verbose] > ╭─[ 817.75ms - stdout ]────────────────────────────────────────────────────────╮
00:02:16 #15576 [Verbose] > │ ()                                                                           │
00:02:16 #15577 [Verbose] > │                                                                              │
00:02:16 #15578 [Verbose] > │                                                                              │
00:02:16 #15579 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:16 #15580 [Verbose] >
00:02:16 #15581 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:16 #15582 [Verbose] > open listm'_operators
00:02:16 #15583 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-4535-3552-39b1e5a4fe6d/main.spi
00:02:16 #15584 [Verbose] >
00:02:16 #15585 [Verbose] > ╭─[ 115.83ms - stdout ]────────────────────────────────────────────────────────╮
00:02:16 #15586 [Verbose] > │ ()                                                                           │
00:02:16 #15587 [Verbose] > │                                                                              │
00:02:16 #15588 [Verbose] > │                                                                              │
00:02:16 #15589 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:16 #15590 [Verbose] >
00:02:16 #15591 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:16 #15592 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:16 #15593 [Verbose] > │ ## init_series                                                               │
00:02:16 #15594 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:16 #15595 [Verbose] >
00:02:16 #15596 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:16 #15597 [Verbose] > // // test
00:02:16 #15598 [Verbose] >
00:02:16 #15599 [Verbose] > inl x : a _ f64 = am'.init_series -3 3 0.01
00:02:16 #15600 [Verbose] > inl y = x |> am.map math.square
00:02:16 #15601 [Verbose] > "square", "x", "y", ;[[ "square", x, y ]]
00:02:16 #15602 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-4547-4729-40e938ca4512/main.spi
00:02:16 #15603 [Verbose] >
00:02:16 #15604 [Verbose] > ╭─[ 206.37ms - return value ]──────────────────────────────────────────────────╮
00:02:16 #15605 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480"                          │
00:02:16 #15606 [Verbose] > │ xmlns="http://www.w3.org/2000/svg">                                          │
00:02:16 #15607 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414"        │
00:02:16 #15608 [Verbose] > │ stroke="none"/>                                                              │
00:02:16 #15609 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle"                        │
00:02:16 #15610 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1"            │
00:02:16 #15611 [Verbose] > │ fill="#FFFFFF">                                                              │
00:02:16 #15612 [Verbose] > │ square                                                                       │
00:02:16 #15613 [Verbose] > │ </text>                                                                      │
00:02:16 #15614 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="61" y1="424" x2="61" │
00:02:16 #15615 [Verbose] > │ y2="75"/>                                                                    │
00:02:16 #15616 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:02:16 #15617 [Verbose] > │ y2="75"/>                                                                    │
00:02:16 #15618 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="78" y1="424" x2="78" │
00:02:16 #15619 [Verbose] > │ y2="75"/>                                                                    │
00:02:16 #15620 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="86" y1="424" x2="86" │
00:02:16 #15621 [Verbose] > │ y2="75"/>                                                                    │
00:02:16 #15622 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="94" y1="424" x2="94" │
00:02:16 #15623 [Verbose] > │ ...                                                                          │
00:02:16 #15624 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:16 #15625 [Verbose] >
00:02:16 #15626 [Verbose] > ╭─[ 215.46ms - stdout ]────────────────────────────────────────────────────────╮
00:02:16 #15627 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │
00:02:16 #15628 [Verbose] > │ let rec method1 (v0 : Mut0) : bool =                                         │
00:02:16 #15629 [Verbose] > │     let v1 : int32 = v0.l0                                                   │
00:02:16 #15630 [Verbose] > │     let v2 : bool = v1 < 601                                                 │
00:02:16 #15631 [Verbose] > │     v2                                                                       │
00:02:16 #15632 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool =                                 │
00:02:16 #15633 [Verbose] > │     let v2 : int32 = v1.l0                                                   │
00:02:16 #15634 [Verbose] > │     let v3 : bool = v2 < v0                                                  │
00:02:16 #15635 [Verbose] > │     v3                                                                       │
00:02:16 #15636 [Verbose] > │ and method3 (v0 : (struct (string * (float []) * (float [])) [])) : (struct  │
00:02:16 #15637 [Verbose] > │ (string * (float []) * (float [])) []) =                                     │
00:02:16 #15638 [Verbose] > │     v0                                                                       │
00:02:16 #15639 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:02:16 #15640 [Verbose] > │ []) * (float [])) [])) =                                                     │
00:02:16 #15641 [Verbose] > │     let v0 : (float []) = Array.zeroCreate<float> (601)                      │
00:02:16 #15642 [Verbose] > │     let v1 : Mut0 = {l0 = 0} : Mut0                                          │
00:02:16 #15643 [Verbose] > │     while method1(v1) do                                                     │
00:02:16 #15644 [Verbose] > │         let v3 : int32 = v1.l0                                               │
00:02:16 #15645 [Verbose] > │         let v4 : float = float v3                                            │
00:02:16 #15646 [Verbose] > │         let v5 : float = 0.01 * v4                                           │
00:02:16 #15647 [Verbose] > │         let v6 : float = -3.0 + v5                                           │
00:02:16 #15648 [Verbose] > │         v0.[int v3] <- v6                                                    │
00:02:16 #15649 [Verbose] > │         let v7 : int32 = v3 + 1                                              │
00:02:16 #15650 [Verbose] > │         v1.l0 <- v7                                                          │
00:02:16 #15651 [Verbose] > │         ()                                                                   │
00:02:16 #15652 [Verbose] > │     let v8 : int32 = v0.Length                                               │
00:02:16 #15653 [Verbose] > │     let v9 : (float []) = Array.zeroCreate<float> (v8)                       │
00:02:16 #15654 [Verbose] > │     let v10 : Mut0 = {l0 = 0} : Mut0                                         │
00:02:16 #15655 [Verbose] > │     while method2(v8, v10) do                                                │
00:02:16 #15656 [Verbose] > │         let v12 : int32 = v10.l0                                             │
00:02:16 #15657 [Verbose] > │         let v13 : float = v0.[int v12]                                       │
00:02:16 #15658 [Verbose] > │         let v14 : float = v13 ** 2.0                                         │
00:02:16 #15659 [Verbose] > │         v9.[int v12] <- v14                                                  │
00:02:16 #15660 [Verbose] > │         let v15 : int32 = v12 + 1                                            │
00:02:16 #15661 [Verbose] > │         v10.l0 <- v15                                                        │
00:02:16 #15662 [Verbose] > │         ()                                                                   │
00:02:16 #15663 [Verbose] > │     let v16 : string = "square"                                              │
00:02:16 #15664 [Verbose] > │     let v17 : (struct (string * (float []) * (float [])) []) = [|struct      │
00:02:16 #15665 [Verbose] > │ (v16, v0, v9)|]                                                              │
00:02:16 #15666 [Verbose] > │     let v18 : (struct (string * (float []) * (float [])) []) = method3(v17)  │
00:02:16 #15667 [Verbose] > │     let v19 : string = "x"                                                   │
00:02:16 #15668 [Verbose] > │     let v20 : string = "y"                                                   │
00:02:16 #15669 [Verbose] > │     struct (v16, v19, v20, v18)                                              │
00:02:16 #15670 [Verbose] > │ method0()                                                                    │
00:02:16 #15671 [Verbose] > │                                                                              │
00:02:16 #15672 [Verbose] > │                                                                              │
00:02:16 #15673 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:16 #15674 [Verbose] >
00:02:16 #15675 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:16 #15676 [Verbose] > // // test
00:02:16 #15677 [Verbose] >
00:02:16 #15678 [Verbose] > inl x : a _ f64 = am'.init_series -10 10 0.1
00:02:16 #15679 [Verbose] > inl y_sin = x |> am.map sin
00:02:16 #15680 [Verbose] > inl y_cos = x |> am.map cos
00:02:16 #15681 [Verbose] > "sin cos", "x", "y", ;[[ "sin", x, y_sin; "cos", x, y_cos ]]
00:02:16 #15682 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-4569-6910-662ef55c2afc/main.spi
00:02:16 #15683 [Verbose] >
00:02:16 #15684 [Verbose] > ╭─[ 152.01ms - return value ]──────────────────────────────────────────────────╮
00:02:16 #15685 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480"                          │
00:02:16 #15686 [Verbose] > │ xmlns="http://www.w3.org/2000/svg">                                          │
00:02:16 #15687 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414"        │
00:02:16 #15688 [Verbose] > │ stroke="none"/>                                                              │
00:02:16 #15689 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle"                        │
00:02:16 #15690 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1"            │
00:02:16 #15691 [Verbose] > │ fill="#FFFFFF">                                                              │
00:02:16 #15692 [Verbose] > │ sin cos                                                                      │
00:02:16 #15693 [Verbose] > │ </text>                                                                      │
00:02:16 #15694 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="57" y1="424" x2="57" │
00:02:16 #15695 [Verbose] > │ y2="75"/>                                                                    │
00:02:16 #15696 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:02:16 #15697 [Verbose] > │ y2="75"/>                                                                    │
00:02:16 #15698 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="82" y1="424" x2="82" │
00:02:16 #15699 [Verbose] > │ y2="75"/>                                                                    │
00:02:16 #15700 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="94" y1="424" x2="94" │
00:02:16 #15701 [Verbose] > │ y2="75"/>                                                                    │
00:02:16 #15702 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="107" y1="424"        │
00:02:16 #15703 [Verbose] > │ x2="10...                                                                    │
00:02:16 #15704 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:16 #15705 [Verbose] >
00:02:16 #15706 [Verbose] > ╭─[ 155.61ms - stdout ]────────────────────────────────────────────────────────╮
00:02:16 #15707 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │
00:02:16 #15708 [Verbose] > │ let rec method1 (v0 : Mut0) : bool =                                         │
00:02:16 #15709 [Verbose] > │     let v1 : int32 = v0.l0                                                   │
00:02:16 #15710 [Verbose] > │     let v2 : bool = v1 < 201                                                 │
00:02:16 #15711 [Verbose] > │     v2                                                                       │
00:02:16 #15712 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool =                                 │
00:02:16 #15713 [Verbose] > │     let v2 : int32 = v1.l0                                                   │
00:02:16 #15714 [Verbose] > │     let v3 : bool = v2 < v0                                                  │
00:02:16 #15715 [Verbose] > │     v3                                                                       │
00:02:16 #15716 [Verbose] > │ and method3 (v0 : (struct (string * (float []) * (float [])) [])) : (struct  │
00:02:16 #15717 [Verbose] > │ (string * (float []) * (float [])) []) =                                     │
00:02:16 #15718 [Verbose] > │     v0                                                                       │
00:02:16 #15719 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:02:16 #15720 [Verbose] > │ []) * (float [])) [])) =                                                     │
00:02:16 #15721 [Verbose] > │     let v0 : (float []) = Array.zeroCreate<float> (201)                      │
00:02:16 #15722 [Verbose] > │     let v1 : Mut0 = {l0 = 0} : Mut0                                          │
00:02:16 #15723 [Verbose] > │     while method1(v1) do                                                     │
00:02:16 #15724 [Verbose] > │         let v3 : int32 = v1.l0                                               │
00:02:16 #15725 [Verbose] > │         let v4 : float = float v3                                            │
00:02:16 #15726 [Verbose] > │         let v5 : float = 0.1 * v4                                            │
00:02:16 #15727 [Verbose] > │         let v6 : float = -10.0 + v5                                          │
00:02:16 #15728 [Verbose] > │         v0.[int v3] <- v6                                                    │
00:02:16 #15729 [Verbose] > │         let v7 : int32 = v3 + 1                                              │
00:02:16 #15730 [Verbose] > │         v1.l0 <- v7                                                          │
00:02:16 #15731 [Verbose] > │         ()                                                                   │
00:02:16 #15732 [Verbose] > │     let v8 : int32 = v0.Length                                               │
00:02:16 #15733 [Verbose] > │     let v9 : (float []) = Array.zeroCreate<float> (v8)                       │
00:02:16 #15734 [Verbose] > │     let v10 : Mut0 = {l0 = 0} : Mut0                                         │
00:02:16 #15735 [Verbose] > │     while method2(v8, v10) do                                                │
00:02:16 #15736 [Verbose] > │         let v12 : int32 = v10.l0                                             │
00:02:16 #15737 [Verbose] > │         let v13 : float = v0.[int v12]                                       │
00:02:16 #15738 [Verbose] > │         let v14 : float = sin v13                                            │
00:02:16 #15739 [Verbose] > │         v9.[int v12] <- v14                                                  │
00:02:16 #15740 [Verbose] > │         let v15 : int32 = v12 + 1                                            │
00:02:16 #15741 [Verbose] > │         v10.l0 <- v15                                                        │
00:02:16 #15742 [Verbose] > │         ()                                                                   │
00:02:16 #15743 [Verbose] > │     let v16 : (float []) = Array.zeroCreate<float> (v8)                      │
00:02:16 #15744 [Verbose] > │     let v17 : Mut0 = {l0 = 0} : Mut0                                         │
00:02:16 #15745 [Verbose] > │     while method2(v8, v17) do                                                │
00:02:16 #15746 [Verbose] > │         let v19 : int32 = v17.l0                                             │
00:02:16 #15747 [Verbose] > │         let v20 : float = v0.[int v19]                                       │
00:02:16 #15748 [Verbose] > │         let v21 : float = cos v20                                            │
00:02:16 #15749 [Verbose] > │         v16.[int v19] <- v21                                                 │
00:02:16 #15750 [Verbose] > │         let v22 : int32 = v19 + 1                                            │
00:02:16 #15751 [Verbose] > │         v17.l0 <- v22                                                        │
00:02:16 #15752 [Verbose] > │         ()                                                                   │
00:02:16 #15753 [Verbose] > │     let v23 : string = "sin"                                                 │
00:02:16 #15754 [Verbose] > │     let v24 : string = "cos"                                                 │
00:02:16 #15755 [Verbose] > │     let v25 : (struct (string * (float []) * (float [])) []) = [|struct      │
00:02:16 #15756 [Verbose] > │ (v23, v0, v9); struct (v24, v0, v16)|]                                       │
00:02:16 #15757 [Verbose] > │     let v26 : (struct (string * (float []) * (float [])) []) = method3(v25)  │
00:02:16 #15758 [Verbose] > │     let v27 : string = "sin cos"                                             │
00:02:16 #15759 [Verbose] > │     let v28 : string = "x"                                                   │
00:02:16 #15760 [Verbose] > │     let v29 : string = "y"                                                   │
00:02:16 #15761 [Verbose] > │     struct (v27, v28, v29, v26)                                              │
00:02:16 #15762 [Verbose] > │ method0()                                                                    │
00:02:16 #15763 [Verbose] > │                                                                              │
00:02:16 #15764 [Verbose] > │                                                                              │
00:02:16 #15765 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:16 #15766 [Verbose] >
00:02:16 #15767 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:16 #15768 [Verbose] > // // test
00:02:16 #15769 [Verbose] >
00:02:16 #15770 [Verbose] > inl y_pos y0 vy0 ay t =
00:02:16 #15771 [Verbose] >     y0 + vy0 * t + ay * (t |> math.square) / 2
00:02:16 #15772 [Verbose] >
00:02:16 #15773 [Verbose] > inl x : a _ f64 = am'.init_series 0 5 0.01
00:02:16 #15774 [Verbose] > inl y = x |> am.map (y_pos 0 20 -9.8)
00:02:16 #15775 [Verbose] > "projectile motion", "time (s)", "", ;[[ "height of projectile (m)", x, y ]]
00:02:16 #15776 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-4585-8514-84ac543b2a0f/main.spi
00:02:16 #15777 [Verbose] >
00:02:16 #15778 [Verbose] > ╭─[ 152.14ms - return value ]──────────────────────────────────────────────────╮
00:02:16 #15779 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480"                          │
00:02:16 #15780 [Verbose] > │ xmlns="http://www.w3.org/2000/svg">                                          │
00:02:16 #15781 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414"        │
00:02:16 #15782 [Verbose] > │ stroke="none"/>                                                              │
00:02:16 #15783 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle"                        │
00:02:16 #15784 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1"            │
00:02:16 #15785 [Verbose] > │ fill="#FFFFFF">                                                              │
00:02:16 #15786 [Verbose] > │ projectile motion                                                            │
00:02:16 #15787 [Verbose] > │ </text>                                                                      │
00:02:16 #15788 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="59" y1="424" x2="59" │
00:02:16 #15789 [Verbose] > │ y2="75"/>                                                                    │
00:02:16 #15790 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:02:16 #15791 [Verbose] > │ y2="75"/>                                                                    │
00:02:16 #15792 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="79" y1="424" x2="79" │
00:02:16 #15793 [Verbose] > │ y2="75"/>                                                                    │
00:02:16 #15794 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="89" y1="424" x2="89" │
00:02:16 #15795 [Verbose] > │ y2="75"/>                                                                    │
00:02:16 #15796 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="99" y1="42...        │
00:02:16 #15797 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:16 #15798 [Verbose] >
00:02:16 #15799 [Verbose] > ╭─[ 155.27ms - stdout ]────────────────────────────────────────────────────────╮
00:02:16 #15800 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │
00:02:16 #15801 [Verbose] > │ let rec method1 (v0 : Mut0) : bool =                                         │
00:02:16 #15802 [Verbose] > │     let v1 : int32 = v0.l0                                                   │
00:02:16 #15803 [Verbose] > │     let v2 : bool = v1 < 501                                                 │
00:02:16 #15804 [Verbose] > │     v2                                                                       │
00:02:16 #15805 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool =                                 │
00:02:16 #15806 [Verbose] > │     let v2 : int32 = v1.l0                                                   │
00:02:16 #15807 [Verbose] > │     let v3 : bool = v2 < v0                                                  │
00:02:16 #15808 [Verbose] > │     v3                                                                       │
00:02:16 #15809 [Verbose] > │ and method3 (v0 : (struct (string * (float []) * (float [])) [])) : (struct  │
00:02:16 #15810 [Verbose] > │ (string * (float []) * (float [])) []) =                                     │
00:02:16 #15811 [Verbose] > │     v0                                                                       │
00:02:16 #15812 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:02:16 #15813 [Verbose] > │ []) * (float [])) [])) =                                                     │
00:02:16 #15814 [Verbose] > │     let v0 : (float []) = Array.zeroCreate<float> (501)                      │
00:02:16 #15815 [Verbose] > │     let v1 : Mut0 = {l0 = 0} : Mut0                                          │
00:02:16 #15816 [Verbose] > │     while method1(v1) do                                                     │
00:02:16 #15817 [Verbose] > │         let v3 : int32 = v1.l0                                               │
00:02:16 #15818 [Verbose] > │         let v4 : float = float v3                                            │
00:02:16 #15819 [Verbose] > │         let v5 : float = 0.01 * v4                                           │
00:02:16 #15820 [Verbose] > │         v0.[int v3] <- v5                                                    │
00:02:16 #15821 [Verbose] > │         let v6 : int32 = v3 + 1                                              │
00:02:16 #15822 [Verbose] > │         v1.l0 <- v6                                                          │
00:02:16 #15823 [Verbose] > │         ()                                                                   │
00:02:16 #15824 [Verbose] > │     let v7 : int32 = v0.Length                                               │
00:02:16 #15825 [Verbose] > │     let v8 : (float []) = Array.zeroCreate<float> (v7)                       │
00:02:16 #15826 [Verbose] > │     let v9 : Mut0 = {l0 = 0} : Mut0                                          │
00:02:16 #15827 [Verbose] > │     while method2(v7, v9) do                                                 │
00:02:16 #15828 [Verbose] > │         let v11 : int32 = v9.l0                                              │
00:02:16 #15829 [Verbose] > │         let v12 : float = v0.[int v11]                                       │
00:02:16 #15830 [Verbose] > │         let v13 : float = 20.0 * v12                                         │
00:02:16 #15831 [Verbose] > │         let v14 : float = v12 ** 2.0                                         │
00:02:16 #15832 [Verbose] > │         let v15 : float = -9.8 * v14                                         │
00:02:16 #15833 [Verbose] > │         let v16 : float = v15 / 2.0                                          │
00:02:16 #15834 [Verbose] > │         let v17 : float = v13 + v16                                          │
00:02:16 #15835 [Verbose] > │         v8.[int v11] <- v17                                                  │
00:02:16 #15836 [Verbose] > │         let v18 : int32 = v11 + 1                                            │
00:02:16 #15837 [Verbose] > │         v9.l0 <- v18                                                         │
00:02:16 #15838 [Verbose] > │         ()                                                                   │
00:02:16 #15839 [Verbose] > │     let v19 : string = "height of projectile (m)"                            │
00:02:16 #15840 [Verbose] > │     let v20 : (struct (string * (float []) * (float [])) []) = [|struct      │
00:02:16 #15841 [Verbose] > │ (v19, v0, v8)|]                                                              │
00:02:16 #15842 [Verbose] > │     let v21 : (struct (string * (float []) * (float [])) []) = method3(v20)  │
00:02:16 #15843 [Verbose] > │     let v22 : string = "projectile motion"                                   │
00:02:16 #15844 [Verbose] > │     let v23 : string = "time (s)"                                            │
00:02:16 #15845 [Verbose] > │     let v24 : string = ""                                                    │
00:02:16 #15846 [Verbose] > │     struct (v22, v23, v24, v21)                                              │
00:02:16 #15847 [Verbose] > │ method0()                                                                    │
00:02:16 #15848 [Verbose] > │                                                                              │
00:02:16 #15849 [Verbose] > │                                                                              │
00:02:16 #15850 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:16 #15851 [Verbose] >
00:02:16 #15852 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:16 #15853 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:16 #15854 [Verbose] > │ ## velocity_cf                                                               │
00:02:16 #15855 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:16 #15856 [Verbose] >
00:02:16 #15857 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:16 #15858 [Verbose] > type mass = f64
00:02:16 #15859 [Verbose] > type time = f64
00:02:16 #15860 [Verbose] > type position = f64
00:02:16 #15861 [Verbose] > type velocity = f64
00:02:16 #15862 [Verbose] > type force = f64
00:02:16 #15863 [Verbose] >
00:02:16 #15864 [Verbose] > type velocity_cf = mass -> velocity -> list force -> (time -> velocity)
00:02:16 #15865 [Verbose] >
00:02:16 #15866 [Verbose] > inl velocity_cf m v0 fs =
00:02:16 #15867 [Verbose] >     inl f_net = fs |> listm'.sum
00:02:16 #15868 [Verbose] >     inl a0 = f_net / m
00:02:16 #15869 [Verbose] >     inl v t = v0 + a0 * t
00:02:16 #15870 [Verbose] >     v
00:02:16 #15871 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-4601-0121-0a1d33197037/main.spi
00:02:16 #15872 [Verbose] >
00:02:16 #15873 [Verbose] > ╭─[ 116.77ms - stdout ]────────────────────────────────────────────────────────╮
00:02:16 #15874 [Verbose] > │ ()                                                                           │
00:02:16 #15875 [Verbose] > │                                                                              │
00:02:16 #15876 [Verbose] > │                                                                              │
00:02:16 #15877 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:16 #15878 [Verbose] >
00:02:16 #15879 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:16 #15880 [Verbose] > // // test
00:02:16 #15881 [Verbose] >
00:02:16 #15882 [Verbose] > velocity_cf 0.1f64 0.6 [[ 0.04; -0.08 ]] 0
00:02:16 #15883 [Verbose] > |> _assert_eq 0.6
00:02:16 #15884 [Verbose] >
00:02:16 #15885 [Verbose] > velocity_cf 0.1f64 0.6 [[ 0.04; -0.08 ]] 1
00:02:16 #15886 [Verbose] > |> _assert_eq 0.2
00:02:17 #15887 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-4612-1297-1152a5f2249a/main.spi
00:02:17 #15888 [Verbose] >
00:02:17 #15889 [Verbose] > ╭─[ 207.60ms - stdout ]────────────────────────────────────────────────────────╮
00:02:17 #15890 [Verbose] > │ let rec method0 () : unit =                                                  │
00:02:17 #15891 [Verbose] > │     let v0 : string = $"%A{0.6}"                                             │
00:02:17 #15892 [Verbose] > │     System.Console.WriteLine v0                                              │
00:02:17 #15893 [Verbose] > │     let v1 : string = $"__expect / actual: %A{0.6} / expected: %A{0.6}"      │
00:02:17 #15894 [Verbose] > │     let v2 : string = $"%A{0.2}"                                             │
00:02:17 #15895 [Verbose] > │     System.Console.WriteLine v2                                              │
00:02:17 #15896 [Verbose] > │     let v3 : string = $"__expect / actual: %A{0.2} / expected: %A{0.2}"      │
00:02:17 #15897 [Verbose] > │     ()                                                                       │
00:02:17 #15898 [Verbose] > │ method0()                                                                    │
00:02:17 #15899 [Verbose] > │                                                                              │
00:02:17 #15900 [Verbose] > │ 0.6                                                                          │
00:02:17 #15901 [Verbose] > │ 0.2                                                                          │
00:02:17 #15902 [Verbose] > │                                                                              │
00:02:17 #15903 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:17 #15904 [Verbose] >
00:02:17 #15905 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:17 #15906 [Verbose] > // // test
00:02:17 #15907 [Verbose] >
00:02:17 #15908 [Verbose] > inl x = am'.init_series 0 4 0.1
00:02:17 #15909 [Verbose] > inl y = x |> am.map (velocity_cf 0.1f64 0.6 [[ 0.04; -0.08 ]])
00:02:17 #15910 [Verbose] > "car on an air track", "time (s)", "", ;[[ "velocity of car (m/s)", x, y ]]
00:02:17 #15911 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-4633-3394-3587cad8ce08/main.spi
00:02:17 #15912 [Verbose] >
00:02:17 #15913 [Verbose] > ╭─[ 152.68ms - return value ]──────────────────────────────────────────────────╮
00:02:17 #15914 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480"                          │
00:02:17 #15915 [Verbose] > │ xmlns="http://www.w3.org/2000/svg">                                          │
00:02:17 #15916 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414"        │
00:02:17 #15917 [Verbose] > │ stroke="none"/>                                                              │
00:02:17 #15918 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle"                        │
00:02:17 #15919 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1"            │
00:02:17 #15920 [Verbose] > │ fill="#FFFFFF">                                                              │
00:02:17 #15921 [Verbose] > │ car on an air track                                                          │
00:02:17 #15922 [Verbose] > │ </text>                                                                      │
00:02:17 #15923 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="57" y1="424" x2="57" │
00:02:17 #15924 [Verbose] > │ y2="75"/>                                                                    │
00:02:17 #15925 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:02:17 #15926 [Verbose] > │ y2="75"/>                                                                    │
00:02:17 #15927 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="82" y1="424" x2="82" │
00:02:17 #15928 [Verbose] > │ y2="75"/>                                                                    │
00:02:17 #15929 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="94" y1="424" x2="94" │
00:02:17 #15930 [Verbose] > │ y2="75"/>                                                                    │
00:02:17 #15931 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="107" y1=...          │
00:02:17 #15932 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:17 #15933 [Verbose] >
00:02:17 #15934 [Verbose] > ╭─[ 156.00ms - stdout ]────────────────────────────────────────────────────────╮
00:02:17 #15935 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │
00:02:17 #15936 [Verbose] > │ let rec method1 (v0 : Mut0) : bool =                                         │
00:02:17 #15937 [Verbose] > │     let v1 : int32 = v0.l0                                                   │
00:02:17 #15938 [Verbose] > │     let v2 : bool = v1 < 41                                                  │
00:02:17 #15939 [Verbose] > │     v2                                                                       │
00:02:17 #15940 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool =                                 │
00:02:17 #15941 [Verbose] > │     let v2 : int32 = v1.l0                                                   │
00:02:17 #15942 [Verbose] > │     let v3 : bool = v2 < v0                                                  │
00:02:17 #15943 [Verbose] > │     v3                                                                       │
00:02:17 #15944 [Verbose] > │ and method3 (v0 : (struct (string * (float []) * (float [])) [])) : (struct  │
00:02:17 #15945 [Verbose] > │ (string * (float []) * (float [])) []) =                                     │
00:02:17 #15946 [Verbose] > │     v0                                                                       │
00:02:17 #15947 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:02:17 #15948 [Verbose] > │ []) * (float [])) [])) =                                                     │
00:02:17 #15949 [Verbose] > │     let v0 : (float []) = Array.zeroCreate<float> (41)                       │
00:02:17 #15950 [Verbose] > │     let v1 : Mut0 = {l0 = 0} : Mut0                                          │
00:02:17 #15951 [Verbose] > │     while method1(v1) do                                                     │
00:02:17 #15952 [Verbose] > │         let v3 : int32 = v1.l0                                               │
00:02:17 #15953 [Verbose] > │         let v4 : float = float v3                                            │
00:02:17 #15954 [Verbose] > │         let v5 : float = 0.1 * v4                                            │
00:02:17 #15955 [Verbose] > │         v0.[int v3] <- v5                                                    │
00:02:17 #15956 [Verbose] > │         let v6 : int32 = v3 + 1                                              │
00:02:17 #15957 [Verbose] > │         v1.l0 <- v6                                                          │
00:02:17 #15958 [Verbose] > │         ()                                                                   │
00:02:17 #15959 [Verbose] > │     let v7 : int32 = v0.Length                                               │
00:02:17 #15960 [Verbose] > │     let v8 : (float []) = Array.zeroCreate<float> (v7)                       │
00:02:17 #15961 [Verbose] > │     let v9 : Mut0 = {l0 = 0} : Mut0                                          │
00:02:17 #15962 [Verbose] > │     while method2(v7, v9) do                                                 │
00:02:17 #15963 [Verbose] > │         let v11 : int32 = v9.l0                                              │
00:02:17 #15964 [Verbose] > │         let v12 : float = v0.[int v11]                                       │
00:02:17 #15965 [Verbose] > │         let v13 : float = -0.39999999999999997 * v12                         │
00:02:17 #15966 [Verbose] > │         let v14 : float = 0.6 + v13                                          │
00:02:17 #15967 [Verbose] > │         v8.[int v11] <- v14                                                  │
00:02:17 #15968 [Verbose] > │         let v15 : int32 = v11 + 1                                            │
00:02:17 #15969 [Verbose] > │         v9.l0 <- v15                                                         │
00:02:17 #15970 [Verbose] > │         ()                                                                   │
00:02:17 #15971 [Verbose] > │     let v16 : string = "velocity of car (m/s)"                               │
00:02:17 #15972 [Verbose] > │     let v17 : (struct (string * (float []) * (float [])) []) = [|struct      │
00:02:17 #15973 [Verbose] > │ (v16, v0, v8)|]                                                              │
00:02:17 #15974 [Verbose] > │     let v18 : (struct (string * (float []) * (float [])) []) = method3(v17)  │
00:02:17 #15975 [Verbose] > │     let v19 : string = "car on an air track"                                 │
00:02:17 #15976 [Verbose] > │     let v20 : string = "time (s)"                                            │
00:02:17 #15977 [Verbose] > │     let v21 : string = ""                                                    │
00:02:17 #15978 [Verbose] > │     struct (v19, v20, v21, v18)                                              │
00:02:17 #15979 [Verbose] > │ method0()                                                                    │
00:02:17 #15980 [Verbose] > │                                                                              │
00:02:17 #15981 [Verbose] > │                                                                              │
00:02:17 #15982 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:17 #15983 [Verbose] >
00:02:17 #15984 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:17 #15985 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:17 #15986 [Verbose] > │ ## derivative                                                                │
00:02:17 #15987 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:17 #15988 [Verbose] >
00:02:17 #15989 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:17 #15990 [Verbose] > type derivative = (f64 -> f64) -> f64 -> f64
00:02:17 #15991 [Verbose] >
00:02:17 #15992 [Verbose] > inl derivative dt : derivative =
00:02:17 #15993 [Verbose] >     fun x t =>
00:02:17 #15994 [Verbose] >         (x (t + dt / 2) - x (t - dt / 2)) / dt
00:02:17 #15995 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-4649-4985-467c8bcabc06/main.spi
00:02:17 #15996 [Verbose] >
00:02:17 #15997 [Verbose] > ╭─[ 119.25ms - stdout ]────────────────────────────────────────────────────────╮
00:02:17 #15998 [Verbose] > │ ()                                                                           │
00:02:17 #15999 [Verbose] > │                                                                              │
00:02:17 #16000 [Verbose] > │                                                                              │
00:02:17 #16001 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:17 #16002 [Verbose] >
00:02:17 #16003 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:17 #16004 [Verbose] > // // test
00:02:17 #16005 [Verbose] >
00:02:17 #16006 [Verbose] > derivative 1 (fun x => x ** 4 / 4) 1 - 1
00:02:17 #16007 [Verbose] > |> _assert_approx_eq None 0.25
00:02:17 #16008 [Verbose] >
00:02:17 #16009 [Verbose] > derivative 0.001 (fun x => x ** 4 / 4) 1 - 1
00:02:17 #16010 [Verbose] > |> _assert_approx_eq None 0.0000002499998827953931
00:02:17 #16011 [Verbose] >
00:02:17 #16012 [Verbose] > derivative 0.000001 (fun x => x ** 4 / 4) 1 - 1
00:02:17 #16013 [Verbose] > |> _assert_approx_eq None 0.000000000001000088900582341
00:02:17 #16014 [Verbose] >
00:02:17 #16015 [Verbose] > derivative 0.000000001 (fun x => x ** 4 / 4) 1 - 1
00:02:17 #16016 [Verbose] > |> _assert_approx_eq None 0.00000008274037099909037
00:02:17 #16017 [Verbose] >
00:02:17 #16018 [Verbose] > derivative 0.000000000001 (fun x => x ** 4 / 4) 1 - 1
00:02:17 #16019 [Verbose] > |> _assert_approx_eq None 0.00008890058234101161
00:02:17 #16020 [Verbose] >
00:02:17 #16021 [Verbose] > derivative 0.000000000000001 (fun x => x ** 4 / 4) 1 - 1
00:02:17 #16022 [Verbose] > |> _assert_approx_eq None -0.0007992778373592246
00:02:17 #16023 [Verbose] >
00:02:17 #16024 [Verbose] > derivative 0.000000000000000001 (fun x => x ** 4 / 4) 1 - 1
00:02:17 #16025 [Verbose] > |> _assert_approx_eq None -1
00:02:17 #16026 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-4661-6190-69e413abf00f/main.spi
00:02:17 #16027 [Verbose] >
00:02:17 #16028 [Verbose] > ╭─[ 155.30ms - stdout ]────────────────────────────────────────────────────────╮
00:02:17 #16029 [Verbose] > │ let rec method0 () : unit =                                                  │
00:02:17 #16030 [Verbose] > │     let v0 : string = $"%A{0.25}"                                            │
00:02:17 #16031 [Verbose] > │     System.Console.WriteLine v0                                              │
00:02:17 #16032 [Verbose] > │     let v1 : string = $"__expect / actual: %A{0.25} / expected: %A{0.25}"    │
00:02:17 #16033 [Verbose] > │     let v2 : string = $"%A{2.499998827953931E-07}"                           │
00:02:17 #16034 [Verbose] > │     System.Console.WriteLine v2                                              │
00:02:17 #16035 [Verbose] > │     let v3 : string = $"__expect / actual: %A{2.499998827953931E-07} /       │
00:02:17 #16036 [Verbose] > │ expected: %A{2.499998827953931E-07}"                                         │
00:02:17 #16037 [Verbose] > │     let v4 : string = $"%A{1.000088900582341E-12}"                           │
00:02:17 #16038 [Verbose] > │     System.Console.WriteLine v4                                              │
00:02:17 #16039 [Verbose] > │     let v5 : string = $"__expect / actual: %A{1.000088900582341E-12} /       │
00:02:17 #16040 [Verbose] > │ expected: %A{1.000088900582341E-12}"                                         │
00:02:17 #16041 [Verbose] > │     let v6 : string = $"%A{8.274037099909037E-08}"                           │
00:02:17 #16042 [Verbose] > │     System.Console.WriteLine v6                                              │
00:02:17 #16043 [Verbose] > │     let v7 : string = $"__expect / actual: %A{8.274037099909037E-08} /       │
00:02:17 #16044 [Verbose] > │ expected: %A{8.274037099909037E-08}"                                         │
00:02:17 #16045 [Verbose] > │     let v8 : string = $"%A{8.890058234101161E-05}"                           │
00:02:17 #16046 [Verbose] > │     System.Console.WriteLine v8                                              │
00:02:17 #16047 [Verbose] > │     let v9 : string = $"__expect / actual: %A{8.890058234101161E-05} /       │
00:02:17 #16048 [Verbose] > │ expected: %A{8.890058234101161E-05}"                                         │
00:02:17 #16049 [Verbose] > │     let v10 : string = $"%A{-0.0007992778373592246}"                         │
00:02:17 #16050 [Verbose] > │     System.Console.WriteLine v10                                             │
00:02:17 #16051 [Verbose] > │     let v11 : string = $"__expect / actual: %A{-0.0007992778373592246} /     │
00:02:17 #16052 [Verbose] > │ expected: %A{-0.0007992778373592246}"                                        │
00:02:17 #16053 [Verbose] > │     let v12 : string = $"%A{-1.0}"                                           │
00:02:17 #16054 [Verbose] > │     System.Console.WriteLine v12                                             │
00:02:17 #16055 [Verbose] > │     let v13 : string = $"__expect / actual: %A{-1.0} / expected: %A{-1.0}"   │
00:02:17 #16056 [Verbose] > │     ()                                                                       │
00:02:17 #16057 [Verbose] > │ method0()                                                                    │
00:02:17 #16058 [Verbose] > │                                                                              │
00:02:17 #16059 [Verbose] > │ 0.25                                                                         │
00:02:17 #16060 [Verbose] > │ 2.499998828e-07                                                              │
00:02:17 #16061 [Verbose] > │ 1.000088901e-12                                                              │
00:02:17 #16062 [Verbose] > │ 8.2740371e-08                                                                │
00:02:17 #16063 [Verbose] > │ 8.890058234e-05                                                              │
00:02:17 #16064 [Verbose] > │ -0.0007992778374                                                             │
00:02:17 #16065 [Verbose] > │ -1.0                                                                         │
00:02:17 #16066 [Verbose] > │                                                                              │
00:02:17 #16067 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:17 #16068 [Verbose] >
00:02:17 #16069 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:17 #16070 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:17 #16071 [Verbose] > │ ## integration                                                               │
00:02:17 #16072 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:17 #16073 [Verbose] >
00:02:17 #16074 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:17 #16075 [Verbose] > type integration = (f64 -> f64) -> f64 -> f64 -> f64
00:02:17 #16076 [Verbose] >
00:02:17 #16077 [Verbose] > inl integral dt : integration =
00:02:17 #16078 [Verbose] >     fun f a b =>
00:02:17 #16079 [Verbose] >         inl rec loop t y =
00:02:17 #16080 [Verbose] >             if t < b
00:02:17 #16081 [Verbose] >             then loop (t + dt) (y + f t * dt)
00:02:17 #16082 [Verbose] >             else t, y
00:02:17 #16083 [Verbose] >         loop (a + dt / 2) 0
00:02:17 #16084 [Verbose] >         |> snd
00:02:17 #16085 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-4677-7772-71e691652372/main.spi
00:02:17 #16086 [Verbose] >
00:02:17 #16087 [Verbose] > ╭─[ 116.12ms - stdout ]────────────────────────────────────────────────────────╮
00:02:17 #16088 [Verbose] > │ ()                                                                           │
00:02:17 #16089 [Verbose] > │                                                                              │
00:02:17 #16090 [Verbose] > │                                                                              │
00:02:17 #16091 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:17 #16092 [Verbose] >
00:02:17 #16093 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:17 #16094 [Verbose] > // // test
00:02:17 #16095 [Verbose] >
00:02:17 #16096 [Verbose] > integral 0.01 math.square 0 1
00:02:17 #16097 [Verbose] > |> _assert_approx_eq None 0.33332500000000004
00:02:17 #16098 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-4689-8934-8b404c3a74d6/main.spi
00:02:17 #16099 [Verbose] >
00:02:17 #16100 [Verbose] > ╭─[ 123.99ms - stdout ]────────────────────────────────────────────────────────╮
00:02:17 #16101 [Verbose] > │ let rec method0 () : unit =                                                  │
00:02:17 #16102 [Verbose] > │     let v0 : string = $"%A{0.3333250000000004}"                              │
00:02:17 #16103 [Verbose] > │     System.Console.WriteLine v0                                              │
00:02:17 #16104 [Verbose] > │     let v1 : string = $"__expect / actual: %A{0.3333250000000004} /          │
00:02:17 #16105 [Verbose] > │ expected: %A{0.33332500000000004}"                                           │
00:02:17 #16106 [Verbose] > │     ()                                                                       │
00:02:17 #16107 [Verbose] > │ method0()                                                                    │
00:02:17 #16108 [Verbose] > │                                                                              │
00:02:17 #16109 [Verbose] > │ 0.333325                                                                     │
00:02:17 #16110 [Verbose] > │                                                                              │
00:02:17 #16111 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:17 #16112 [Verbose] >
00:02:17 #16113 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:17 #16114 [Verbose] > inl integral' dt : integration =
00:02:17 #16115 [Verbose] >     fun f a b =>
00:02:17 #16116 [Verbose] >         listm'.init_series (a + dt / 2) (b - dt / 2) dt
00:02:17 #16117 [Verbose] >         |> listm.map (f >> (*) dt)
00:02:17 #16118 [Verbose] >         |> listm'.sum
00:02:17 #16119 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-4701-0181-085fd8a418b9/main.spi
00:02:17 #16120 [Verbose] >
00:02:17 #16121 [Verbose] > ╭─[ 115.24ms - stdout ]────────────────────────────────────────────────────────╮
00:02:17 #16122 [Verbose] > │ ()                                                                           │
00:02:17 #16123 [Verbose] > │                                                                              │
00:02:17 #16124 [Verbose] > │                                                                              │
00:02:17 #16125 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:17 #16126 [Verbose] >
00:02:17 #16127 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:17 #16128 [Verbose] > // // test
00:02:17 #16129 [Verbose] >
00:02:17 #16130 [Verbose] > integral' 0.1 math.square 0 1
00:02:17 #16131 [Verbose] > |> _assert_approx_eq None (integral 0.1 math.square 0 1)
00:02:18 #16132 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-4713-1335-1f5394327d06/main.spi
00:02:18 #16133 [Verbose] >
00:02:18 #16134 [Verbose] > ╭─[ 123.93ms - stdout ]────────────────────────────────────────────────────────╮
00:02:18 #16135 [Verbose] > │ let rec method0 () : unit =                                                  │
00:02:18 #16136 [Verbose] > │     let v0 : string = $"%A{0.3325000000000001}"                              │
00:02:18 #16137 [Verbose] > │     System.Console.WriteLine v0                                              │
00:02:18 #16138 [Verbose] > │     let v1 : string = $"__expect / actual: %A{0.3325000000000001} /          │
00:02:18 #16139 [Verbose] > │ expected: %A{0.33249999999999996}"                                           │
00:02:18 #16140 [Verbose] > │     ()                                                                       │
00:02:18 #16141 [Verbose] > │ method0()                                                                    │
00:02:18 #16142 [Verbose] > │                                                                              │
00:02:18 #16143 [Verbose] > │ 0.3325                                                                       │
00:02:18 #16144 [Verbose] > │                                                                              │
00:02:18 #16145 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:18 #16146 [Verbose] >
00:02:18 #16147 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:18 #16148 [Verbose] > inl integral'' dt : integration =
00:02:18 #16149 [Verbose] >     fun f a b =>
00:02:18 #16150 [Verbose] >         am'.init_series (a + dt / 2) (b - dt / 2) dt
00:02:18 #16151 [Verbose] >         |> am.map (f >> (*) dt)
00:02:18 #16152 [Verbose] >         |> am'.sum
00:02:18 #16153 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-4725-2585-2b08db618784/main.spi
00:02:18 #16154 [Verbose] >
00:02:18 #16155 [Verbose] > ╭─[ 109.87ms - stdout ]────────────────────────────────────────────────────────╮
00:02:18 #16156 [Verbose] > │ ()                                                                           │
00:02:18 #16157 [Verbose] > │                                                                              │
00:02:18 #16158 [Verbose] > │                                                                              │
00:02:18 #16159 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:18 #16160 [Verbose] >
00:02:18 #16161 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:18 #16162 [Verbose] > // // test
00:02:18 #16163 [Verbose] >
00:02:18 #16164 [Verbose] > integral'' 0.01 math.square 0 1
00:02:18 #16165 [Verbose] > |> _assert_approx_eq None (integral 0.01 math.square 0 1)
00:02:18 #16166 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-4736-3690-32128c124d6e/main.spi
00:02:18 #16167 [Verbose] >
00:02:18 #16168 [Verbose] > ╭─[ 181.06ms - stdout ]────────────────────────────────────────────────────────╮
00:02:18 #16169 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │
00:02:18 #16170 [Verbose] > │ and Mut1 = {mutable l0 : int32; mutable l1 : float}                          │
00:02:18 #16171 [Verbose] > │ let rec method1 (v0 : Mut0) : bool =                                         │
00:02:18 #16172 [Verbose] > │     let v1 : int32 = v0.l0                                                   │
00:02:18 #16173 [Verbose] > │     let v2 : bool = v1 < 100                                                 │
00:02:18 #16174 [Verbose] > │     v2                                                                       │
00:02:18 #16175 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool =                                 │
00:02:18 #16176 [Verbose] > │     let v2 : int32 = v1.l0                                                   │
00:02:18 #16177 [Verbose] > │     let v3 : bool = v2 < v0                                                  │
00:02:18 #16178 [Verbose] > │     v3                                                                       │
00:02:18 #16179 [Verbose] > │ and method3 (v0 : int32, v1 : Mut1) : bool =                                 │
00:02:18 #16180 [Verbose] > │     let v2 : int32 = v1.l0                                                   │
00:02:18 #16181 [Verbose] > │     let v3 : bool = v2 < v0                                                  │
00:02:18 #16182 [Verbose] > │     v3                                                                       │
00:02:18 #16183 [Verbose] > │ and method4 (v0 : bool) : bool =                                             │
00:02:18 #16184 [Verbose] > │     v0                                                                       │
00:02:18 #16185 [Verbose] > │ and method0 () : unit =                                                      │
00:02:18 #16186 [Verbose] > │     let v0 : (float []) = Array.zeroCreate<float> (100)                      │
00:02:18 #16187 [Verbose] > │     let v1 : Mut0 = {l0 = 0} : Mut0                                          │
00:02:18 #16188 [Verbose] > │     while method1(v1) do                                                     │
00:02:18 #16189 [Verbose] > │         let v3 : int32 = v1.l0                                               │
00:02:18 #16190 [Verbose] > │         let v4 : float = float v3                                            │
00:02:18 #16191 [Verbose] > │         let v5 : float = 0.01 * v4                                           │
00:02:18 #16192 [Verbose] > │         let v6 : float = 0.005 + v5                                          │
00:02:18 #16193 [Verbose] > │         v0.[int v3] <- v6                                                    │
00:02:18 #16194 [Verbose] > │         let v7 : int32 = v3 + 1                                              │
00:02:18 #16195 [Verbose] > │         v1.l0 <- v7                                                          │
00:02:18 #16196 [Verbose] > │         ()                                                                   │
00:02:18 #16197 [Verbose] > │     let v8 : int32 = v0.Length                                               │
00:02:18 #16198 [Verbose] > │     let v9 : (float []) = Array.zeroCreate<float> (v8)                       │
00:02:18 #16199 [Verbose] > │     let v10 : Mut0 = {l0 = 0} : Mut0                                         │
00:02:18 #16200 [Verbose] > │     while method2(v8, v10) do                                                │
00:02:18 #16201 [Verbose] > │         let v12 : int32 = v10.l0                                             │
00:02:18 #16202 [Verbose] > │         let v13 : float = v0.[int v12]                                       │
00:02:18 #16203 [Verbose] > │         let v14 : float = v13 ** 2.0                                         │
00:02:18 #16204 [Verbose] > │         let v15 : float = 0.01 * v14                                         │
00:02:18 #16205 [Verbose] > │         v9.[int v12] <- v15                                                  │
00:02:18 #16206 [Verbose] > │         let v16 : int32 = v12 + 1                                            │
00:02:18 #16207 [Verbose] > │         v10.l0 <- v16                                                        │
00:02:18 #16208 [Verbose] > │         ()                                                                   │
00:02:18 #16209 [Verbose] > │     let v17 : int32 = v9.Length                                              │
00:02:18 #16210 [Verbose] > │     let v18 : Mut1 = {l0 = 0; l1 = 0.0} : Mut1                               │
00:02:18 #16211 [Verbose] > │     while method3(v17, v18) do                                               │
00:02:18 #16212 [Verbose] > │         let v20 : int32 = v18.l0                                             │
00:02:18 #16213 [Verbose] > │         let v21 : float = v18.l1                                             │
00:02:18 #16214 [Verbose] > │         let v22 : float = v9.[int v20]                                       │
00:02:18 #16215 [Verbose] > │         let v23 : float = v21 + v22                                          │
00:02:18 #16216 [Verbose] > │         let v24 : int32 = v20 + 1                                            │
00:02:18 #16217 [Verbose] > │         v18.l0 <- v24                                                        │
00:02:18 #16218 [Verbose] > │         v18.l1 <- v23                                                        │
00:02:18 #16219 [Verbose] > │         ()                                                                   │
00:02:18 #16220 [Verbose] > │     let v25 : float = v18.l1                                                 │
00:02:18 #16221 [Verbose] > │     let v26 : string = $"%A{v25}"                                            │
00:02:18 #16222 [Verbose] > │     System.Console.WriteLine v26                                             │
00:02:18 #16223 [Verbose] > │     let v27 : float = 0.3333250000000004 - v25                               │
00:02:18 #16224 [Verbose] > │     let v28 : float =  -v27                                                  │
00:02:18 #16225 [Verbose] > │     let v29 : bool = v27 >= v28                                              │
00:02:18 #16226 [Verbose] > │     let v30 : float =                                                        │
00:02:18 #16227 [Verbose] > │         if v29 then                                                          │
00:02:18 #16228 [Verbose] > │             v27                                                              │
00:02:18 #16229 [Verbose] > │         else                                                                 │
00:02:18 #16230 [Verbose] > │             v28                                                              │
00:02:18 #16231 [Verbose] > │     let v31 : bool = v30 < 1E-08                                             │
00:02:18 #16232 [Verbose] > │     let v33 : bool =                                                         │
00:02:18 #16233 [Verbose] > │         if v31 then                                                          │
00:02:18 #16234 [Verbose] > │             true                                                             │
00:02:18 #16235 [Verbose] > │         else                                                                 │
00:02:18 #16236 [Verbose] > │             method4(v31)                                                     │
00:02:18 #16237 [Verbose] > │     let v34 : string = $"__expect / actual: %A{v25} / expected:              │
00:02:18 #16238 [Verbose] > │ %A{0.3333250000000004}"                                                      │
00:02:18 #16239 [Verbose] > │     let v35 : bool = v33 = false                                             │
00:02:18 #16240 [Verbose] > │     if v35 then                                                              │
00:02:18 #16241 [Verbose] > │         failwith<unit> v34                                                   │
00:02:18 #16242 [Verbose] > │ method0()                                                                    │
00:02:18 #16243 [Verbose] > │                                                                              │
00:02:18 #16244 [Verbose] > │ 0.333325                                                                     │
00:02:18 #16245 [Verbose] > │                                                                              │
00:02:18 #16246 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:18 #16247 [Verbose] >
00:02:18 #16248 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:18 #16249 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:18 #16250 [Verbose] > │ ## anti_derivative                                                           │
00:02:18 #16251 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:18 #16252 [Verbose] >
00:02:18 #16253 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:18 #16254 [Verbose] > inl anti_derivative dt v0 a t =
00:02:18 #16255 [Verbose] >     v0 + integral' dt a 0 t
00:02:18 #16256 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-4755-5558-542288bc49db/main.spi
00:02:18 #16257 [Verbose] >
00:02:18 #16258 [Verbose] > ╭─[ 126.04ms - stdout ]────────────────────────────────────────────────────────╮
00:02:18 #16259 [Verbose] > │ ()                                                                           │
00:02:18 #16260 [Verbose] > │                                                                              │
00:02:18 #16261 [Verbose] > │                                                                              │
00:02:18 #16262 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:18 #16263 [Verbose] >
00:02:18 #16264 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:18 #16265 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:18 #16266 [Verbose] > │ ## velocity_ft                                                               │
00:02:18 #16267 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:18 #16268 [Verbose] >
00:02:18 #16269 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:18 #16270 [Verbose] > type velocity_ft = mass -> velocity -> list (time -> force) -> (time ->
00:02:18 #16271 [Verbose] > velocity)
00:02:18 #16272 [Verbose] >
00:02:18 #16273 [Verbose] > inl velocity_ft dt : velocity_ft =
00:02:18 #16274 [Verbose] >     fun m v0 fs =>
00:02:18 #16275 [Verbose] >         inl f_net t = fs |> listm.map (fun f => f t) |> listm'.sum
00:02:18 #16276 [Verbose] >         inl a t = f_net t / m
00:02:18 #16277 [Verbose] >         anti_derivative dt v0 a
00:02:18 #16278 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-4768-6829-61c4ed8ec32f/main.spi
00:02:18 #16279 [Verbose] >
00:02:18 #16280 [Verbose] > ╭─[ 114.28ms - stdout ]────────────────────────────────────────────────────────╮
00:02:18 #16281 [Verbose] > │ ()                                                                           │
00:02:18 #16282 [Verbose] > │                                                                              │
00:02:18 #16283 [Verbose] > │                                                                              │
00:02:18 #16284 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:18 #16285 [Verbose] >
00:02:18 #16286 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:18 #16287 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:18 #16288 [Verbose] > │ ## position_ft                                                               │
00:02:18 #16289 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:18 #16290 [Verbose] >
00:02:18 #16291 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:18 #16292 [Verbose] > type position_ft = mass -> position -> velocity -> list (time -> force) -> (time
00:02:18 #16293 [Verbose] > -> position)
00:02:18 #16294 [Verbose] >
00:02:18 #16295 [Verbose] > inl position_ft dt : position_ft =
00:02:18 #16296 [Verbose] >     fun m x0 v0 fs =>
00:02:18 #16297 [Verbose] >         velocity_ft dt m v0 fs
00:02:18 #16298 [Verbose] >         |> anti_derivative dt x0
00:02:18 #16299 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-4779-7983-77a8f15032f6/main.spi
00:02:18 #16300 [Verbose] >
00:02:18 #16301 [Verbose] > ╭─[ 110.85ms - stdout ]────────────────────────────────────────────────────────╮
00:02:18 #16302 [Verbose] > │ ()                                                                           │
00:02:18 #16303 [Verbose] > │                                                                              │
00:02:18 #16304 [Verbose] > │                                                                              │
00:02:18 #16305 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:18 #16306 [Verbose] >
00:02:18 #16307 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:18 #16308 [Verbose] > // // test
00:02:18 #16309 [Verbose] >
00:02:18 #16310 [Verbose] > inl pedal_coast (t : time) : force =
00:02:18 #16311 [Verbose] >     inl t_cycle = 20
00:02:18 #16312 [Verbose] >     inl n_complete : i32 = t / t_cycle |> conv
00:02:18 #16313 [Verbose] >     inl remainder = t - conv n_complete * t_cycle
00:02:18 #16314 [Verbose] >     if remainder > 0 && remainder < 10
00:02:18 #16315 [Verbose] >     then 10
00:02:18 #16316 [Verbose] >     else 0
00:02:18 #16317 [Verbose] >
00:02:18 #16318 [Verbose] > inl x = am'.init_series -5 45 0.1
00:02:18 #16319 [Verbose] > inl y = x |> am.map pedal_coast
00:02:18 #16320 [Verbose] > "child pedaling then coasting", "time (s)", "", ;[[ "force on bike (N)", x, y ]]
00:02:18 #16321 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-4790-9095-9a8c9dd57bc4/main.spi
00:02:18 #16322 [Verbose] >
00:02:18 #16323 [Verbose] > ╭─[ 166.83ms - return value ]──────────────────────────────────────────────────╮
00:02:18 #16324 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480"                          │
00:02:18 #16325 [Verbose] > │ xmlns="http://www.w3.org/2000/svg">                                          │
00:02:18 #16326 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414"        │
00:02:18 #16327 [Verbose] > │ stroke="none"/>                                                              │
00:02:18 #16328 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle"                        │
00:02:18 #16329 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1"            │
00:02:18 #16330 [Verbose] > │ fill="#FFFFFF">                                                              │
00:02:18 #16331 [Verbose] > │ child pedaling then coasting                                                 │
00:02:18 #16332 [Verbose] > │ </text>                                                                      │
00:02:18 #16333 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="59" y1="424" x2="59" │
00:02:18 #16334 [Verbose] > │ y2="75"/>                                                                    │
00:02:18 #16335 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:02:18 #16336 [Verbose] > │ y2="75"/>                                                                    │
00:02:18 #16337 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="79" y1="424" x2="79" │
00:02:18 #16338 [Verbose] > │ y2="75"/>                                                                    │
00:02:18 #16339 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="89" y1="424" x2="89" │
00:02:18 #16340 [Verbose] > │ y2="75"/>                                                                    │
00:02:18 #16341 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1=...                   │
00:02:18 #16342 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:18 #16343 [Verbose] >
00:02:18 #16344 [Verbose] > ╭─[ 170.45ms - stdout ]────────────────────────────────────────────────────────╮
00:02:18 #16345 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │
00:02:18 #16346 [Verbose] > │ let rec method1 (v0 : Mut0) : bool =                                         │
00:02:18 #16347 [Verbose] > │     let v1 : int32 = v0.l0                                                   │
00:02:18 #16348 [Verbose] > │     let v2 : bool = v1 < 501                                                 │
00:02:18 #16349 [Verbose] > │     v2                                                                       │
00:02:18 #16350 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool =                                 │
00:02:18 #16351 [Verbose] > │     let v2 : int32 = v1.l0                                                   │
00:02:18 #16352 [Verbose] > │     let v3 : bool = v2 < v0                                                  │
00:02:18 #16353 [Verbose] > │     v3                                                                       │
00:02:18 #16354 [Verbose] > │ and method3 (v0 : (struct (string * (float []) * (float [])) [])) : (struct  │
00:02:18 #16355 [Verbose] > │ (string * (float []) * (float [])) []) =                                     │
00:02:18 #16356 [Verbose] > │     v0                                                                       │
00:02:18 #16357 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:02:18 #16358 [Verbose] > │ []) * (float [])) [])) =                                                     │
00:02:18 #16359 [Verbose] > │     let v0 : (float []) = Array.zeroCreate<float> (501)                      │
00:02:18 #16360 [Verbose] > │     let v1 : Mut0 = {l0 = 0} : Mut0                                          │
00:02:18 #16361 [Verbose] > │     while method1(v1) do                                                     │
00:02:18 #16362 [Verbose] > │         let v3 : int32 = v1.l0                                               │
00:02:18 #16363 [Verbose] > │         let v4 : float = float v3                                            │
00:02:18 #16364 [Verbose] > │         let v5 : float = 0.1 * v4                                            │
00:02:18 #16365 [Verbose] > │         let v6 : float = -5.0 + v5                                           │
00:02:18 #16366 [Verbose] > │         v0.[int v3] <- v6                                                    │
00:02:18 #16367 [Verbose] > │         let v7 : int32 = v3 + 1                                              │
00:02:18 #16368 [Verbose] > │         v1.l0 <- v7                                                          │
00:02:18 #16369 [Verbose] > │         ()                                                                   │
00:02:18 #16370 [Verbose] > │     let v8 : int32 = v0.Length                                               │
00:02:18 #16371 [Verbose] > │     let v9 : (float []) = Array.zeroCreate<float> (v8)                       │
00:02:18 #16372 [Verbose] > │     let v10 : Mut0 = {l0 = 0} : Mut0                                         │
00:02:18 #16373 [Verbose] > │     while method2(v8, v10) do                                                │
00:02:18 #16374 [Verbose] > │         let v12 : int32 = v10.l0                                             │
00:02:18 #16375 [Verbose] > │         let v13 : float = v0.[int v12]                                       │
00:02:18 #16376 [Verbose] > │         let v14 : float = v13 / 20.0                                         │
00:02:18 #16377 [Verbose] > │         let v15 : int32 = int32 v14                                          │
00:02:18 #16378 [Verbose] > │         let v16 : float = float v15                                          │
00:02:18 #16379 [Verbose] > │         let v17 : float = v16 * 20.0                                         │
00:02:18 #16380 [Verbose] > │         let v18 : float = v13 - v17                                          │
00:02:18 #16381 [Verbose] > │         let v19 : bool = v18 > 0.0                                           │
00:02:18 #16382 [Verbose] > │         let v21 : bool =                                                     │
00:02:18 #16383 [Verbose] > │             if v19 then                                                      │
00:02:18 #16384 [Verbose] > │                 let v20 : bool = v18 < 10.0                                  │
00:02:18 #16385 [Verbose] > │                 v20                                                          │
00:02:18 #16386 [Verbose] > │             else                                                             │
00:02:18 #16387 [Verbose] > │                 false                                                        │
00:02:18 #16388 [Verbose] > │         let v22 : float =                                                    │
00:02:18 #16389 [Verbose] > │             if v21 then                                                      │
00:02:18 #16390 [Verbose] > │                 10.0                                                         │
00:02:18 #16391 [Verbose] > │             else                                                             │
00:02:18 #16392 [Verbose] > │                 0.0                                                          │
00:02:18 #16393 [Verbose] > │         v9.[int v12] <- v22                                                  │
00:02:18 #16394 [Verbose] > │         let v23 : int32 = v12 + 1                                            │
00:02:18 #16395 [Verbose] > │         v10.l0 <- v23                                                        │
00:02:18 #16396 [Verbose] > │         ()                                                                   │
00:02:18 #16397 [Verbose] > │     let v24 : string = "force on bike (N)"                                   │
00:02:18 #16398 [Verbose] > │     let v25 : (struct (string * (float []) * (float [])) []) = [|struct      │
00:02:18 #16399 [Verbose] > │ (v24, v0, v9)|]                                                              │
00:02:18 #16400 [Verbose] > │     let v26 : (struct (string * (float []) * (float [])) []) = method3(v25)  │
00:02:18 #16401 [Verbose] > │     let v27 : string = "child pedaling then coasting"                        │
00:02:18 #16402 [Verbose] > │     let v28 : string = "time (s)"                                            │
00:02:18 #16403 [Verbose] > │     let v29 : string = ""                                                    │
00:02:18 #16404 [Verbose] > │     struct (v27, v28, v29, v26)                                              │
00:02:18 #16405 [Verbose] > │ method0()                                                                    │
00:02:18 #16406 [Verbose] > │                                                                              │
00:02:18 #16407 [Verbose] > │                                                                              │
00:02:18 #16408 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:18 #16409 [Verbose] >
00:02:18 #16410 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:18 #16411 [Verbose] > // // test
00:02:18 #16412 [Verbose] >
00:02:18 #16413 [Verbose] > inl x = am'.init_series -5 45 1
00:02:18 #16414 [Verbose] > inl y = x |> am.map (position_ft 0.1f64 20 0 0 [[ pedal_coast ]])
00:02:18 #16415 [Verbose] > "child pedaling then coasting", "time (s)", "", ;[[ "position of bike (m)", x, y
00:02:18 #16416 [Verbose] > ]]
00:02:19 #16417 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-4808-0851-0222a04baa40/main.spi
00:02:19 #16418 [Verbose] >
00:02:19 #16419 [Verbose] > ╭─[ 401.69ms - return value ]──────────────────────────────────────────────────╮
00:02:19 #16420 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480"                          │
00:02:19 #16421 [Verbose] > │ xmlns="http://www.w3.org/2000/svg">                                          │
00:02:19 #16422 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414"        │
00:02:19 #16423 [Verbose] > │ stroke="none"/>                                                              │
00:02:19 #16424 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle"                        │
00:02:19 #16425 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1"            │
00:02:19 #16426 [Verbose] > │ fill="#FFFFFF">                                                              │
00:02:19 #16427 [Verbose] > │ child pedaling then coasting                                                 │
00:02:19 #16428 [Verbose] > │ </text>                                                                      │
00:02:19 #16429 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="59" y1="424" x2="59" │
00:02:19 #16430 [Verbose] > │ y2="75"/>                                                                    │
00:02:19 #16431 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:02:19 #16432 [Verbose] > │ y2="75"/>                                                                    │
00:02:19 #16433 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="79" y1="424" x2="79" │
00:02:19 #16434 [Verbose] > │ y2="75"/>                                                                    │
00:02:19 #16435 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="89" y1="424" x2="89" │
00:02:19 #16436 [Verbose] > │ y2="75"/>                                                                    │
00:02:19 #16437 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1=...                   │
00:02:19 #16438 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:19 #16439 [Verbose] >
00:02:19 #16440 [Verbose] > ╭─[ 406.93ms - stdout ]────────────────────────────────────────────────────────╮
00:02:19 #16441 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │
00:02:19 #16442 [Verbose] > │ and UH0 =                                                                    │
00:02:19 #16443 [Verbose] > │     | UH0_0 of float * UH0                                                   │
00:02:19 #16444 [Verbose] > │     | UH0_1                                                                  │
00:02:19 #16445 [Verbose] > │ let rec method1 (v0 : Mut0) : bool =                                         │
00:02:19 #16446 [Verbose] > │     let v1 : int32 = v0.l0                                                   │
00:02:19 #16447 [Verbose] > │     let v2 : bool = v1 < 51                                                  │
00:02:19 #16448 [Verbose] > │     v2                                                                       │
00:02:19 #16449 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool =                                 │
00:02:19 #16450 [Verbose] > │     let v2 : int32 = v1.l0                                                   │
00:02:19 #16451 [Verbose] > │     let v3 : bool = v2 < v0                                                  │
00:02:19 #16452 [Verbose] > │     v3                                                                       │
00:02:19 #16453 [Verbose] > │ and method3 (v0 : float, v1 : float) : UH0 =                                 │
00:02:19 #16454 [Verbose] > │     let v2 : bool = v1 < v0                                                  │
00:02:19 #16455 [Verbose] > │     if v2 then                                                               │
00:02:19 #16456 [Verbose] > │         let v3 : float = 0.1 * v1                                            │
00:02:19 #16457 [Verbose] > │         let v4 : float = 0.05 + v3                                           │
00:02:19 #16458 [Verbose] > │         let v5 : float = v1 + 1.0                                            │
00:02:19 #16459 [Verbose] > │         let v6 : UH0 = method3(v0, v5)                                       │
00:02:19 #16460 [Verbose] > │         UH0_0(v4, v6)                                                        │
00:02:19 #16461 [Verbose] > │     else                                                                     │
00:02:19 #16462 [Verbose] > │         UH0_1                                                                │
00:02:19 #16463 [Verbose] > │ and method5 (v0 : UH0, v1 : UH0) : UH0 =                                     │
00:02:19 #16464 [Verbose] > │     match v0 with                                                            │
00:02:19 #16465 [Verbose] > │     | UH0_0(v2, v3) -> (* Cons *)                                            │
00:02:19 #16466 [Verbose] > │         let v4 : UH0 = method5(v3, v1)                                       │
00:02:19 #16467 [Verbose] > │         let v5 : float = v2 / 20.0                                           │
00:02:19 #16468 [Verbose] > │         let v6 : int32 = int32 v5                                            │
00:02:19 #16469 [Verbose] > │         let v7 : float = float v6                                            │
00:02:19 #16470 [Verbose] > │         let v8 : float = v7 * 20.0                                           │
00:02:19 #16471 [Verbose] > │         let v9 : float = v2 - v8                                             │
00:02:19 #16472 [Verbose] > │         let v10 : bool = v9 > 0.0                                            │
00:02:19 #16473 [Verbose] > │         let v12 : bool =                                                     │
00:02:19 #16474 [Verbose] > │             if v10 then                                                      │
00:02:19 #16475 [Verbose] > │                 let v11 : bool = v9 < 10.0                                   │
00:02:19 #16476 [Verbose] > │                 v11                                                          │
00:02:19 #16477 [Verbose] > │             else                                                             │
00:02:19 #16478 [Verbose] > │                 false                                                        │
00:02:19 #16479 [Verbose] > │         let v13 : float =                                                    │
00:02:19 #16480 [Verbose] > │             if v12 then                                                      │
00:02:19 #16481 [Verbose] > │                 10.0                                                         │
00:02:19 #16482 [Verbose] > │             else                                                             │
00:02:19 #16483 [Verbose] > │                 0.0                                                          │
00:02:19 #16484 [Verbose] > │         let v14 : float = v13 / 20.0                                         │
00:02:19 #16485 [Verbose] > │         let v15 : float = 0.1 * v14                                          │
00:02:19 #16486 [Verbose] > │         UH0_0(v15, v4)                                                       │
00:02:19 #16487 [Verbose] > │     | UH0_1 -> (* Nil *)                                                     │
00:02:19 #16488 [Verbose] > │         v1                                                                   │
00:02:19 #16489 [Verbose] > │ and method6 (v0 : UH0, v1 : float) : float =                                 │
00:02:19 #16490 [Verbose] > │     match v0 with                                                            │
00:02:19 #16491 [Verbose] > │     | UH0_0(v2, v3) -> (* Cons *)                                            │
00:02:19 #16492 [Verbose] > │         let v4 : float = v1 + v2                                             │
00:02:19 #16493 [Verbose] > │         method6(v3, v4)                                                      │
00:02:19 #16494 [Verbose] > │     | UH0_1 -> (* Nil *)                                                     │
00:02:19 #16495 [Verbose] > │         v1                                                                   │
00:02:19 #16496 [Verbose] > │ and method4 (v0 : UH0, v1 : UH0) : UH0 =                                     │
00:02:19 #16497 [Verbose] > │     match v0 with                                                            │
00:02:19 #16498 [Verbose] > │     | UH0_0(v2, v3) -> (* Cons *)                                            │
00:02:19 #16499 [Verbose] > │         let v4 : UH0 = method4(v3, v1)                                       │
00:02:19 #16500 [Verbose] > │         let v5 : float = v2 - 0.05                                           │
00:02:19 #16501 [Verbose] > │         let v6 : float = v5 - 0.05                                           │
00:02:19 #16502 [Verbose] > │         let v7 : float = v6 / 0.1                                            │
00:02:19 #16503 [Verbose] > │         let v8 : float = v7 + 1.0                                            │
00:02:19 #16504 [Verbose] > │         let v9 : float = 0.0                                                 │
00:02:19 #16505 [Verbose] > │         let v10 : UH0 = method3(v8, v9)                                      │
00:02:19 #16506 [Verbose] > │         let v11 : UH0 = UH0_1                                                │
00:02:19 #16507 [Verbose] > │         let v12 : UH0 = method5(v10, v11)                                    │
00:02:19 #16508 [Verbose] > │         let v13 : float = 0.0                                                │
00:02:19 #16509 [Verbose] > │         let v14 : float = method6(v12, v13)                                  │
00:02:19 #16510 [Verbose] > │         let v15 : float = 0.1 * v14                                          │
00:02:19 #16511 [Verbose] > │         UH0_0(v15, v4)                                                       │
00:02:19 #16512 [Verbose] > │     | UH0_1 -> (* Nil *)                                                     │
00:02:19 #16513 [Verbose] > │         v1                                                                   │
00:02:19 #16514 [Verbose] > │ and method7 (v0 : (struct (string * (float []) * (float [])) [])) : (struct  │
00:02:19 #16515 [Verbose] > │ (string * (float []) * (float [])) []) =                                     │
00:02:19 #16516 [Verbose] > │     v0                                                                       │
00:02:19 #16517 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:02:19 #16518 [Verbose] > │ []) * (float [])) [])) =                                                     │
00:02:19 #16519 [Verbose] > │     let v0 : (float []) = Array.zeroCreate<float> (51)                       │
00:02:19 #16520 [Verbose] > │     let v1 : Mut0 = {l0 = 0} : Mut0                                          │
00:02:19 #16521 [Verbose] > │     while method1(v1) do                                                     │
00:02:19 #16522 [Verbose] > │         let v3 : int32 = v1.l0                                               │
00:02:19 #16523 [Verbose] > │         let v4 : float = float v3                                            │
00:02:19 #16524 [Verbose] > │         let v5 : float = -5.0 + v4                                           │
00:02:19 #16525 [Verbose] > │         v0.[int v3] <- v5                                                    │
00:02:19 #16526 [Verbose] > │         let v6 : int32 = v3 + 1                                              │
00:02:19 #16527 [Verbose] > │         v1.l0 <- v6                                                          │
00:02:19 #16528 [Verbose] > │         ()                                                                   │
00:02:19 #16529 [Verbose] > │     let v7 : int32 = v0.Length                                               │
00:02:19 #16530 [Verbose] > │     let v8 : (float []) = Array.zeroCreate<float> (v7)                       │
00:02:19 #16531 [Verbose] > │     let v9 : Mut0 = {l0 = 0} : Mut0                                          │
00:02:19 #16532 [Verbose] > │     while method2(v7, v9) do                                                 │
00:02:19 #16533 [Verbose] > │         let v11 : int32 = v9.l0                                              │
00:02:19 #16534 [Verbose] > │         let v12 : float = v0.[int v11]                                       │
00:02:19 #16535 [Verbose] > │         let v13 : float = v12 - 0.05                                         │
00:02:19 #16536 [Verbose] > │         let v14 : float = v13 - 0.05                                         │
00:02:19 #16537 [Verbose] > │         let v15 : float = v14 / 0.1                                          │
00:02:19 #16538 [Verbose] > │         let v16 : float = v15 + 1.0                                          │
00:02:19 #16539 [Verbose] > │         let v17 : float = 0.0                                                │
00:02:19 #16540 [Verbose] > │         let v18 : UH0 = method3(v16, v17)                                    │
00:02:19 #16541 [Verbose] > │         let v19 : UH0 = UH0_1                                                │
00:02:19 #16542 [Verbose] > │         let v20 : UH0 = method4(v18, v19)                                    │
00:02:19 #16543 [Verbose] > │         let v21 : float = 0.0                                                │
00:02:19 #16544 [Verbose] > │         let v22 : float = method6(v20, v21)                                  │
00:02:19 #16545 [Verbose] > │         v8.[int v11] <- v22                                                  │
00:02:19 #16546 [Verbose] > │         let v23 : int32 = v11 + 1                                            │
00:02:19 #16547 [Verbose] > │         v9.l0 <- v23                                                         │
00:02:19 #16548 [Verbose] > │         ()                                                                   │
00:02:19 #16549 [Verbose] > │     let v24 : string = "position of bike (m)"                                │
00:02:19 #16550 [Verbose] > │     let v25 : (struct (string * (float []) * (float [])) []) = [|struct      │
00:02:19 #16551 [Verbose] > │ (v24, v0, v8)|]                                                              │
00:02:19 #16552 [Verbose] > │     let v26 : (struct (string * (float []) * (float [])) []) = method7(v25)  │
00:02:19 #16553 [Verbose] > │     let v27 : string = "child pedaling then coasting"                        │
00:02:19 #16554 [Verbose] > │     let v28 : string = "time (s)"                                            │
00:02:19 #16555 [Verbose] > │     let v29 : string = ""                                                    │
00:02:19 #16556 [Verbose] > │     struct (v27, v28, v29, v26)                                              │
00:02:19 #16557 [Verbose] > │ method0()                                                                    │
00:02:19 #16558 [Verbose] > │                                                                              │
00:02:19 #16559 [Verbose] > │                                                                              │
00:02:19 #16560 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:19 #16561 [Verbose] >
00:02:19 #16562 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:19 #16563 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:19 #16564 [Verbose] > │ ## velocity_fv                                                               │
00:02:19 #16565 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:19 #16566 [Verbose] >
00:02:19 #16567 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:19 #16568 [Verbose] > inl newton_second_v m fs v0 =
00:02:19 #16569 [Verbose] >     fs |> listm.map (fun f => f v0) |> listm'.sum |> fun x => x / m
00:02:19 #16570 [Verbose] >
00:02:19 #16571 [Verbose] > inl update_velocity dt m fs v0 =
00:02:19 #16572 [Verbose] >     v0 + newton_second_v m fs v0 * dt
00:02:19 #16573 [Verbose] >
00:02:19 #16574 [Verbose] > inl velocity_fv dt m v0 fs t =
00:02:19 #16575 [Verbose] >     stream.iterate (update_velocity dt m fs) v0
00:02:19 #16576 [Verbose] >     |> stream.try_item (t / dt |> math.round |> abs)
00:02:19 #16577 [Verbose] >     |> optionm'.default_value 0
00:02:19 #16578 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-4851-5127-52ae13e3b3c3/main.spi
00:02:19 #16579 [Verbose] >
00:02:19 #16580 [Verbose] > ╭─[ 119.46ms - stdout ]────────────────────────────────────────────────────────╮
00:02:19 #16581 [Verbose] > │ ()                                                                           │
00:02:19 #16582 [Verbose] > │                                                                              │
00:02:19 #16583 [Verbose] > │                                                                              │
00:02:19 #16584 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:19 #16585 [Verbose] >
00:02:19 #16586 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:19 #16587 [Verbose] > inl f_air drag rho area v =
00:02:19 #16588 [Verbose] >     -drag * rho * area * abs v * v / 2
00:02:19 #16589 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-4862-6214-6ee72a54a6cc/main.spi
00:02:19 #16590 [Verbose] >
00:02:19 #16591 [Verbose] > ╭─[ 107.73ms - stdout ]────────────────────────────────────────────────────────╮
00:02:19 #16592 [Verbose] > │ ()                                                                           │
00:02:19 #16593 [Verbose] > │                                                                              │
00:02:19 #16594 [Verbose] > │                                                                              │
00:02:19 #16595 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:19 #16596 [Verbose] >
00:02:19 #16597 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:19 #16598 [Verbose] > // // test
00:02:19 #16599 [Verbose] >
00:02:19 #16600 [Verbose] > inl x = am'.init_series 0 60 0.5
00:02:19 #16601 [Verbose] > inl y = x |> am.map (velocity_fv 1 70 0f64 [[ fun _ => 100; f_air 2 1.225 0.6
00:02:19 #16602 [Verbose] > ]])
00:02:19 #16603 [Verbose] > "bike velocity", "time (s)", "", ;[[ "velocity of bike (m/s)", x, y ]]
00:02:19 #16604 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-4872-7299-73feeac998e6/main.spi
00:02:19 #16605 [Verbose] >
00:02:19 #16606 [Verbose] > ╭─[ 415.26ms - return value ]──────────────────────────────────────────────────╮
00:02:19 #16607 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480"                          │
00:02:19 #16608 [Verbose] > │ xmlns="http://www.w3.org/2000/svg">                                          │
00:02:19 #16609 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414"        │
00:02:19 #16610 [Verbose] > │ stroke="none"/>                                                              │
00:02:19 #16611 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle"                        │
00:02:19 #16612 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1"            │
00:02:19 #16613 [Verbose] > │ fill="#FFFFFF">                                                              │
00:02:19 #16614 [Verbose] > │ bike velocity                                                                │
00:02:19 #16615 [Verbose] > │ </text>                                                                      │
00:02:19 #16616 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="61" y1="424" x2="61" │
00:02:19 #16617 [Verbose] > │ y2="75"/>                                                                    │
00:02:19 #16618 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:02:19 #16619 [Verbose] > │ y2="75"/>                                                                    │
00:02:19 #16620 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="78" y1="424" x2="78" │
00:02:19 #16621 [Verbose] > │ y2="75"/>                                                                    │
00:02:19 #16622 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="86" y1="424" x2="86" │
00:02:19 #16623 [Verbose] > │ y2="75"/>                                                                    │
00:02:19 #16624 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="94" y1="424" x...    │
00:02:19 #16625 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:19 #16626 [Verbose] >
00:02:20 #16627 [Verbose] > ╭─[ 425.02ms - stdout ]────────────────────────────────────────────────────────╮
00:02:20 #16628 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │
00:02:20 #16629 [Verbose] > │ and UH0 =                                                                    │
00:02:20 #16630 [Verbose] > │     | UH0_0 of float * (unit -> UH0)                                         │
00:02:20 #16631 [Verbose] > │     | UH0_1                                                                  │
00:02:20 #16632 [Verbose] > │ and [<Struct>] US0 =                                                         │
00:02:20 #16633 [Verbose] > │     | US0_0                                                                  │
00:02:20 #16634 [Verbose] > │     | US0_1 of f1_0 : float                                                  │
00:02:20 #16635 [Verbose] > │ let rec method1 (v0 : Mut0) : bool =                                         │
00:02:20 #16636 [Verbose] > │     let v1 : int32 = v0.l0                                                   │
00:02:20 #16637 [Verbose] > │     let v2 : bool = v1 < 121                                                 │
00:02:20 #16638 [Verbose] > │     v2                                                                       │
00:02:20 #16639 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool =                                 │
00:02:20 #16640 [Verbose] > │     let v2 : int32 = v1.l0                                                   │
00:02:20 #16641 [Verbose] > │     let v3 : bool = v2 < v0                                                  │
00:02:20 #16642 [Verbose] > │     v3                                                                       │
00:02:20 #16643 [Verbose] > │ and closure129 () () : UH0 =                                                 │
00:02:20 #16644 [Verbose] > │     let v0 : (unit -> UH0) = closure129()                                    │
00:02:20 #16645 [Verbose] > │     UH0_0(11.664236870396083, v0)                                            │
00:02:20 #16646 [Verbose] > │ and closure128 () () : UH0 =                                                 │
00:02:20 #16647 [Verbose] > │     let v0 : (unit -> UH0) = closure129()                                    │
00:02:20 #16648 [Verbose] > │     UH0_0(11.664236870396081, v0)                                            │
00:02:20 #16649 [Verbose] > │ and closure127 () () : UH0 =                                                 │
00:02:20 #16650 [Verbose] > │     let v0 : (unit -> UH0) = closure128()                                    │
00:02:20 #16651 [Verbose] > │     UH0_0(11.66423687039608, v0)                                             │
00:02:20 #16652 [Verbose] > │ and closure126 () () : UH0 =                                                 │
00:02:20 #16653 [Verbose] > │     let v0 : (unit -> UH0) = closure127()                                    │
00:02:20 #16654 [Verbose] > │     UH0_0(11.664236870396078, v0)                                            │
00:02:20 #16655 [Verbose] > │ and closure125 () () : UH0 =                                                 │
00:02:20 #16656 [Verbose] > │     let v0 : (unit -> UH0) = closure126()                                    │
00:02:20 #16657 [Verbose] > │     UH0_0(11.664236870396074, v0)                                            │
00:02:20 #16658 [Verbose] > │ and closure124 () () : UH0 =                                                 │
00:02:20 #16659 [Verbose] > │     let v0 : (unit -> UH0) = closure125()                                    │
00:02:20 #16660 [Verbose] > │     UH0_0(11.66423687039607, v0)                                             │
00:02:20 #16661 [Verbose] > │ and closure123 () () : UH0 =                                                 │
00:02:20 #16662 [Verbose] > │     let v0 : (unit -> UH0) = closure124()                                    │
00:02:20 #16663 [Verbose] > │     UH0_0(11.664236870396065, v0)                                            │
00:02:20 #16664 [Verbose] > │ and closure122 () () : UH0 =                                                 │
00:02:20 #16665 [Verbose] > │     let v0 : (unit -> UH0) = closure123()                                    │
00:02:20 #16666 [Verbose] > │     UH0_0(11.664236870396058, v0)                                            │
00:02:20 #16667 [Verbose] > │ and closure121 () () : UH0 =                                                 │
00:02:20 #16668 [Verbose] > │     let v0 : (unit -> UH0) = closure122()                                    │
00:02:20 #16669 [Verbose] > │     UH0_0(11.66423687039605, v0)                                             │
00:02:20 #16670 [Verbose] > │ and closure120 () () : UH0 =                                                 │
00:02:20 #16671 [Verbose] > │     let v0 : (unit -> UH0) = closure121()                                    │
00:02:20 #16672 [Verbose] > │     UH0_0(11.664236870396037, v0)                                            │
00:02:20 #16673 [Verbose] > │ and closure119 () () : UH0 =                                                 │
00:02:20 #16674 [Verbose] > │     let v0 : (unit -> UH0) = closure120()                                    │
00:02:20 #16675 [Verbose] > │     UH0_0(11.66423687039602, v0)                                             │
00:02:20 #16676 [Verbose] > │ and closure118 () () : UH0 =                                                 │
00:02:20 #16677 [Verbose] > │     let v0 : (unit -> UH0) = closure119()                                    │
00:02:20 #16678 [Verbose] > │     UH0_0(11.664236870396, v0)                                               │
00:02:20 #16679 [Verbose] > │ and closure117 () () : UH0 =                                                 │
00:02:20 #16680 [Verbose] > │     let v0 : (unit -> UH0) = closure118()                                    │
00:02:20 #16681 [Verbose] > │     UH0_0(11.664236870395971, v0)                                            │
00:02:20 #16682 [Verbose] > │ and closure116 () () : UH0 =                                                 │
00:02:20 #16683 [Verbose] > │     let v0 : (unit -> UH0) = closure117()                                    │
00:02:20 #16684 [Verbose] > │     UH0_0(11.664236870395934, v0)                                            │
00:02:20 #16685 [Verbose] > │ and closure115 () () : UH0 =                                                 │
00:02:20 #16686 [Verbose] > │     let v0 : (unit -> UH0) = closure116()                                    │
00:02:20 #16687 [Verbose] > │     UH0_0(11.664236870395884, v0)                                            │
00:02:20 #16688 [Verbose] > │ and closure114 () () : UH0 =                                                 │
00:02:20 #16689 [Verbose] > │     let v0 : (unit -> UH0) = closure115()                                    │
00:02:20 #16690 [Verbose] > │     UH0_0(11.664236870395818, v0)                                            │
00:02:20 #16691 [Verbose] > │ and closure113 () () : UH0 =                                                 │
00:02:20 #16692 [Verbose] > │     let v0 : (unit -> UH0) = closure114()                                    │
00:02:20 #16693 [Verbose] > │     UH0_0(11.664236870395731, v0)                                            │
00:02:20 #16694 [Verbose] > │ and closure112 () () : UH0 =                                                 │
00:02:20 #16695 [Verbose] > │     let v0 : (unit -> UH0) = closure113()                                    │
00:02:20 #16696 [Verbose] > │     UH0_0(11.664236870395616, v0)                                            │
00:02:20 #16697 [Verbose] > │ and closure111 () () : UH0 =                                                 │
00:02:20 #16698 [Verbose] > │     let v0 : (unit -> UH0) = closure112()                                    │
00:02:20 #16699 [Verbose] > │     UH0_0(11.664236870395463, v0)                                            │
00:02:20 #16700 [Verbose] > │ and closure110 () () : UH0 =                                                 │
00:02:20 #16701 [Verbose] > │     let v0 : (unit -> UH0) = closure111()                                    │
00:02:20 #16702 [Verbose] > │     UH0_0(11.66423687039526, v0)                                             │
00:02:20 #16703 [Verbose] > │ and closure109 () () : UH0 =                                                 │
00:02:20 #16704 [Verbose] > │     let v0 : (unit -> UH0) = closure110()                                    │
00:02:20 #16705 [Verbose] > │     UH0_0(11.664236870394992, v0)                                            │
00:02:20 #16706 [Verbose] > │ and closure108 () () : UH0 =                                                 │
00:02:20 #16707 [Verbose] > │     let v0 : (unit -> UH0) = closure109()                                    │
00:02:20 #16708 [Verbose] > │     UH0_0(11.664236870394637, v0)                                            │
00:02:20 #16709 [Verbose] > │ and closure107 () () : UH0 =                                                 │
00:02:20 #16710 [Verbose] > │     let v0 : (unit -> UH0) = closure108()                                    │
00:02:20 #16711 [Verbose] > │     UH0_0(11.664236870394168, v0)                                            │
00:02:20 #16712 [Verbose] > │ and closure106 () () : UH0 =                                                 │
00:02:20 #16713 [Verbose] > │     let v0 : (unit -> UH0) = closure107()                                    │
00:02:20 #16714 [Verbose] > │     UH0_0(11.664236870393546, v0)                                            │
00:02:20 #16715 [Verbose] > │ and closure105 () () : UH0 =                                                 │
00:02:20 #16716 [Verbose] > │     let v0 : (unit -> UH0) = closure106()                                    │
00:02:20 #16717 [Verbose] > │     UH0_0(11.664236870392722, v0)                                            │
00:02:20 #16718 [Verbose] > │ and closure104 () () : UH0 =                                                 │
00:02:20 #16719 [Verbose] > │     let v0 : (unit -> UH0) = closure105()                                    │
00:02:20 #16720 [Verbose] > │     UH0_0(11.664236870391631, v0)                                            │
00:02:20 #16721 [Verbose] > │ and closure103 () () : UH0 =                                                 │
00:02:20 #16722 [Verbose] > │     let v0 : (unit -> UH0) = closure104()                                    │
00:02:20 #16723 [Verbose] > │     UH0_0(11.664236870390187, v0)                                            │
00:02:20 #16724 [Verbose] > │ and closure102 () () : UH0 =                                                 │
00:02:20 #16725 [Verbose] > │     let v0 : (unit -> UH0) = closure103()                                    │
00:02:20 #16726 [Verbose] > │     UH0_0(11.664236870388274, v0)                                            │
00:02:20 #16727 [Verbose] > │ and closure101 () () : UH0 =                                                 │
00:02:20 #16728 [Verbose] > │     let v0 : (unit -> UH0) = closure102()                                    │
00:02:20 #16729 [Verbose] > │     UH0_0(11.66423687038574, v0)                                             │
00:02:20 #16730 [Verbose] > │ and closure100 () () : UH0 =                                                 │
00:02:20 #16731 [Verbose] > │     let v0 : (unit -> UH0) = closure101()                                    │
00:02:20 #16732 [Verbose] > │     UH0_0(11.664236870382384, v0)                                            │
00:02:20 #16733 [Verbose] > │ and closure99 () () : UH0 =                                                  │
00:02:20 #16734 [Verbose] > │     let v0 : (unit -> UH0) = closure100()                                    │
00:02:20 #16735 [Verbose] > │     UH0_0(11.664236870377938, v0)                                            │
00:02:20 #16736 [Verbose] > │ and closure98 () () : UH0 =                                                  │
00:02:20 #16737 [Verbose] > │     let v0 : (unit -> UH0) = closure99()                                     │
00:02:20 #16738 [Verbose] > │     UH0_0(11.66423687037205, v0)                                             │
00:02:20 #16739 [Verbose] > │ and closure97 () () : UH0 =                                                  │
00:02:20 #16740 [Verbose] > │     let v0 : (unit -> UH0) = closure98()                                     │
00:02:20 #16741 [Verbose] > │     UH0_0(11.664236870364254, v0)                                            │
00:02:20 #16742 [Verbose] > │ and closure96 () () : UH0 =                                                  │
00:02:20 #16743 [Verbose] > │     let v0 : (unit -> UH0) = closure97()                                     │
00:02:20 #16744 [Verbose] > │     UH0_0(11.664236870353927, v0)                                            │
00:02:20 #16745 [Verbose] > │ and closure95 () () : UH0 =                                                  │
00:02:20 #16746 [Verbose] > │     let v0 : (unit -> UH0) = closure96()                                     │
00:02:20 #16747 [Verbose] > │     UH0_0(11.664236870340249, v0)                                            │
00:02:20 #16748 [Verbose] > │ and closure94 () () : UH0 =                                                  │
00:02:20 #16749 [Verbose] > │     let v0 : (unit -> UH0) = closure95()                                     │
00:02:20 #16750 [Verbose] > │     UH0_0(11.664236870322135, v0)                                            │
00:02:20 #16751 [Verbose] > │ and closure93 () () : UH0 =                                                  │
00:02:20 #16752 [Verbose] > │     let v0 : (unit -> UH0) = closure94()                                     │
00:02:20 #16753 [Verbose] > │     UH0_0(11.664236870298145, v0)                                            │
00:02:20 #16754 [Verbose] > │ and closure92 () () : UH0 =                                                  │
00:02:20 #16755 [Verbose] > │     let v0 : (unit -> UH0) = closure93()                                     │
00:02:20 #16756 [Verbose] > │     UH0_0(11.664236870266372, v0)                                            │
00:02:20 #16757 [Verbose] > │ and closure91 () () : UH0 =                                                  │
00:02:20 #16758 [Verbose] > │     let v0 : (unit -> UH0) = closure92()                                     │
00:02:20 #16759 [Verbose] > │     UH0_0(11.664236870224292, v0)                                            │
00:02:20 #16760 [Verbose] > │ and closure90 () () : UH0 =                                                  │
00:02:20 #16761 [Verbose] > │     let v0 : (unit -> UH0) = closure91()                                     │
00:02:20 #16762 [Verbose] > │     UH0_0(11.66423687016856, v0)                                             │
00:02:20 #16763 [Verbose] > │ and closure89 () () : UH0 =                                                  │
00:02:20 #16764 [Verbose] > │     let v0 : (unit -> UH0) = closure90()                                     │
00:02:20 #16765 [Verbose] > │     UH0_0(11.664236870094747, v0)                                            │
00:02:20 #16766 [Verbose] > │ and closure88 () () : UH0 =                                                  │
00:02:20 #16767 [Verbose] > │     let v0 : (unit -> UH0) = closure89()                                     │
00:02:20 #16768 [Verbose] > │     UH0_0(11.664236869996989, v0)                                            │
00:02:20 #16769 [Verbose] > │ and closure87 () () : UH0 =                                                  │
00:02:20 #16770 [Verbose] > │     let v0 : (unit -> UH0) = closure88()                                     │
00:02:20 #16771 [Verbose] > │     UH0_0(11.664236869867516, v0)                                            │
00:02:20 #16772 [Verbose] > │ and closure86 () () : UH0 =                                                  │
00:02:20 #16773 [Verbose] > │     let v0 : (unit -> UH0) = closure87()                                     │
00:02:20 #16774 [Verbose] > │     UH0_0(11.66423686969604, v0)                                             │
00:02:20 #16775 [Verbose] > │ and closure85 () () : UH0 =                                                  │
00:02:20 #16776 [Verbose] > │     let v0 : (unit -> UH0) = closure86()                                     │
00:02:20 #16777 [Verbose] > │     UH0_0(11.664236869468937, v0)                                            │
00:02:20 #16778 [Verbose] > │ and closure84 () () : UH0 =                                                  │
00:02:20 #16779 [Verbose] > │     let v0 : (unit -> UH0) = closure85()                                     │
00:02:20 #16780 [Verbose] > │     UH0_0(11.664236869168157, v0)                                            │
00:02:20 #16781 [Verbose] > │ and closure83 () () : UH0 =                                                  │
00:02:20 #16782 [Verbose] > │     let v0 : (unit -> UH0) = closure84()                                     │
00:02:20 #16783 [Verbose] > │     UH0_0(11.6642368687698, v0)                                              │
00:02:20 #16784 [Verbose] > │ and closure82 () () : UH0 =                                                  │
00:02:20 #16785 [Verbose] > │     let v0 : (unit -> UH0) = closure83()                                     │
00:02:20 #16786 [Verbose] > │     UH0_0(11.664236868242211, v0)                                            │
00:02:20 #16787 [Verbose] > │ and closure81 () () : UH0 =                                                  │
00:02:20 #16788 [Verbose] > │     let v0 : (unit -> UH0) = closure82()                                     │
00:02:20 #16789 [Verbose] > │     UH0_0(11.664236867543465, v0)                                            │
00:02:20 #16790 [Verbose] > │ and closure80 () () : UH0 =                                                  │
00:02:20 #16791 [Verbose] > │     let v0 : (unit -> UH0) = closure81()                                     │
00:02:20 #16792 [Verbose] > │     UH0_0(11.664236866618037, v0)                                            │
00:02:20 #16793 [Verbose] > │ and closure79 () () : UH0 =                                                  │
00:02:20 #16794 [Verbose] > │     let v0 : (unit -> UH0) = closure80()                                     │
00:02:20 #16795 [Verbose] > │     UH0_0(11.664236865392386, v0)                                            │
00:02:20 #16796 [Verbose] > │ and closure78 () () : UH0 =                                                  │
00:02:20 #16797 [Verbose] > │     let v0 : (unit -> UH0) = closure79()                                     │
00:02:20 #16798 [Verbose] > │     UH0_0(11.664236863769117, v0)                                            │
00:02:20 #16799 [Verbose] > │ and closure77 () () : UH0 =                                                  │
00:02:20 #16800 [Verbose] > │     let v0 : (unit -> UH0) = closure78()                                     │
00:02:20 #16801 [Verbose] > │     UH0_0(11.664236861619237, v0)                                            │
00:02:20 #16802 [Verbose] > │ and closure76 () () : UH0 =                                                  │
00:02:20 #16803 [Verbose] > │     let v0 : (unit -> UH0) = closure77()                                     │
00:02:20 #16804 [Verbose] > │     UH0_0(11.664236858771906, v0)                                            │
00:02:20 #16805 [Verbose] > │ and closure75 () () : UH0 =                                                  │
00:02:20 #16806 [Verbose] > │     let v0 : (unit -> UH0) = closure76()                                     │
00:02:20 #16807 [Verbose] > │     UH0_0(11.66423685500086, v0)                                             │
00:02:20 #16808 [Verbose] > │ and closure74 () () : UH0 =                                                  │
00:02:20 #16809 [Verbose] > │     let v0 : (unit -> UH0) = closure75()                                     │
00:02:20 #16810 [Verbose] > │     UH0_0(11.664236850006436, v0)                                            │
00:02:20 #16811 [Verbose] > │ and closure73 () () : UH0 =                                                  │
00:02:20 #16812 [Verbose] > │     let v0 : (unit -> UH0) = closure74()                                     │
00:02:20 #16813 [Verbose] > │     UH0_0(11.664236843391752, v0)                                            │
00:02:20 #16814 [Verbose] > │ and closure72 () () : UH0 =                                                  │
00:02:20 #16815 [Verbose] > │     let v0 : (unit -> UH0) = closure73()                                     │
00:02:20 #16816 [Verbose] > │     UH0_0(11.664236834631172, v0)                                            │
00:02:20 #16817 [Verbose] > │ and closure71 () () : UH0 =                                                  │
00:02:20 #16818 [Verbose] > │     let v0 : (unit -> UH0) = closure72()                                     │
00:02:20 #16819 [Verbose] > │     UH0_0(11.66423682302854, v0)                                             │
00:02:20 #16820 [Verbose] > │ and closure70 () () : UH0 =                                                  │
00:02:20 #16821 [Verbose] > │     let v0 : (unit -> UH0) = closure71()                                     │
00:02:20 #16822 [Verbose] > │     UH0_0(11.664236807661855, v0)                                            │
00:02:20 #16823 [Verbose] > │ and closure69 () () : UH0 =                                                  │
00:02:20 #16824 [Verbose] > │     let v0 : (unit -> UH0) = closure70()                                     │
00:02:20 #16825 [Verbose] > │     UH0_0(11.664236787310005, v0)                                            │
00:02:20 #16826 [Verbose] > │ and closure68 () () : UH0 =                                                  │
00:02:20 #16827 [Verbose] > │     let v0 : (unit -> UH0) = closure69()                                     │
00:02:20 #16828 [Verbose] > │     UH0_0(11.664236760355733, v0)                                            │
00:02:20 #16829 [Verbose] > │ and closure67 () () : UH0 =                                                  │
00:02:20 #16830 [Verbose] > │     let v0 : (unit -> UH0) = closure68()                                     │
00:02:20 #16831 [Verbose] > │     UH0_0(11.664236724657123, v0)                                            │
00:02:20 #16832 [Verbose] > │ and closure66 () () : UH0 =                                                  │
00:02:20 #16833 [Verbose] > │     let v0 : (unit -> UH0) = closure67()                                     │
00:02:20 #16834 [Verbose] > │     UH0_0(11.66423667737739, v0)                                             │
00:02:20 #16835 [Verbose] > │ and closure65 () () : UH0 =                                                  │
00:02:20 #16836 [Verbose] > │     let v0 : (unit -> UH0) = closure66()                                     │
00:02:20 #16837 [Verbose] > │     UH0_0(11.664236614759462, v0)                                            │
00:02:20 #16838 [Verbose] > │ and closure64 () () : UH0 =                                                  │
00:02:20 #16839 [Verbose] > │     let v0 : (unit -> UH0) = closure65()                                     │
00:02:20 #16840 [Verbose] > │     UH0_0(11.664236531827415, v0)                                            │
00:02:20 #16841 [Verbose] > │ and closure63 () () : UH0 =                                                  │
00:02:20 #16842 [Verbose] > │     let v0 : (unit -> UH0) = closure64()                                     │
00:02:20 #16843 [Verbose] > │     UH0_0(11.664236421991067, v0)                                            │
00:02:20 #16844 [Verbose] > │ and closure62 () () : UH0 =                                                  │
00:02:20 #16845 [Verbose] > │     let v0 : (unit -> UH0) = closure63()                                     │
00:02:20 #16846 [Verbose] > │     UH0_0(11.664236276522294, v0)                                            │
00:02:20 #16847 [Verbose] > │ and closure61 () () : UH0 =                                                  │
00:02:20 #16848 [Verbose] > │     let v0 : (unit -> UH0) = closure62()                                     │
00:02:20 #16849 [Verbose] > │     UH0_0(11.664236083861448, v0)                                            │
00:02:20 #16850 [Verbose] > │ and closure60 () () : UH0 =                                                  │
00:02:20 #16851 [Verbose] > │     let v0 : (unit -> UH0) = closure61()                                     │
00:02:20 #16852 [Verbose] > │     UH0_0(11.664235828698772, v0)                                            │
00:02:20 #16853 [Verbose] > │ and closure59 () () : UH0 =                                                  │
00:02:20 #16854 [Verbose] > │     let v0 : (unit -> UH0) = closure60()                                     │
00:02:20 #16855 [Verbose] > │     UH0_0(11.664235490757811, v0)                                            │
00:02:20 #16856 [Verbose] > │ and closure58 () () : UH0 =                                                  │
00:02:20 #16857 [Verbose] > │     let v0 : (unit -> UH0) = closure59()                                     │
00:02:20 #16858 [Verbose] > │     UH0_0(11.664235043184158, v0)                                            │
00:02:20 #16859 [Verbose] > │ and closure57 () () : UH0 =                                                  │
00:02:20 #16860 [Verbose] > │     let v0 : (unit -> UH0) = closure58()                                     │
00:02:20 #16861 [Verbose] > │     UH0_0(11.66423445041147, v0)                                             │
00:02:20 #16862 [Verbose] > │ and closure56 () () : UH0 =                                                  │
00:02:20 #16863 [Verbose] > │     let v0 : (unit -> UH0) = closure57()                                     │
00:02:20 #16864 [Verbose] > │     UH0_0(11.664233665335203, v0)                                            │
00:02:20 #16865 [Verbose] > │ and closure55 () () : UH0 =                                                  │
00:02:20 #16866 [Verbose] > │     let v0 : (unit -> UH0) = closure56()                                     │
00:02:20 #16867 [Verbose] > │     UH0_0(11.664232625569467, v0)                                            │
00:02:20 #16868 [Verbose] > │ and closure54 () () : UH0 =                                                  │
00:02:20 #16869 [Verbose] > │     let v0 : (unit -> UH0) = closure55()                                     │
00:02:20 #16870 [Verbose] > │     UH0_0(11.664231248489562, v0)                                            │
00:02:20 #16871 [Verbose] > │ and closure53 () () : UH0 =                                                  │
00:02:20 #16872 [Verbose] > │     let v0 : (unit -> UH0) = closure54()                                     │
00:02:20 #16873 [Verbose] > │     UH0_0(11.664229424666262, v0)                                            │
00:02:20 #16874 [Verbose] > │ and closure52 () () : UH0 =                                                  │
00:02:20 #16875 [Verbose] > │     let v0 : (unit -> UH0) = closure53()                                     │
00:02:20 #16876 [Verbose] > │     UH0_0(11.66422700917009, v0)                                             │
00:02:20 #16877 [Verbose] > │ and closure51 () () : UH0 =                                                  │
00:02:20 #16878 [Verbose] > │     let v0 : (unit -> UH0) = closure52()                                     │
00:02:20 #16879 [Verbose] > │     UH0_0(11.664223810054642, v0)                                            │
00:02:20 #16880 [Verbose] > │ and closure50 () () : UH0 =                                                  │
00:02:20 #16881 [Verbose] > │     let v0 : (unit -> UH0) = closure51()                                     │
00:02:20 #16882 [Verbose] > │     UH0_0(11.664219573103773, v0)                                            │
00:02:20 #16883 [Verbose] > │ and closure49 () () : UH0 =                                                  │
00:02:20 #16884 [Verbose] > │     let v0 : (unit -> UH0) = closure50()                                     │
00:02:20 #16885 [Verbose] > │     UH0_0(11.6642139616307, v0)                                              │
00:02:20 #16886 [Verbose] > │ and closure48 () () : UH0 =                                                  │
00:02:20 #16887 [Verbose] > │     let v0 : (unit -> UH0) = closure49()                                     │
00:02:20 #16888 [Verbose] > │     UH0_0(11.664206529723813, v0)                                            │
00:02:20 #16889 [Verbose] > │ and closure47 () () : UH0 =                                                  │
00:02:20 #16890 [Verbose] > │     let v0 : (unit -> UH0) = closure48()                                     │
00:02:20 #16891 [Verbose] > │     UH0_0(11.664196686813408, v0)                                            │
00:02:20 #16892 [Verbose] > │ and closure46 () () : UH0 =                                                  │
00:02:20 #16893 [Verbose] > │     let v0 : (unit -> UH0) = closure47()                                     │
00:02:20 #16894 [Verbose] > │     UH0_0(11.664183650743945, v0)                                            │
00:02:20 #16895 [Verbose] > │ and closure45 () () : UH0 =                                                  │
00:02:20 #16896 [Verbose] > │     let v0 : (unit -> UH0) = closure46()                                     │
00:02:20 #16897 [Verbose] > │     UH0_0(11.664166385623318, v0)                                            │
00:02:20 #16898 [Verbose] > │ and closure44 () () : UH0 =                                                  │
00:02:20 #16899 [Verbose] > │     let v0 : (unit -> UH0) = closure45()                                     │
00:02:20 #16900 [Verbose] > │     UH0_0(11.664143519511356, v0)                                            │
00:02:20 #16901 [Verbose] > │ and closure43 () () : UH0 =                                                  │
00:02:20 #16902 [Verbose] > │     let v0 : (unit -> UH0) = closure44()                                     │
00:02:20 #16903 [Verbose] > │     UH0_0(11.664113235408447, v0)                                            │
00:02:20 #16904 [Verbose] > │ and closure42 () () : UH0 =                                                  │
00:02:20 #16905 [Verbose] > │     let v0 : (unit -> UH0) = closure43()                                     │
00:02:20 #16906 [Verbose] > │     UH0_0(11.66407312688485, v0)                                             │
00:02:20 #16907 [Verbose] > │ and closure41 () () : UH0 =                                                  │
00:02:20 #16908 [Verbose] > │     let v0 : (unit -> UH0) = closure42()                                     │
00:02:20 #16909 [Verbose] > │     UH0_0(11.664020006883758, v0)                                            │
00:02:20 #16910 [Verbose] > │ and closure40 () () : UH0 =                                                  │
00:02:20 #16911 [Verbose] > │     let v0 : (unit -> UH0) = closure41()                                     │
00:02:20 #16912 [Verbose] > │     UH0_0(11.663949654514292, v0)                                            │
00:02:20 #16913 [Verbose] > │ and closure39 () () : UH0 =                                                  │
00:02:20 #16914 [Verbose] > │     let v0 : (unit -> UH0) = closure40()                                     │
00:02:20 #16915 [Verbose] > │     UH0_0(11.663856479730171, v0)                                            │
00:02:20 #16916 [Verbose] > │ and closure38 () () : UH0 =                                                  │
00:02:20 #16917 [Verbose] > │     let v0 : (unit -> UH0) = closure39()                                     │
00:02:20 #16918 [Verbose] > │     UH0_0(11.663733079277343, v0)                                            │
00:02:20 #16919 [Verbose] > │ and closure37 () () : UH0 =                                                  │
00:02:20 #16920 [Verbose] > │     let v0 : (unit -> UH0) = closure38()                                     │
00:02:20 #16921 [Verbose] > │     UH0_0(11.663569648675777, v0)                                            │
00:02:20 #16922 [Verbose] > │ and closure36 () () : UH0 =                                                  │
00:02:20 #16923 [Verbose] > │     let v0 : (unit -> UH0) = closure37()                                     │
00:02:20 #16924 [Verbose] > │     UH0_0(11.663353203599439, v0)                                            │
00:02:20 #16925 [Verbose] > │ and closure35 () () : UH0 =                                                  │
00:02:20 #16926 [Verbose] > │     let v0 : (unit -> UH0) = closure36()                                     │
00:02:20 #16927 [Verbose] > │     UH0_0(11.663066548940721, v0)                                            │
00:02:20 #16928 [Verbose] > │ and closure34 () () : UH0 =                                                  │
00:02:20 #16929 [Verbose] > │     let v0 : (unit -> UH0) = closure35()                                     │
00:02:20 #16930 [Verbose] > │     UH0_0(11.662686913915445, v0)                                            │
00:02:20 #16931 [Verbose] > │ and closure33 () () : UH0 =                                                  │
00:02:20 #16932 [Verbose] > │     let v0 : (unit -> UH0) = closure34()                                     │
00:02:20 #16933 [Verbose] > │     UH0_0(11.662184145236864, v0)                                            │
00:02:20 #16934 [Verbose] > │ and closure32 () () : UH0 =                                                  │
00:02:20 #16935 [Verbose] > │     let v0 : (unit -> UH0) = closure33()                                     │
00:02:20 #16936 [Verbose] > │     UH0_0(11.661518315638029, v0)                                            │
00:02:20 #16937 [Verbose] > │ and closure31 () () : UH0 =                                                  │
00:02:20 #16938 [Verbose] > │     let v0 : (unit -> UH0) = closure32()                                     │
00:02:20 #16939 [Verbose] > │     UH0_0(11.66063655920926, v0)                                             │
00:02:20 #16940 [Verbose] > │ and closure30 () () : UH0 =                                                  │
00:02:20 #16941 [Verbose] > │     let v0 : (unit -> UH0) = closure31()                                     │
00:02:20 #16942 [Verbose] > │     UH0_0(11.659468884709733, v0)                                            │
00:02:20 #16943 [Verbose] > │ and closure29 () () : UH0 =                                                  │
00:02:20 #16944 [Verbose] > │     let v0 : (unit -> UH0) = closure30()                                     │
00:02:20 #16945 [Verbose] > │     UH0_0(11.657922638782631, v0)                                            │
00:02:20 #16946 [Verbose] > │ and closure28 () () : UH0 =                                                  │
00:02:20 #16947 [Verbose] > │     let v0 : (unit -> UH0) = closure29()                                     │
00:02:20 #16948 [Verbose] > │     UH0_0(11.655875187195818, v0)                                            │
00:02:20 #16949 [Verbose] > │ and closure27 () () : UH0 =                                                  │
00:02:20 #16950 [Verbose] > │     let v0 : (unit -> UH0) = closure28()                                     │
00:02:20 #16951 [Verbose] > │     UH0_0(11.653164246713697, v0)                                            │
00:02:20 #16952 [Verbose] > │ and closure26 () () : UH0 =                                                  │
00:02:20 #16953 [Verbose] > │     let v0 : (unit -> UH0) = closure27()                                     │
00:02:20 #16954 [Verbose] > │     UH0_0(11.64957512416459, v0)                                             │
00:02:20 #16955 [Verbose] > │ and closure25 () () : UH0 =                                                  │
00:02:20 #16956 [Verbose] > │     let v0 : (unit -> UH0) = closure26()                                     │
00:02:20 #16957 [Verbose] > │     UH0_0(11.644823892116417, v0)                                            │
00:02:20 #16958 [Verbose] > │ and closure24 () () : UH0 =                                                  │
00:02:20 #16959 [Verbose] > │     let v0 : (unit -> UH0) = closure25()                                     │
00:02:20 #16960 [Verbose] > │     UH0_0(11.63853524018339, v0)                                             │
00:02:20 #16961 [Verbose] > │ and closure23 () () : UH0 =                                                  │
00:02:20 #16962 [Verbose] > │     let v0 : (unit -> UH0) = closure24()                                     │
00:02:20 #16963 [Verbose] > │     UH0_0(11.630213374558416, v0)                                            │
00:02:20 #16964 [Verbose] > │ and closure22 () () : UH0 =                                                  │
00:02:20 #16965 [Verbose] > │     let v0 : (unit -> UH0) = closure23()                                     │
00:02:20 #16966 [Verbose] > │     UH0_0(11.619203884549703, v0)                                            │
00:02:20 #16967 [Verbose] > │ and closure21 () () : UH0 =                                                  │
00:02:20 #16968 [Verbose] > │     let v0 : (unit -> UH0) = closure22()                                     │
00:02:20 #16969 [Verbose] > │     UH0_0(11.604643948207235, v0)                                            │
00:02:20 #16970 [Verbose] > │ and closure20 () () : UH0 =                                                  │
00:02:20 #16971 [Verbose] > │     let v0 : (unit -> UH0) = closure21()                                     │
00:02:20 #16972 [Verbose] > │     UH0_0(11.585397618384544, v0)                                            │
00:02:20 #16973 [Verbose] > │ and closure19 () () : UH0 =                                                  │
00:02:20 #16974 [Verbose] > │     let v0 : (unit -> UH0) = closure20()                                     │
00:02:20 #16975 [Verbose] > │     UH0_0(11.559972254267073, v0)                                            │
00:02:20 #16976 [Verbose] > │ and closure18 () () : UH0 =                                                  │
00:02:20 #16977 [Verbose] > │     let v0 : (unit -> UH0) = closure19()                                     │
00:02:20 #16978 [Verbose] > │     UH0_0(11.526411536153837, v0)                                            │
00:02:20 #16979 [Verbose] > │ and closure17 () () : UH0 =                                                  │
00:02:20 #16980 [Verbose] > │     let v0 : (unit -> UH0) = closure18()                                     │
00:02:20 #16981 [Verbose] > │     UH0_0(11.48216011776808, v0)                                             │
00:02:20 #16982 [Verbose] > │ and closure16 () () : UH0 =                                                  │
00:02:20 #16983 [Verbose] > │     let v0 : (unit -> UH0) = closure17()                                     │
00:02:20 #16984 [Verbose] > │     UH0_0(11.42389519391233, v0)                                             │
00:02:20 #16985 [Verbose] > │ and closure15 () () : UH0 =                                                  │
00:02:20 #16986 [Verbose] > │     let v0 : (unit -> UH0) = closure16()                                     │
00:02:20 #16987 [Verbose] > │     UH0_0(11.347321723441393, v0)                                            │
00:02:20 #16988 [Verbose] > │ and closure14 () () : UH0 =                                                  │
00:02:20 #16989 [Verbose] > │     let v0 : (unit -> UH0) = closure15()                                     │
00:02:20 #16990 [Verbose] > │     UH0_0(11.246931775734161, v0)                                            │
00:02:20 #16991 [Verbose] > │ and closure13 () () : UH0 =                                                  │
00:02:20 #16992 [Verbose] > │     let v0 : (unit -> UH0) = closure14()                                     │
00:02:20 #16993 [Verbose] > │     UH0_0(11.115736011467376, v0)                                            │
00:02:20 #16994 [Verbose] > │ and closure12 () () : UH0 =                                                  │
00:02:20 #16995 [Verbose] > │     let v0 : (unit -> UH0) = closure13()                                     │
00:02:20 #16996 [Verbose] > │     UH0_0(10.94498876251829, v0)                                             │
00:02:20 #16997 [Verbose] > │ and closure11 () () : UH0 =                                                  │
00:02:20 #16998 [Verbose] > │     let v0 : (unit -> UH0) = closure12()                                     │
00:02:20 #16999 [Verbose] > │     UH0_0(10.72394989903564, v0)                                             │
00:02:20 #17000 [Verbose] > │ and closure10 () () : UH0 =                                                  │
00:02:20 #17001 [Verbose] > │     let v0 : (unit -> UH0) = closure11()                                     │
00:02:20 #17002 [Verbose] > │     UH0_0(10.439758275369812, v0)                                            │
00:02:20 #17003 [Verbose] > │ and closure9 () () : UH0 =                                                   │
00:02:20 #17004 [Verbose] > │     let v0 : (unit -> UH0) = closure10()                                     │
00:02:20 #17005 [Verbose] > │     UH0_0(10.077531599826058, v0)                                            │
00:02:20 #17006 [Verbose] > │ and closure8 () () : UH0 =                                                   │
00:02:20 #17007 [Verbose] > │     let v0 : (unit -> UH0) = closure9()                                      │
00:02:20 #17008 [Verbose] > │     UH0_0(9.62084761372258, v0)                                              │
00:02:20 #17009 [Verbose] > │ and closure7 () () : UH0 =                                                   │
00:02:20 #17010 [Verbose] > │     let v0 : (unit -> UH0) = closure8()                                      │
00:02:20 #17011 [Verbose] > │     UH0_0(9.052781056066443, v0)                                             │
00:02:20 #17012 [Verbose] > │ and closure6 () () : UH0 =                                                   │
00:02:20 #17013 [Verbose] > │     let v0 : (unit -> UH0) = closure7()                                      │
00:02:20 #17014 [Verbose] > │     UH0_0(8.357635347880503, v0)                                             │
00:02:20 #17015 [Verbose] > │ and closure5 () () : UH0 =                                                   │
00:02:20 #17016 [Verbose] > │     let v0 : (unit -> UH0) = closure6()                                      │
00:02:20 #17017 [Verbose] > │     UH0_0(7.523376447621674, v0)                                             │
00:02:20 #17018 [Verbose] > │ and closure4 () () : UH0 =                                                   │
00:02:20 #17019 [Verbose] > │     let v0 : (unit -> UH0) = closure5()                                      │
00:02:20 #17020 [Verbose] > │     UH0_0(6.544529054818572, v0)                                             │
00:02:20 #17021 [Verbose] > │ and closure3 () () : UH0 =                                                   │
00:02:20 #17022 [Verbose] > │     let v0 : (unit -> UH0) = closure4()                                      │
00:02:20 #17023 [Verbose] > │     UH0_0(5.424976512996006, v0)                                             │
00:02:20 #17024 [Verbose] > │ and closure2 () () : UH0 =                                                   │
00:02:20 #17025 [Verbose] > │     let v0 : (unit -> UH0) = closure3()                                      │
00:02:20 #17026 [Verbose] > │     UH0_0(4.179852321428571, v0)                                             │
00:02:20 #17027 [Verbose] > │ and closure1 () () : UH0 =                                                   │
00:02:20 #17028 [Verbose] > │     let v0 : (unit -> UH0) = closure2()                                      │
00:02:20 #17029 [Verbose] > │     UH0_0(2.835714285714286, v0)                                             │
00:02:20 #17030 [Verbose] > │ and closure0 () () : UH0 =                                                   │
00:02:20 #17031 [Verbose] > │     let v0 : (unit -> UH0) = closure1()                                      │
00:02:20 #17032 [Verbose] > │     UH0_0(1.4285714285714286, v0)                                            │
00:02:20 #17033 [Verbose] > │ and method3 (v0 : float, v1 : UH0) : US0 =                                   │
00:02:20 #17034 [Verbose] > │     match v1 with                                                            │
00:02:20 #17035 [Verbose] > │     | UH0_0(v2, v3) -> (* StreamCons *)                                      │
00:02:20 #17036 [Verbose] > │         let v4 : bool = v0 <= 0.0                                            │
00:02:20 #17037 [Verbose] > │         if v4 then                                                           │
00:02:20 #17038 [Verbose] > │             US0_1(v2)                                                        │
00:02:20 #17039 [Verbose] > │         else                                                                 │
00:02:20 #17040 [Verbose] > │             let v6 : float = v0 - 1.0                                        │
00:02:20 #17041 [Verbose] > │             let v7 : UH0 = v3 ()                                             │
00:02:20 #17042 [Verbose] > │             method3(v6, v7)                                                  │
00:02:20 #17043 [Verbose] > │     | UH0_1 -> (* StreamNil *)                                               │
00:02:20 #17044 [Verbose] > │         US0_0                                                                │
00:02:20 #17045 [Verbose] > │ and method4 (v0 : (struct (string * (float []) * (float [])) [])) : (struct  │
00:02:20 #17046 [Verbose] > │ (string * (float []) * (float [])) []) =                                     │
00:02:20 #17047 [Verbose] > │     v0                                                                       │
00:02:20 #17048 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:02:20 #17049 [Verbose] > │ []) * (float [])) [])) =                                                     │
00:02:20 #17050 [Verbose] > │     let v0 : (float []) = Array.zeroCreate<float> (121)                      │
00:02:20 #17051 [Verbose] > │     let v1 : Mut0 = {l0 = 0} : Mut0                                          │
00:02:20 #17052 [Verbose] > │     while method1(v1) do                                                     │
00:02:20 #17053 [Verbose] > │         let v3 : int32 = v1.l0                                               │
00:02:20 #17054 [Verbose] > │         let v4 : float = float v3                                            │
00:02:20 #17055 [Verbose] > │         let v5 : float = 0.5 * v4                                            │
00:02:20 #17056 [Verbose] > │         v0.[int v3] <- v5                                                    │
00:02:20 #17057 [Verbose] > │         let v6 : int32 = v3 + 1                                              │
00:02:20 #17058 [Verbose] > │         v1.l0 <- v6                                                          │
00:02:20 #17059 [Verbose] > │         ()                                                                   │
00:02:20 #17060 [Verbose] > │     let v7 : int32 = v0.Length                                               │
00:02:20 #17061 [Verbose] > │     let v8 : (float []) = Array.zeroCreate<float> (v7)                       │
00:02:20 #17062 [Verbose] > │     let v9 : Mut0 = {l0 = 0} : Mut0                                          │
00:02:20 #17063 [Verbose] > │     while method2(v7, v9) do                                                 │
00:02:20 #17064 [Verbose] > │         let v11 : int32 = v9.l0                                              │
00:02:20 #17065 [Verbose] > │         let v12 : float = v0.[int v11]                                       │
00:02:20 #17066 [Verbose] > │         let v13 : float = round v12                                          │
00:02:20 #17067 [Verbose] > │         let v14 : float =  -v13                                              │
00:02:20 #17068 [Verbose] > │         let v15 : bool = v13 >= v14                                          │
00:02:20 #17069 [Verbose] > │         let v16 : float =                                                    │
00:02:20 #17070 [Verbose] > │             if v15 then                                                      │
00:02:20 #17071 [Verbose] > │                 v13                                                          │
00:02:20 #17072 [Verbose] > │             else                                                             │
00:02:20 #17073 [Verbose] > │                 v14                                                          │
00:02:20 #17074 [Verbose] > │         let v17 : float = 0.0                                                │
00:02:20 #17075 [Verbose] > │         let v18 : (unit -> UH0) = closure0()                                 │
00:02:20 #17076 [Verbose] > │         let v19 : UH0 = UH0_0(v17, v18)                                      │
00:02:20 #17077 [Verbose] > │         let v20 : US0 = method3(v16, v19)                                    │
00:02:20 #17078 [Verbose] > │         let v23 : float =                                                    │
00:02:20 #17079 [Verbose] > │             match v20 with                                                   │
00:02:20 #17080 [Verbose] > │             | US0_0 -> (* None *)                                            │
00:02:20 #17081 [Verbose] > │                 0.0                                                          │
00:02:20 #17082 [Verbose] > │             | US0_1(v21) -> (* Some *)                                       │
00:02:20 #17083 [Verbose] > │                 v21                                                          │
00:02:20 #17084 [Verbose] > │         v8.[int v11] <- v23                                                  │
00:02:20 #17085 [Verbose] > │         let v24 : int32 = v11 + 1                                            │
00:02:20 #17086 [Verbose] > │         v9.l0 <- v24                                                         │
00:02:20 #17087 [Verbose] > │         ()                                                                   │
00:02:20 #17088 [Verbose] > │     let v25 : string = "velocity of bike (m/s)"                              │
00:02:20 #17089 [Verbose] > │     let v26 : (struct (string * (float []) * (float [])) []) = [|struct      │
00:02:20 #17090 [Verbose] > │ (v25, v0, v8)|]                                                              │
00:02:20 #17091 [Verbose] > │     let v27 : (struct (string * (float []) * (float [])) []) = method4(v26)  │
00:02:20 #17092 [Verbose] > │     let v28 : string = "bike velocity"                                       │
00:02:20 #17093 [Verbose] > │     let v29 : string = "time (s)"                                            │
00:02:20 #17094 [Verbose] > │     let v30 : string = ""                                                    │
00:02:20 #17095 [Verbose] > │     struct (v28, v29, v30, v27)                                              │
00:02:20 #17096 [Verbose] > │ method0()                                                                    │
00:02:20 #17097 [Verbose] > │                                                                              │
00:02:20 #17098 [Verbose] > │                                                                              │
00:02:20 #17099 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:20 #17100 [Verbose] >
00:02:20 #17101 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:20 #17102 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:20 #17103 [Verbose] > │ ## velocity_ftv                                                              │
00:02:20 #17104 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:20 #17105 [Verbose] >
00:02:20 #17106 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:20 #17107 [Verbose] > inl newton_second_tv m fs (t, v0) =
00:02:20 #17108 [Verbose] >     inl f_net = fs |> listm.map (fun f => f (t, v0)) |> listm'.sum
00:02:20 #17109 [Verbose] >     inl acc = f_net / m
00:02:20 #17110 [Verbose] >     1, acc
00:02:20 #17111 [Verbose] >
00:02:20 #17112 [Verbose] > inl update_tv dt m fs (t, v0) =
00:02:20 #17113 [Verbose] >     inl dtdt, dvdt = newton_second_tv m fs (t, v0)
00:02:20 #17114 [Verbose] >     t + dtdt * dt, v0 + dvdt * dt
00:02:20 #17115 [Verbose] >
00:02:20 #17116 [Verbose] > inl velocity_ftv dt m tv0 fs t =
00:02:20 #17117 [Verbose] >     stream.iterate (join update_tv dt m fs) tv0
00:02:20 #17118 [Verbose] >     |> stream.try_item (t / dt |> math.round |> abs)
00:02:20 #17119 [Verbose] >     |> optionm.map snd
00:02:20 #17120 [Verbose] >     |> optionm'.default_value 0
00:02:20 #17121 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-4919-1918-11ef68eb1bf8/main.spi
00:02:20 #17122 [Verbose] >
00:02:20 #17123 [Verbose] > ╭─[ 118.00ms - stdout ]────────────────────────────────────────────────────────╮
00:02:20 #17124 [Verbose] > │ ()                                                                           │
00:02:20 #17125 [Verbose] > │                                                                              │
00:02:20 #17126 [Verbose] > │                                                                              │
00:02:20 #17127 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:20 #17128 [Verbose] >
00:02:20 #17129 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:20 #17130 [Verbose] > // // test
00:02:20 #17131 [Verbose] >
00:02:20 #17132 [Verbose] > inl x = am'.init_series 0 100 0.1
00:02:20 #17133 [Verbose] > inl y =
00:02:20 #17134 [Verbose] >     x
00:02:20 #17135 [Verbose] >     |> am.map (
00:02:20 #17136 [Verbose] >         velocity_ftv 0.1 20 (dyn (0, 0)) [[ fun (t, _) => pedal_coast t; fun (_,
00:02:20 #17137 [Verbose] > v) => f_air 2 1.225 0.5 v ]]
00:02:20 #17138 [Verbose] >     )
00:02:20 #17139 [Verbose] > "pedaling and coasting with air", "time (s)", "", ;[[ "velocity of bike (m/s)",
00:02:20 #17140 [Verbose] > x, y ]]
00:02:20 #17141 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-4930-3095-3cf98ff620e7/main.spi
00:02:20 #17142 [Verbose] >
00:02:20 #17143 [Verbose] > ╭─[ 336.83ms - return value ]──────────────────────────────────────────────────╮
00:02:20 #17144 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480"                          │
00:02:20 #17145 [Verbose] > │ xmlns="http://www.w3.org/2000/svg">                                          │
00:02:20 #17146 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414"        │
00:02:20 #17147 [Verbose] > │ stroke="none"/>                                                              │
00:02:20 #17148 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle"                        │
00:02:20 #17149 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1"            │
00:02:20 #17150 [Verbose] > │ fill="#FFFFFF">                                                              │
00:02:20 #17151 [Verbose] > │ pedaling and coasting with air                                               │
00:02:20 #17152 [Verbose] > │ </text>                                                                      │
00:02:20 #17153 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="59" y1="424" x2="59" │
00:02:20 #17154 [Verbose] > │ y2="75"/>                                                                    │
00:02:20 #17155 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:02:20 #17156 [Verbose] > │ y2="75"/>                                                                    │
00:02:20 #17157 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="79" y1="424" x2="79" │
00:02:20 #17158 [Verbose] > │ y2="75"/>                                                                    │
00:02:20 #17159 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="89" y1="424" x2="89" │
00:02:20 #17160 [Verbose] > │ y2="75"/>                                                                    │
00:02:20 #17161 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x...                     │
00:02:20 #17162 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:20 #17163 [Verbose] >
00:02:20 #17164 [Verbose] > ╭─[ 341.81ms - stdout ]────────────────────────────────────────────────────────╮
00:02:20 #17165 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │
00:02:20 #17166 [Verbose] > │ and UH0 =                                                                    │
00:02:20 #17167 [Verbose] > │     | UH0_0 of float * float * (unit -> UH0)                                 │
00:02:20 #17168 [Verbose] > │     | UH0_1                                                                  │
00:02:20 #17169 [Verbose] > │ and [<Struct>] US0 =                                                         │
00:02:20 #17170 [Verbose] > │     | US0_0                                                                  │
00:02:20 #17171 [Verbose] > │     | US0_1 of f1_0 : float * f1_1 : float                                   │
00:02:20 #17172 [Verbose] > │ and [<Struct>] US1 =                                                         │
00:02:20 #17173 [Verbose] > │     | US1_0                                                                  │
00:02:20 #17174 [Verbose] > │     | US1_1 of f1_0 : float                                                  │
00:02:20 #17175 [Verbose] > │ let rec method1 (v0 : Mut0) : bool =                                         │
00:02:20 #17176 [Verbose] > │     let v1 : int32 = v0.l0                                                   │
00:02:20 #17177 [Verbose] > │     let v2 : bool = v1 < 1001                                                │
00:02:20 #17178 [Verbose] > │     v2                                                                       │
00:02:20 #17179 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool =                                 │
00:02:20 #17180 [Verbose] > │     let v2 : int32 = v1.l0                                                   │
00:02:20 #17181 [Verbose] > │     let v3 : bool = v2 < v0                                                  │
00:02:20 #17182 [Verbose] > │     v3                                                                       │
00:02:20 #17183 [Verbose] > │ and closure0 () struct (v0 : float, v1 : float) : struct (float * float) =   │
00:02:20 #17184 [Verbose] > │     let v2 : float =  -v1                                                    │
00:02:20 #17185 [Verbose] > │     let v3 : bool = v1 >= v2                                                 │
00:02:20 #17186 [Verbose] > │     let v4 : float =                                                         │
00:02:20 #17187 [Verbose] > │         if v3 then                                                           │
00:02:20 #17188 [Verbose] > │             v1                                                               │
00:02:20 #17189 [Verbose] > │         else                                                                 │
00:02:20 #17190 [Verbose] > │             v2                                                               │
00:02:20 #17191 [Verbose] > │     let v5 : float = -1.225 * v4                                             │
00:02:20 #17192 [Verbose] > │     let v6 : float = v5 * v1                                                 │
00:02:20 #17193 [Verbose] > │     let v7 : float = v6 / 2.0                                                │
00:02:20 #17194 [Verbose] > │     let v8 : float = v0 / 20.0                                               │
00:02:20 #17195 [Verbose] > │     let v9 : int32 = int32 v8                                                │
00:02:20 #17196 [Verbose] > │     let v10 : float = float v9                                               │
00:02:20 #17197 [Verbose] > │     let v11 : float = v10 * 20.0                                             │
00:02:20 #17198 [Verbose] > │     let v12 : float = v0 - v11                                               │
00:02:20 #17199 [Verbose] > │     let v13 : bool = v12 > 0.0                                               │
00:02:20 #17200 [Verbose] > │     let v15 : bool =                                                         │
00:02:20 #17201 [Verbose] > │         if v13 then                                                          │
00:02:20 #17202 [Verbose] > │             let v14 : bool = v12 < 10.0                                      │
00:02:20 #17203 [Verbose] > │             v14                                                              │
00:02:20 #17204 [Verbose] > │         else                                                                 │
00:02:20 #17205 [Verbose] > │             false                                                            │
00:02:20 #17206 [Verbose] > │     let v16 : float =                                                        │
00:02:20 #17207 [Verbose] > │         if v15 then                                                          │
00:02:20 #17208 [Verbose] > │             10.0                                                             │
00:02:20 #17209 [Verbose] > │         else                                                                 │
00:02:20 #17210 [Verbose] > │             0.0                                                              │
00:02:20 #17211 [Verbose] > │     let v17 : float = v16 + v7                                               │
00:02:20 #17212 [Verbose] > │     let v18 : float = v17 / 20.0                                             │
00:02:20 #17213 [Verbose] > │     let v19 : float = v0 + 0.1                                               │
00:02:20 #17214 [Verbose] > │     let v20 : float = v18 * 0.1                                              │
00:02:20 #17215 [Verbose] > │     let v21 : float = v1 + v20                                               │
00:02:20 #17216 [Verbose] > │     struct (v19, v21)                                                        │
00:02:20 #17217 [Verbose] > │ and method3 () : (struct (float * float) -> struct (float * float)) =        │
00:02:20 #17218 [Verbose] > │     closure0()                                                               │
00:02:20 #17219 [Verbose] > │ and closure1 (v0 : (struct (float * float) -> struct (float * float)), v1 :  │
00:02:20 #17220 [Verbose] > │ float, v2 : float, v3 : float, v4 : float) () : UH0 =                        │
00:02:20 #17221 [Verbose] > │     let struct (v5 : float, v6 : float) = v0 struct (v3, v4)                 │
00:02:20 #17222 [Verbose] > │     let v7 : (unit -> UH0) = closure1(v0, v1, v2, v5, v6)                    │
00:02:20 #17223 [Verbose] > │     UH0_0(v3, v4, v7)                                                        │
00:02:20 #17224 [Verbose] > │ and method4 (v0 : float, v1 : UH0) : US0 =                                   │
00:02:20 #17225 [Verbose] > │     match v1 with                                                            │
00:02:20 #17226 [Verbose] > │     | UH0_0(v2, v3, v4) -> (* StreamCons *)                                  │
00:02:20 #17227 [Verbose] > │         let v5 : bool = v0 <= 0.0                                            │
00:02:20 #17228 [Verbose] > │         if v5 then                                                           │
00:02:20 #17229 [Verbose] > │             US0_1(v2, v3)                                                    │
00:02:20 #17230 [Verbose] > │         else                                                                 │
00:02:20 #17231 [Verbose] > │             let v7 : float = v0 - 1.0                                        │
00:02:20 #17232 [Verbose] > │             let v8 : UH0 = v4 ()                                             │
00:02:20 #17233 [Verbose] > │             method4(v7, v8)                                                  │
00:02:20 #17234 [Verbose] > │     | UH0_1 -> (* StreamNil *)                                               │
00:02:20 #17235 [Verbose] > │         US0_0                                                                │
00:02:20 #17236 [Verbose] > │ and method5 (v0 : (struct (string * (float []) * (float [])) [])) : (struct  │
00:02:20 #17237 [Verbose] > │ (string * (float []) * (float [])) []) =                                     │
00:02:20 #17238 [Verbose] > │     v0                                                                       │
00:02:20 #17239 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:02:20 #17240 [Verbose] > │ []) * (float [])) [])) =                                                     │
00:02:20 #17241 [Verbose] > │     let v0 : (float []) = Array.zeroCreate<float> (1001)                     │
00:02:20 #17242 [Verbose] > │     let v1 : Mut0 = {l0 = 0} : Mut0                                          │
00:02:20 #17243 [Verbose] > │     while method1(v1) do                                                     │
00:02:20 #17244 [Verbose] > │         let v3 : int32 = v1.l0                                               │
00:02:20 #17245 [Verbose] > │         let v4 : float = float v3                                            │
00:02:20 #17246 [Verbose] > │         let v5 : float = 0.1 * v4                                            │
00:02:20 #17247 [Verbose] > │         v0.[int v3] <- v5                                                    │
00:02:20 #17248 [Verbose] > │         let v6 : int32 = v3 + 1                                              │
00:02:20 #17249 [Verbose] > │         v1.l0 <- v6                                                          │
00:02:20 #17250 [Verbose] > │         ()                                                                   │
00:02:20 #17251 [Verbose] > │     let v7 : float = 0.0                                                     │
00:02:20 #17252 [Verbose] > │     let v8 : float = 0.0                                                     │
00:02:20 #17253 [Verbose] > │     let v9 : int32 = v0.Length                                               │
00:02:20 #17254 [Verbose] > │     let v10 : (float []) = Array.zeroCreate<float> (v9)                      │
00:02:20 #17255 [Verbose] > │     let v11 : Mut0 = {l0 = 0} : Mut0                                         │
00:02:20 #17256 [Verbose] > │     while method2(v9, v11) do                                                │
00:02:20 #17257 [Verbose] > │         let v13 : int32 = v11.l0                                             │
00:02:20 #17258 [Verbose] > │         let v14 : float = v0.[int v13]                                       │
00:02:20 #17259 [Verbose] > │         let v15 : (struct (float * float) -> struct (float * float)) =       │
00:02:20 #17260 [Verbose] > │ method3()                                                                    │
00:02:20 #17261 [Verbose] > │         let struct (v16 : float, v17 : float) = v15 struct (v7, v8)          │
00:02:20 #17262 [Verbose] > │         let v18 : float = v14 / 0.1                                          │
00:02:20 #17263 [Verbose] > │         let v19 : float = round v18                                          │
00:02:20 #17264 [Verbose] > │         let v20 : float =  -v19                                              │
00:02:20 #17265 [Verbose] > │         let v21 : bool = v19 >= v20                                          │
00:02:20 #17266 [Verbose] > │         let v22 : float =                                                    │
00:02:20 #17267 [Verbose] > │             if v21 then                                                      │
00:02:20 #17268 [Verbose] > │                 v19                                                          │
00:02:20 #17269 [Verbose] > │             else                                                             │
00:02:20 #17270 [Verbose] > │                 v20                                                          │
00:02:20 #17271 [Verbose] > │         let v23 : (unit -> UH0) = closure1(v15, v7, v8, v16, v17)            │
00:02:20 #17272 [Verbose] > │         let v24 : UH0 = UH0_0(v7, v8, v23)                                   │
00:02:20 #17273 [Verbose] > │         let v25 : US0 = method4(v22, v24)                                    │
00:02:20 #17274 [Verbose] > │         let v31 : US1 =                                                      │
00:02:20 #17275 [Verbose] > │             match v25 with                                                   │
00:02:20 #17276 [Verbose] > │             | US0_0 -> (* None *)                                            │
00:02:20 #17277 [Verbose] > │                 US1_0                                                        │
00:02:20 #17278 [Verbose] > │             | US0_1(v26, v27) -> (* Some *)                                  │
00:02:20 #17279 [Verbose] > │                 US1_1(v27)                                                   │
00:02:20 #17280 [Verbose] > │         let v34 : float =                                                    │
00:02:20 #17281 [Verbose] > │             match v31 with                                                   │
00:02:20 #17282 [Verbose] > │             | US1_0 -> (* None *)                                            │
00:02:20 #17283 [Verbose] > │                 0.0                                                          │
00:02:20 #17284 [Verbose] > │             | US1_1(v32) -> (* Some *)                                       │
00:02:20 #17285 [Verbose] > │                 v32                                                          │
00:02:20 #17286 [Verbose] > │         v10.[int v13] <- v34                                                 │
00:02:20 #17287 [Verbose] > │         let v35 : int32 = v13 + 1                                            │
00:02:20 #17288 [Verbose] > │         v11.l0 <- v35                                                        │
00:02:20 #17289 [Verbose] > │         ()                                                                   │
00:02:20 #17290 [Verbose] > │     let v36 : string = "velocity of bike (m/s)"                              │
00:02:20 #17291 [Verbose] > │     let v37 : (struct (string * (float []) * (float [])) []) = [|struct      │
00:02:20 #17292 [Verbose] > │ (v36, v0, v10)|]                                                             │
00:02:20 #17293 [Verbose] > │     let v38 : (struct (string * (float []) * (float [])) []) = method5(v37)  │
00:02:20 #17294 [Verbose] > │     let v39 : string = "pedaling and coasting with air"                      │
00:02:20 #17295 [Verbose] > │     let v40 : string = "time (s)"                                            │
00:02:20 #17296 [Verbose] > │     let v41 : string = ""                                                    │
00:02:20 #17297 [Verbose] > │     struct (v39, v40, v41, v38)                                              │
00:02:20 #17298 [Verbose] > │ method0()                                                                    │
00:02:20 #17299 [Verbose] > │                                                                              │
00:02:20 #17300 [Verbose] > │                                                                              │
00:02:20 #17301 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:20 #17302 [Verbose] >
00:02:20 #17303 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:20 #17304 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:20 #17305 [Verbose] > │ ## velocity_ftxv                                                             │
00:02:20 #17306 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:20 #17307 [Verbose] >
00:02:20 #17308 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:20 #17309 [Verbose] > nominal state_1d = time * position * velocity
00:02:20 #17310 [Verbose] > nominal rrr = f64 * f64 * f64
00:02:20 #17311 [Verbose] >
00:02:20 #17312 [Verbose] > inl newton_second_1d m fs (state_1d (t, x0, v0)) =
00:02:20 #17313 [Verbose] >     inl f_net = fs |> listm.map (fun f => f (state_1d (t, x0, v0))) |>
00:02:20 #17314 [Verbose] > listm'.sum
00:02:20 #17315 [Verbose] >     inl acc = f_net / m
00:02:20 #17316 [Verbose] >     rrr (1f64, v0, acc)
00:02:20 #17317 [Verbose] >
00:02:20 #17318 [Verbose] > inl euler_1d dt deriv (state_1d (t0, x0, v0) as t) =
00:02:20 #17319 [Verbose] >     inl (rrr (_, _, dvdt)) = deriv t
00:02:20 #17320 [Verbose] >     inl t1 = t0 + dt
00:02:20 #17321 [Verbose] >     inl x1 = x0 + v0 * dt
00:02:20 #17322 [Verbose] >     inl v1 = v0 + dvdt * dt
00:02:20 #17323 [Verbose] >     state_1d (t1, x1, v1)
00:02:20 #17324 [Verbose] >
00:02:20 #17325 [Verbose] > inl update_txv dt m fs =
00:02:20 #17326 [Verbose] >     newton_second_1d m fs |> euler_1d dt
00:02:20 #17327 [Verbose] >
00:02:20 #17328 [Verbose] > inl states_txv dt m txv0 fs =
00:02:20 #17329 [Verbose] >     seq.iterate_ (update_txv dt m fs) txv0
00:02:20 #17330 [Verbose] >
00:02:20 #17331 [Verbose] > inl velocity_1d sts t =
00:02:20 #17332 [Verbose] >     inl (state_1d (t0, _, _)) = sts 0
00:02:20 #17333 [Verbose] >     inl (state_1d (t1, _, _)) = sts 1
00:02:20 #17334 [Verbose] >     inl dt = t1 - t0
00:02:20 #17335 [Verbose] >     inl num_steps = t / dt |> math.round |> abs
00:02:20 #17336 [Verbose] >     inl (state_1d (_, _, v0)) = sts num_steps
00:02:20 #17337 [Verbose] >     v0
00:02:20 #17338 [Verbose] >
00:02:20 #17339 [Verbose] > inl velocity_ftxv dt m txv0 fs =
00:02:20 #17340 [Verbose] >     states_txv dt m txv0 fs |> velocity_1d
00:02:20 #17341 [Verbose] >
00:02:20 #17342 [Verbose] > inl position_1d sts t =
00:02:20 #17343 [Verbose] >     inl (state_1d (t0, _, _)) = sts 0
00:02:20 #17344 [Verbose] >     inl (state_1d (t1, _, _)) = sts 1
00:02:20 #17345 [Verbose] >     inl dt = t1 - t0
00:02:20 #17346 [Verbose] >     inl num_steps = t / dt |> math.round |> abs
00:02:20 #17347 [Verbose] >     inl (state_1d (_, x0, _)) = sts num_steps
00:02:20 #17348 [Verbose] >     x0
00:02:20 #17349 [Verbose] >
00:02:20 #17350 [Verbose] > inl position_ftxv dt m txv0 fs =
00:02:20 #17351 [Verbose] >     states_txv dt m txv0 fs |> position_1d
00:02:20 #17352 [Verbose] >
00:02:20 #17353 [Verbose] > inl spring_force k (state_1d (_, x0, _)) =
00:02:20 #17354 [Verbose] >     -k * x0
00:02:20 #17355 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-4966-6640-61029ca7122e/main.spi
00:02:20 #17356 [Verbose] >
00:02:20 #17357 [Verbose] > ╭─[ 119.63ms - stdout ]────────────────────────────────────────────────────────╮
00:02:20 #17358 [Verbose] > │ ()                                                                           │
00:02:20 #17359 [Verbose] > │                                                                              │
00:02:20 #17360 [Verbose] > │                                                                              │
00:02:20 #17361 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:20 #17362 [Verbose] >
00:02:20 #17363 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:20 #17364 [Verbose] > // // test
00:02:20 #17365 [Verbose] >
00:02:20 #17366 [Verbose] > inl damped_ho_forces () =
00:02:20 #17367 [Verbose] >     [[
00:02:20 #17368 [Verbose] >         spring_force 0.8
00:02:20 #17369 [Verbose] >         fun (state_1d (_, _, v0)) => f_air 2 1.225 (pi * math.square 0.02) v0
00:02:20 #17370 [Verbose] >         fun _ => -0.0027 * 9.80665
00:02:20 #17371 [Verbose] >     ]]
00:02:20 #17372 [Verbose] >
00:02:20 #17373 [Verbose] > inl damped_ho_states () =
00:02:20 #17374 [Verbose] >     states_txv 0.001 0.0027 (state_1d (0, 0.1, 0)) (damped_ho_forces ())
00:02:20 #17375 [Verbose] >
00:02:20 #17376 [Verbose] > inl pingpong_position t =
00:02:20 #17377 [Verbose] >     position_ftxv 0.001 0.0027 (state_1d (0, 0.1, 0)) (damped_ho_forces ()) t
00:02:20 #17378 [Verbose] >
00:02:20 #17379 [Verbose] > inl x : a _ f64 = am'.init_series 0 3 0.01
00:02:20 #17380 [Verbose] > inl y = x |> am.map pingpong_position
00:02:20 #17381 [Verbose] > "ping pong ball on a slinky", "time (s)", "", ;[[ "position (m)", x, y ]]
00:02:20 #17382 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-4978-7815-7e2d4c77e212/main.spi
00:02:20 #17383 [Verbose] >
00:02:20 #17384 [Verbose] > ╭─[ 191.55ms - return value ]──────────────────────────────────────────────────╮
00:02:20 #17385 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480"                          │
00:02:20 #17386 [Verbose] > │ xmlns="http://www.w3.org/2000/svg">                                          │
00:02:20 #17387 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414"        │
00:02:20 #17388 [Verbose] > │ stroke="none"/>                                                              │
00:02:20 #17389 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle"                        │
00:02:20 #17390 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1"            │
00:02:20 #17391 [Verbose] > │ fill="#FFFFFF">                                                              │
00:02:20 #17392 [Verbose] > │ ping pong ball on a slinky                                                   │
00:02:20 #17393 [Verbose] > │ </text>                                                                      │
00:02:20 #17394 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="61" y1="424" x2="61" │
00:02:20 #17395 [Verbose] > │ y2="75"/>                                                                    │
00:02:20 #17396 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:02:20 #17397 [Verbose] > │ y2="75"/>                                                                    │
00:02:20 #17398 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="78" y1="424" x2="78" │
00:02:20 #17399 [Verbose] > │ y2="75"/>                                                                    │
00:02:20 #17400 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="86" y1="424" x2="86" │
00:02:20 #17401 [Verbose] > │ y2="75"/>                                                                    │
00:02:20 #17402 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="9...                 │
00:02:20 #17403 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:20 #17404 [Verbose] >
00:02:20 #17405 [Verbose] > ╭─[ 195.47ms - stdout ]────────────────────────────────────────────────────────╮
00:02:20 #17406 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │
00:02:20 #17407 [Verbose] > │ let rec method1 (v0 : Mut0) : bool =                                         │
00:02:20 #17408 [Verbose] > │     let v1 : int32 = v0.l0                                                   │
00:02:20 #17409 [Verbose] > │     let v2 : bool = v1 < 301                                                 │
00:02:20 #17410 [Verbose] > │     v2                                                                       │
00:02:20 #17411 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool =                                 │
00:02:20 #17412 [Verbose] > │     let v2 : int32 = v1.l0                                                   │
00:02:20 #17413 [Verbose] > │     let v3 : bool = v2 < v0                                                  │
00:02:20 #17414 [Verbose] > │     v3                                                                       │
00:02:20 #17415 [Verbose] > │ and method3 (v0 : float, v1 : float, v2 : float, v3 : float) : struct (float │
00:02:20 #17416 [Verbose] > │ * float * float) =                                                           │
00:02:20 #17417 [Verbose] > │     let v4 : bool = v3 <= 0.0                                                │
00:02:20 #17418 [Verbose] > │     if v4 then                                                               │
00:02:20 #17419 [Verbose] > │         struct (v0, v1, v2)                                                  │
00:02:20 #17420 [Verbose] > │     else                                                                     │
00:02:20 #17421 [Verbose] > │         let v5 : float =  -v2                                                │
00:02:20 #17422 [Verbose] > │         let v6 : bool = v2 >= v5                                             │
00:02:20 #17423 [Verbose] > │         let v7 : float =                                                     │
00:02:20 #17424 [Verbose] > │             if v6 then                                                       │
00:02:20 #17425 [Verbose] > │                 v2                                                           │
00:02:20 #17426 [Verbose] > │             else                                                             │
00:02:20 #17427 [Verbose] > │                 v5                                                           │
00:02:20 #17428 [Verbose] > │         let v8 : float = -0.0030787608005179976 * v7                         │
00:02:20 #17429 [Verbose] > │         let v9 : float = v8 * v2                                             │
00:02:20 #17430 [Verbose] > │         let v10 : float = v9 / 2.0                                           │
00:02:20 #17431 [Verbose] > │         let v11 : float = -0.8 * v1                                          │
00:02:20 #17432 [Verbose] > │         let v12 : float = v11 + v10                                          │
00:02:20 #17433 [Verbose] > │         let v13 : float = v12 + -0.026477955                                 │
00:02:20 #17434 [Verbose] > │         let v14 : float = v13 / 0.0027                                       │
00:02:20 #17435 [Verbose] > │         let v15 : float = v0 + 0.001                                         │
00:02:20 #17436 [Verbose] > │         let v16 : float = v2 * 0.001                                         │
00:02:20 #17437 [Verbose] > │         let v17 : float = v1 + v16                                           │
00:02:20 #17438 [Verbose] > │         let v18 : float = v14 * 0.001                                        │
00:02:20 #17439 [Verbose] > │         let v19 : float = v2 + v18                                           │
00:02:20 #17440 [Verbose] > │         let v20 : float = v3 - 1.0                                           │
00:02:20 #17441 [Verbose] > │         method3(v15, v17, v19, v20)                                          │
00:02:20 #17442 [Verbose] > │ and method4 (v0 : (struct (string * (float []) * (float [])) [])) : (struct  │
00:02:20 #17443 [Verbose] > │ (string * (float []) * (float [])) []) =                                     │
00:02:20 #17444 [Verbose] > │     v0                                                                       │
00:02:20 #17445 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:02:20 #17446 [Verbose] > │ []) * (float [])) [])) =                                                     │
00:02:20 #17447 [Verbose] > │     let v0 : (float []) = Array.zeroCreate<float> (301)                      │
00:02:20 #17448 [Verbose] > │     let v1 : Mut0 = {l0 = 0} : Mut0                                          │
00:02:20 #17449 [Verbose] > │     while method1(v1) do                                                     │
00:02:20 #17450 [Verbose] > │         let v3 : int32 = v1.l0                                               │
00:02:20 #17451 [Verbose] > │         let v4 : float = float v3                                            │
00:02:20 #17452 [Verbose] > │         let v5 : float = 0.01 * v4                                           │
00:02:20 #17453 [Verbose] > │         v0.[int v3] <- v5                                                    │
00:02:20 #17454 [Verbose] > │         let v6 : int32 = v3 + 1                                              │
00:02:20 #17455 [Verbose] > │         v1.l0 <- v6                                                          │
00:02:20 #17456 [Verbose] > │         ()                                                                   │
00:02:20 #17457 [Verbose] > │     let v7 : int32 = v0.Length                                               │
00:02:20 #17458 [Verbose] > │     let v8 : (float []) = Array.zeroCreate<float> (v7)                       │
00:02:20 #17459 [Verbose] > │     let v9 : Mut0 = {l0 = 0} : Mut0                                          │
00:02:20 #17460 [Verbose] > │     while method2(v7, v9) do                                                 │
00:02:20 #17461 [Verbose] > │         let v11 : int32 = v9.l0                                              │
00:02:20 #17462 [Verbose] > │         let v12 : float = v0.[int v11]                                       │
00:02:20 #17463 [Verbose] > │         let v13 : float = 0.0                                                │
00:02:20 #17464 [Verbose] > │         let v14 : float = 0.1                                                │
00:02:20 #17465 [Verbose] > │         let v15 : float = 0.0                                                │
00:02:20 #17466 [Verbose] > │         let v16 : float = 0.0                                                │
00:02:20 #17467 [Verbose] > │         let struct (v17 : float, v18 : float, v19 : float) = method3(v13,    │
00:02:20 #17468 [Verbose] > │ v14, v15, v16)                                                               │
00:02:20 #17469 [Verbose] > │         let v20 : float = 0.0                                                │
00:02:20 #17470 [Verbose] > │         let v21 : float = 0.1                                                │
00:02:20 #17471 [Verbose] > │         let v22 : float = 0.0                                                │
00:02:20 #17472 [Verbose] > │         let v23 : float = 1.0                                                │
00:02:20 #17473 [Verbose] > │         let struct (v24 : float, v25 : float, v26 : float) = method3(v20,    │
00:02:20 #17474 [Verbose] > │ v21, v22, v23)                                                               │
00:02:20 #17475 [Verbose] > │         let v27 : float = v24 - v17                                          │
00:02:20 #17476 [Verbose] > │         let v28 : float = v12 / v27                                          │
00:02:20 #17477 [Verbose] > │         let v29 : float = round v28                                          │
00:02:20 #17478 [Verbose] > │         let v30 : float =  -v29                                              │
00:02:20 #17479 [Verbose] > │         let v31 : bool = v29 >= v30                                          │
00:02:20 #17480 [Verbose] > │         let v32 : float =                                                    │
00:02:20 #17481 [Verbose] > │             if v31 then                                                      │
00:02:20 #17482 [Verbose] > │                 v29                                                          │
00:02:20 #17483 [Verbose] > │             else                                                             │
00:02:20 #17484 [Verbose] > │                 v30                                                          │
00:02:20 #17485 [Verbose] > │         let v33 : float = 0.0                                                │
00:02:20 #17486 [Verbose] > │         let v34 : float = 0.1                                                │
00:02:20 #17487 [Verbose] > │         let v35 : float = 0.0                                                │
00:02:20 #17488 [Verbose] > │         let struct (v36 : float, v37 : float, v38 : float) = method3(v33,    │
00:02:20 #17489 [Verbose] > │ v34, v35, v32)                                                               │
00:02:20 #17490 [Verbose] > │         v8.[int v11] <- v37                                                  │
00:02:20 #17491 [Verbose] > │         let v39 : int32 = v11 + 1                                            │
00:02:20 #17492 [Verbose] > │         v9.l0 <- v39                                                         │
00:02:20 #17493 [Verbose] > │         ()                                                                   │
00:02:20 #17494 [Verbose] > │     let v40 : string = "position (m)"                                        │
00:02:20 #17495 [Verbose] > │     let v41 : (struct (string * (float []) * (float [])) []) = [|struct      │
00:02:20 #17496 [Verbose] > │ (v40, v0, v8)|]                                                              │
00:02:20 #17497 [Verbose] > │     let v42 : (struct (string * (float []) * (float [])) []) = method4(v41)  │
00:02:20 #17498 [Verbose] > │     let v43 : string = "ping pong ball on a slinky"                          │
00:02:20 #17499 [Verbose] > │     let v44 : string = "time (s)"                                            │
00:02:20 #17500 [Verbose] > │     let v45 : string = ""                                                    │
00:02:20 #17501 [Verbose] > │     struct (v43, v44, v45, v42)                                              │
00:02:20 #17502 [Verbose] > │ method0()                                                                    │
00:02:20 #17503 [Verbose] > │                                                                              │
00:02:20 #17504 [Verbose] > │                                                                              │
00:02:20 #17505 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:20 #17506 [Verbose] >
00:02:20 #17507 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:20 #17508 [Verbose] > // // test
00:02:20 #17509 [Verbose] >
00:02:20 #17510 [Verbose] > inl pingpong_velocity t =
00:02:20 #17511 [Verbose] >     velocity_ftxv 0.001 0.0027 (state_1d (0, 0.1, 0)) (damped_ho_forces ()) t
00:02:20 #17512 [Verbose] >
00:02:20 #17513 [Verbose] > inl x = am'.init_series 0 3 0.01
00:02:20 #17514 [Verbose] > inl y = x |> am.map pingpong_velocity
00:02:20 #17515 [Verbose] > "ping pong ball on a slinky", "time (s)", "", ;[[ "velocity (m/s)", x, y ]]
00:02:20 #17516 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-4998-9840-92c8434c5c47/main.spi
00:02:21 #17517 [Verbose] >
00:02:21 #17518 [Verbose] > ╭─[ 189.05ms - return value ]──────────────────────────────────────────────────╮
00:02:21 #17519 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480"                          │
00:02:21 #17520 [Verbose] > │ xmlns="http://www.w3.org/2000/svg">                                          │
00:02:21 #17521 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414"        │
00:02:21 #17522 [Verbose] > │ stroke="none"/>                                                              │
00:02:21 #17523 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle"                        │
00:02:21 #17524 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1"            │
00:02:21 #17525 [Verbose] > │ fill="#FFFFFF">                                                              │
00:02:21 #17526 [Verbose] > │ ping pong ball on a slinky                                                   │
00:02:21 #17527 [Verbose] > │ </text>                                                                      │
00:02:21 #17528 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="61" y1="424" x2="61" │
00:02:21 #17529 [Verbose] > │ y2="75"/>                                                                    │
00:02:21 #17530 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:02:21 #17531 [Verbose] > │ y2="75"/>                                                                    │
00:02:21 #17532 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="78" y1="424" x2="78" │
00:02:21 #17533 [Verbose] > │ y2="75"/>                                                                    │
00:02:21 #17534 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="86" y1="424" x2="86" │
00:02:21 #17535 [Verbose] > │ y2="75"/>                                                                    │
00:02:21 #17536 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="9...                 │
00:02:21 #17537 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:21 #17538 [Verbose] >
00:02:21 #17539 [Verbose] > ╭─[ 193.03ms - stdout ]────────────────────────────────────────────────────────╮
00:02:21 #17540 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │
00:02:21 #17541 [Verbose] > │ let rec method1 (v0 : Mut0) : bool =                                         │
00:02:21 #17542 [Verbose] > │     let v1 : int32 = v0.l0                                                   │
00:02:21 #17543 [Verbose] > │     let v2 : bool = v1 < 301                                                 │
00:02:21 #17544 [Verbose] > │     v2                                                                       │
00:02:21 #17545 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool =                                 │
00:02:21 #17546 [Verbose] > │     let v2 : int32 = v1.l0                                                   │
00:02:21 #17547 [Verbose] > │     let v3 : bool = v2 < v0                                                  │
00:02:21 #17548 [Verbose] > │     v3                                                                       │
00:02:21 #17549 [Verbose] > │ and method3 (v0 : float, v1 : float, v2 : float, v3 : float) : struct (float │
00:02:21 #17550 [Verbose] > │ * float * float) =                                                           │
00:02:21 #17551 [Verbose] > │     let v4 : bool = v3 <= 0.0                                                │
00:02:21 #17552 [Verbose] > │     if v4 then                                                               │
00:02:21 #17553 [Verbose] > │         struct (v0, v1, v2)                                                  │
00:02:21 #17554 [Verbose] > │     else                                                                     │
00:02:21 #17555 [Verbose] > │         let v5 : float =  -v2                                                │
00:02:21 #17556 [Verbose] > │         let v6 : bool = v2 >= v5                                             │
00:02:21 #17557 [Verbose] > │         let v7 : float =                                                     │
00:02:21 #17558 [Verbose] > │             if v6 then                                                       │
00:02:21 #17559 [Verbose] > │                 v2                                                           │
00:02:21 #17560 [Verbose] > │             else                                                             │
00:02:21 #17561 [Verbose] > │                 v5                                                           │
00:02:21 #17562 [Verbose] > │         let v8 : float = -0.0030787608005179976 * v7                         │
00:02:21 #17563 [Verbose] > │         let v9 : float = v8 * v2                                             │
00:02:21 #17564 [Verbose] > │         let v10 : float = v9 / 2.0                                           │
00:02:21 #17565 [Verbose] > │         let v11 : float = -0.8 * v1                                          │
00:02:21 #17566 [Verbose] > │         let v12 : float = v11 + v10                                          │
00:02:21 #17567 [Verbose] > │         let v13 : float = v12 + -0.026477955                                 │
00:02:21 #17568 [Verbose] > │         let v14 : float = v13 / 0.0027                                       │
00:02:21 #17569 [Verbose] > │         let v15 : float = v0 + 0.001                                         │
00:02:21 #17570 [Verbose] > │         let v16 : float = v2 * 0.001                                         │
00:02:21 #17571 [Verbose] > │         let v17 : float = v1 + v16                                           │
00:02:21 #17572 [Verbose] > │         let v18 : float = v14 * 0.001                                        │
00:02:21 #17573 [Verbose] > │         let v19 : float = v2 + v18                                           │
00:02:21 #17574 [Verbose] > │         let v20 : float = v3 - 1.0                                           │
00:02:21 #17575 [Verbose] > │         method3(v15, v17, v19, v20)                                          │
00:02:21 #17576 [Verbose] > │ and method4 (v0 : (struct (string * (float []) * (float [])) [])) : (struct  │
00:02:21 #17577 [Verbose] > │ (string * (float []) * (float [])) []) =                                     │
00:02:21 #17578 [Verbose] > │     v0                                                                       │
00:02:21 #17579 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:02:21 #17580 [Verbose] > │ []) * (float [])) [])) =                                                     │
00:02:21 #17581 [Verbose] > │     let v0 : (float []) = Array.zeroCreate<float> (301)                      │
00:02:21 #17582 [Verbose] > │     let v1 : Mut0 = {l0 = 0} : Mut0                                          │
00:02:21 #17583 [Verbose] > │     while method1(v1) do                                                     │
00:02:21 #17584 [Verbose] > │         let v3 : int32 = v1.l0                                               │
00:02:21 #17585 [Verbose] > │         let v4 : float = float v3                                            │
00:02:21 #17586 [Verbose] > │         let v5 : float = 0.01 * v4                                           │
00:02:21 #17587 [Verbose] > │         v0.[int v3] <- v5                                                    │
00:02:21 #17588 [Verbose] > │         let v6 : int32 = v3 + 1                                              │
00:02:21 #17589 [Verbose] > │         v1.l0 <- v6                                                          │
00:02:21 #17590 [Verbose] > │         ()                                                                   │
00:02:21 #17591 [Verbose] > │     let v7 : int32 = v0.Length                                               │
00:02:21 #17592 [Verbose] > │     let v8 : (float []) = Array.zeroCreate<float> (v7)                       │
00:02:21 #17593 [Verbose] > │     let v9 : Mut0 = {l0 = 0} : Mut0                                          │
00:02:21 #17594 [Verbose] > │     while method2(v7, v9) do                                                 │
00:02:21 #17595 [Verbose] > │         let v11 : int32 = v9.l0                                              │
00:02:21 #17596 [Verbose] > │         let v12 : float = v0.[int v11]                                       │
00:02:21 #17597 [Verbose] > │         let v13 : float = 0.0                                                │
00:02:21 #17598 [Verbose] > │         let v14 : float = 0.1                                                │
00:02:21 #17599 [Verbose] > │         let v15 : float = 0.0                                                │
00:02:21 #17600 [Verbose] > │         let v16 : float = 0.0                                                │
00:02:21 #17601 [Verbose] > │         let struct (v17 : float, v18 : float, v19 : float) = method3(v13,    │
00:02:21 #17602 [Verbose] > │ v14, v15, v16)                                                               │
00:02:21 #17603 [Verbose] > │         let v20 : float = 0.0                                                │
00:02:21 #17604 [Verbose] > │         let v21 : float = 0.1                                                │
00:02:21 #17605 [Verbose] > │         let v22 : float = 0.0                                                │
00:02:21 #17606 [Verbose] > │         let v23 : float = 1.0                                                │
00:02:21 #17607 [Verbose] > │         let struct (v24 : float, v25 : float, v26 : float) = method3(v20,    │
00:02:21 #17608 [Verbose] > │ v21, v22, v23)                                                               │
00:02:21 #17609 [Verbose] > │         let v27 : float = v24 - v17                                          │
00:02:21 #17610 [Verbose] > │         let v28 : float = v12 / v27                                          │
00:02:21 #17611 [Verbose] > │         let v29 : float = round v28                                          │
00:02:21 #17612 [Verbose] > │         let v30 : float =  -v29                                              │
00:02:21 #17613 [Verbose] > │         let v31 : bool = v29 >= v30                                          │
00:02:21 #17614 [Verbose] > │         let v32 : float =                                                    │
00:02:21 #17615 [Verbose] > │             if v31 then                                                      │
00:02:21 #17616 [Verbose] > │                 v29                                                          │
00:02:21 #17617 [Verbose] > │             else                                                             │
00:02:21 #17618 [Verbose] > │                 v30                                                          │
00:02:21 #17619 [Verbose] > │         let v33 : float = 0.0                                                │
00:02:21 #17620 [Verbose] > │         let v34 : float = 0.1                                                │
00:02:21 #17621 [Verbose] > │         let v35 : float = 0.0                                                │
00:02:21 #17622 [Verbose] > │         let struct (v36 : float, v37 : float, v38 : float) = method3(v33,    │
00:02:21 #17623 [Verbose] > │ v34, v35, v32)                                                               │
00:02:21 #17624 [Verbose] > │         v8.[int v11] <- v38                                                  │
00:02:21 #17625 [Verbose] > │         let v39 : int32 = v11 + 1                                            │
00:02:21 #17626 [Verbose] > │         v9.l0 <- v39                                                         │
00:02:21 #17627 [Verbose] > │         ()                                                                   │
00:02:21 #17628 [Verbose] > │     let v40 : string = "velocity (m/s)"                                      │
00:02:21 #17629 [Verbose] > │     let v41 : (struct (string * (float []) * (float [])) []) = [|struct      │
00:02:21 #17630 [Verbose] > │ (v40, v0, v8)|]                                                              │
00:02:21 #17631 [Verbose] > │     let v42 : (struct (string * (float []) * (float [])) []) = method4(v41)  │
00:02:21 #17632 [Verbose] > │     let v43 : string = "ping pong ball on a slinky"                          │
00:02:21 #17633 [Verbose] > │     let v44 : string = "time (s)"                                            │
00:02:21 #17634 [Verbose] > │     let v45 : string = ""                                                    │
00:02:21 #17635 [Verbose] > │     struct (v43, v44, v45, v42)                                              │
00:02:21 #17636 [Verbose] > │ method0()                                                                    │
00:02:21 #17637 [Verbose] > │                                                                              │
00:02:21 #17638 [Verbose] > │                                                                              │
00:02:21 #17639 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:21 #17640 [Verbose] >
00:02:21 #17641 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:21 #17642 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:21 #17643 [Verbose] > │ ## shift                                                                     │
00:02:21 #17644 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:21 #17645 [Verbose] >
00:02:21 #17646 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:21 #17647 [Verbose] > type update_function s = s -> s
00:02:21 #17648 [Verbose] >
00:02:21 #17649 [Verbose] > type differential_equation s ds = s -> ds
00:02:21 #17650 [Verbose] >
00:02:21 #17651 [Verbose] > type numerical_method s ds = differential_equation s ds -> update_function s
00:02:21 #17652 [Verbose] >
00:02:21 #17653 [Verbose] >
00:02:21 #17654 [Verbose] > inl solver method =
00:02:21 #17655 [Verbose] >     method >> seq.iterate
00:02:21 #17656 [Verbose] > inl solver' method =
00:02:21 #17657 [Verbose] >     method >> seq.iterate'
00:02:21 #17658 [Verbose] > inl solver_ method =
00:02:21 #17659 [Verbose] >     method >> seq.iterate_
00:02:21 #17660 [Verbose] >
00:02:21 #17661 [Verbose] >
00:02:21 #17662 [Verbose] > inl euler_cromer_1d dt deriv (state_1d (t0, x0, v0) as t) =
00:02:21 #17663 [Verbose] >     inl (rrr (_, _, dvdt)) = deriv t
00:02:21 #17664 [Verbose] >     inl t1 = t0 + dt
00:02:21 #17665 [Verbose] >     inl v1 = v0 + dvdt * dt
00:02:21 #17666 [Verbose] >     inl x1 = x0 + v1 * dt
00:02:21 #17667 [Verbose] >     state_1d (t1, x1, v1)
00:02:21 #17668 [Verbose] >
00:02:21 #17669 [Verbose] > inl update_txv_ec dt m fs =
00:02:21 #17670 [Verbose] >     euler_cromer_1d dt (newton_second_1d m fs)
00:02:21 #17671 [Verbose] >
00:02:21 #17672 [Verbose] > prototype (+++) ds : ds -> ds -> ds
00:02:21 #17673 [Verbose] > prototype scale ds : f64 -> ds -> ds
00:02:21 #17674 [Verbose] >
00:02:21 #17675 [Verbose] > instance (+++) rrr = fun (rrr (dtdt0, dxdt0, dvdt0)) (rrr (dtdt1, dxdt1, dvdt1))
00:02:21 #17676 [Verbose] > =>
00:02:21 #17677 [Verbose] >     rrr (dtdt0 + dtdt1, dxdt0 + dxdt1, dvdt0 + dvdt1)
00:02:21 #17678 [Verbose] >
00:02:21 #17679 [Verbose] > instance scale rrr = fun w (rrr (dtdt0, dxdt0, dvdt0)) =>
00:02:21 #17680 [Verbose] >     rrr (w * dtdt0, w * dxdt0, w * dvdt0)
00:02:21 #17681 [Verbose] >
00:02:21 #17682 [Verbose] > prototype shift s : forall ds. f64 -> ds -> s -> s
00:02:21 #17683 [Verbose] >
00:02:21 #17684 [Verbose] > instance shift state_1d = fun dt ds (state_1d (t, x, v)) =>
00:02:21 #17685 [Verbose] >     inl dtdt, dxdt, dvdt =
00:02:21 #17686 [Verbose] >         real
00:02:21 #17687 [Verbose] >             match ds with
00:02:21 #17688 [Verbose] >             | rrr x => x
00:02:21 #17689 [Verbose] >             | state_1d x => x
00:02:21 #17690 [Verbose] >     state_1d (t + dtdt * dt, x + dxdt * dt, v + dvdt * dt)
00:02:21 #17691 [Verbose] >
00:02:21 #17692 [Verbose] > inl euler dt deriv st0 =
00:02:21 #17693 [Verbose] >     shift dt (deriv st0) st0
00:02:21 #17694 [Verbose] >
00:02:21 #17695 [Verbose] > inl runge_kutta_4 dt deriv st0 =
00:02:21 #17696 [Verbose] >     inl m0 = deriv st0
00:02:21 #17697 [Verbose] >     inl m1 = deriv (shift (dt / 2) m0 st0)
00:02:21 #17698 [Verbose] >     inl m2 = deriv (shift (dt / 2) m1 st0)
00:02:21 #17699 [Verbose] >     inl m3 = deriv (shift dt m2 st0)
00:02:21 #17700 [Verbose] >     shift (dt / 6) (m0 +++ m1 +++ m1 +++ m2 +++ m2 +++ m3) st0
00:02:21 #17701 [Verbose] >
00:02:21 #17702 [Verbose] > inl exponential (_, x0, v0) =
00:02:21 #17703 [Verbose] >     1f64, v0, x0
00:02:21 #17704 [Verbose] >
00:02:21 #17705 [Verbose] > inl of_state_1d (state_1d (t, x, v)) =
00:02:21 #17706 [Verbose] >     t, x, v
00:02:21 #17707 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-5018-1857-164755a0b74c/main.spi
00:02:21 #17708 [Verbose] >
00:02:21 #17709 [Verbose] > ╭─[ 118.96ms - stdout ]────────────────────────────────────────────────────────╮
00:02:21 #17710 [Verbose] > │ ()                                                                           │
00:02:21 #17711 [Verbose] > │                                                                              │
00:02:21 #17712 [Verbose] > │                                                                              │
00:02:21 #17713 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:21 #17714 [Verbose] >
00:02:21 #17715 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:21 #17716 [Verbose] > // // test
00:02:21 #17717 [Verbose] >
00:02:21 #17718 [Verbose] > solver (euler 0.01) (of_state_1d >> exponential >> state_1d) (state_1d (0, 1,
00:02:21 #17719 [Verbose] > 1)) 800i32
00:02:21 #17720 [Verbose] > |> _assert_eq (state_1d (7.999999999999874, 2864.8311229272326,
00:02:21 #17721 [Verbose] > 2864.8311229272326))
00:02:21 #17722 [Verbose] >
00:02:21 #17723 [Verbose] > solver (euler_cromer_1d 0.1) (of_state_1d >> exponential >> rrr) (state_1d (0,
00:02:21 #17724 [Verbose] > 1, 1)) 80i32
00:02:21 #17725 [Verbose] > |> _assert_eq (state_1d (7.999999999999988, 3043.379244966009,
00:02:21 #17726 [Verbose] > 2895.0121485099035))
00:02:21 #17727 [Verbose] >
00:02:21 #17728 [Verbose] > solver (runge_kutta_4 1) (of_state_1d >> exponential >> rrr) (state_1d (0, 1,
00:02:21 #17729 [Verbose] > 1)) 8i32
00:02:21 #17730 [Verbose] > |> _assert_eq (state_1d (8.0, 2894.789038540849, 2894.789038540849))
00:02:21 #17731 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-5030-3056-3e2374f9bb1a/main.spi
00:02:21 #17732 [Verbose] >
00:02:21 #17733 [Verbose] > ╭─[ 204.72ms - stdout ]────────────────────────────────────────────────────────╮
00:02:21 #17734 [Verbose] > │ let rec method0 () : unit =                                                  │
00:02:21 #17735 [Verbose] > │     let v0 : string = $"%A{struct (7.999999999999874, 2864.8311229272326,    │
00:02:21 #17736 [Verbose] > │ 2864.8311229272326)}"                                                        │
00:02:21 #17737 [Verbose] > │     System.Console.WriteLine v0                                              │
00:02:21 #17738 [Verbose] > │     let v1 : string = $"__expect / actual: %A{struct (7.999999999999874,     │
00:02:21 #17739 [Verbose] > │ 2864.8311229272326, 2864.8311229272326)} / expected: %A{struct               │
00:02:21 #17740 [Verbose] > │ (7.999999999999874, 2864.8311229272326, 2864.8311229272326)}"                │
00:02:21 #17741 [Verbose] > │     let v2 : string = $"%A{struct (7.999999999999988, 3043.379244966009,     │
00:02:21 #17742 [Verbose] > │ 2895.0121485099035)}"                                                        │
00:02:21 #17743 [Verbose] > │     System.Console.WriteLine v2                                              │
00:02:21 #17744 [Verbose] > │     let v3 : string = $"__expect / actual: %A{struct (7.999999999999988,     │
00:02:21 #17745 [Verbose] > │ 3043.379244966009, 2895.0121485099035)} / expected: %A{struct                │
00:02:21 #17746 [Verbose] > │ (7.999999999999988, 3043.379244966009, 2895.0121485099035)}"                 │
00:02:21 #17747 [Verbose] > │     let v4 : string = $"%A{struct (8.0, 2894.789038540849,                   │
00:02:21 #17748 [Verbose] > │ 2894.789038540849)}"                                                         │
00:02:21 #17749 [Verbose] > │     System.Console.WriteLine v4                                              │
00:02:21 #17750 [Verbose] > │     let v5 : string = $"__expect / actual: %A{struct (8.0,                   │
00:02:21 #17751 [Verbose] > │ 2894.789038540849, 2894.789038540849)} / expected: %A{struct (8.0,           │
00:02:21 #17752 [Verbose] > │ 2894.789038540849, 2894.789038540849)}"                                      │
00:02:21 #17753 [Verbose] > │     ()                                                                       │
00:02:21 #17754 [Verbose] > │ method0()                                                                    │
00:02:21 #17755 [Verbose] > │                                                                              │
00:02:21 #17756 [Verbose] > │ struct (8.0, 2864.831123, 2864.831123)                                       │
00:02:21 #17757 [Verbose] > │ struct (8.0, 3043.379245, 2895.012149)                                       │
00:02:21 #17758 [Verbose] > │ struct (8.0, 2894.789039, 2894.789039)                                       │
00:02:21 #17759 [Verbose] > │                                                                              │
00:02:21 #17760 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:21 #17761 [Verbose] >
00:02:21 #17762 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:21 #17763 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:21 #17764 [Verbose] > │ ## vec                                                                       │
00:02:21 #17765 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:21 #17766 [Verbose] >
00:02:21 #17767 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:21 #17768 [Verbose] > type vec =
00:02:21 #17769 [Verbose] >     {
00:02:21 #17770 [Verbose] >         x : f64
00:02:21 #17771 [Verbose] >         y : f64
00:02:21 #17772 [Verbose] >         z : f64
00:02:21 #17773 [Verbose] >     }
00:02:21 #17774 [Verbose] >
00:02:21 #17775 [Verbose] > inl vec x y z : vec =
00:02:21 #17776 [Verbose] >     { x y z }
00:02:21 #17777 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-5051-5147-5edea0b80ef3/main.spi
00:02:21 #17778 [Verbose] >
00:02:21 #17779 [Verbose] > ╭─[ 117.42ms - stdout ]────────────────────────────────────────────────────────╮
00:02:21 #17780 [Verbose] > │ ()                                                                           │
00:02:21 #17781 [Verbose] > │                                                                              │
00:02:21 #17782 [Verbose] > │                                                                              │
00:02:21 #17783 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:21 #17784 [Verbose] >
00:02:21 #17785 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:21 #17786 [Verbose] > // // test
00:02:21 #17787 [Verbose] >
00:02:21 #17788 [Verbose] > vec 1 2 3 .z
00:02:21 #17789 [Verbose] > |> _assert_eq 3
00:02:21 #17790 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-5063-6302-6fdb6449039f/main.spi
00:02:21 #17791 [Verbose] >
00:02:21 #17792 [Verbose] > ╭─[ 133.17ms - stdout ]────────────────────────────────────────────────────────╮
00:02:21 #17793 [Verbose] > │ let rec method0 () : unit =                                                  │
00:02:21 #17794 [Verbose] > │     let v0 : string = $"%A{3.0}"                                             │
00:02:21 #17795 [Verbose] > │     System.Console.WriteLine v0                                              │
00:02:21 #17796 [Verbose] > │     let v1 : string = $"__expect / actual: %A{3.0} / expected: %A{3.0}"      │
00:02:21 #17797 [Verbose] > │     ()                                                                       │
00:02:21 #17798 [Verbose] > │ method0()                                                                    │
00:02:21 #17799 [Verbose] > │                                                                              │
00:02:21 #17800 [Verbose] > │ 3.0                                                                          │
00:02:21 #17801 [Verbose] > │                                                                              │
00:02:21 #17802 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:21 #17803 [Verbose] >
00:02:21 #17804 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:21 #17805 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:21 #17806 [Verbose] > │ ### consts                                                                   │
00:02:21 #17807 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:21 #17808 [Verbose] >
00:02:21 #17809 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:21 #17810 [Verbose] > inl i_hat () = vec 1 0 0
00:02:21 #17811 [Verbose] > inl j_hat () = vec 0 1 0
00:02:21 #17812 [Verbose] > inl k_hat () = vec 0 0 1
00:02:21 #17813 [Verbose] > inl zero_vec () = vec 0 0 0
00:02:21 #17814 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-5076-7659-7cfa7f065d11/main.spi
00:02:21 #17815 [Verbose] >
00:02:21 #17816 [Verbose] > ╭─[ 116.08ms - stdout ]────────────────────────────────────────────────────────╮
00:02:21 #17817 [Verbose] > │ ()                                                                           │
00:02:21 #17818 [Verbose] > │                                                                              │
00:02:21 #17819 [Verbose] > │                                                                              │
00:02:21 #17820 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:21 #17821 [Verbose] >
00:02:21 #17822 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:21 #17823 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:21 #17824 [Verbose] > │ ### ^+^                                                                      │
00:02:21 #17825 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:21 #17826 [Verbose] >
00:02:21 #17827 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:21 #17828 [Verbose] > inl (^+^) (a : vec) (b : vec) =
00:02:21 #17829 [Verbose] >     vec (a.x + b.x) (a.y + b.y) (a.z + b.z)
00:02:21 #17830 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-5088-8822-810365f1c510/main.spi
00:02:21 #17831 [Verbose] >
00:02:21 #17832 [Verbose] > ╭─[ 115.30ms - stdout ]────────────────────────────────────────────────────────╮
00:02:21 #17833 [Verbose] > │ ()                                                                           │
00:02:21 #17834 [Verbose] > │                                                                              │
00:02:21 #17835 [Verbose] > │                                                                              │
00:02:21 #17836 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:21 #17837 [Verbose] >
00:02:21 #17838 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:21 #17839 [Verbose] > // // test
00:02:21 #17840 [Verbose] >
00:02:21 #17841 [Verbose] > vec 1 2 3 ^+^ vec 4 5 6
00:02:21 #17842 [Verbose] > |> _assert_eq (vec 5 7 9)
00:02:21 #17843 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-5099-9980-93a90ff3e38d/main.spi
00:02:21 #17844 [Verbose] >
00:02:21 #17845 [Verbose] > ╭─[ 131.74ms - stdout ]────────────────────────────────────────────────────────╮
00:02:21 #17846 [Verbose] > │ let rec method0 () : unit =                                                  │
00:02:21 #17847 [Verbose] > │     let v0 : string = $"%A{struct (5.0, 7.0, 9.0)}"                          │
00:02:21 #17848 [Verbose] > │     System.Console.WriteLine v0                                              │
00:02:21 #17849 [Verbose] > │     let v1 : string = $"__expect / actual: %A{struct (5.0, 7.0, 9.0)} /      │
00:02:21 #17850 [Verbose] > │ expected: %A{struct (5.0, 7.0, 9.0)}"                                        │
00:02:21 #17851 [Verbose] > │     ()                                                                       │
00:02:21 #17852 [Verbose] > │ method0()                                                                    │
00:02:21 #17853 [Verbose] > │                                                                              │
00:02:21 #17854 [Verbose] > │ struct (5.0, 7.0, 9.0)                                                       │
00:02:21 #17855 [Verbose] > │                                                                              │
00:02:21 #17856 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:21 #17857 [Verbose] >
00:02:21 #17858 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:21 #17859 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:21 #17860 [Verbose] > │ ### sum_vec                                                                  │
00:02:21 #17861 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:21 #17862 [Verbose] >
00:02:21 #17863 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:21 #17864 [Verbose] > inl sum_vec vs =
00:02:21 #17865 [Verbose] >     vs |> listm.fold (^+^) (zero_vec ())
00:02:22 #17866 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-5113-1310-1ed57080aa58/main.spi
00:02:22 #17867 [Verbose] >
00:02:22 #17868 [Verbose] > ╭─[ 113.51ms - stdout ]────────────────────────────────────────────────────────╮
00:02:22 #17869 [Verbose] > │ ()                                                                           │
00:02:22 #17870 [Verbose] > │                                                                              │
00:02:22 #17871 [Verbose] > │                                                                              │
00:02:22 #17872 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:22 #17873 [Verbose] >
00:02:22 #17874 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:22 #17875 [Verbose] > // // test
00:02:22 #17876 [Verbose] >
00:02:22 #17877 [Verbose] > [[ vec 1 2 3; vec 4 5 6 ]]
00:02:22 #17878 [Verbose] > |> sum_vec
00:02:22 #17879 [Verbose] > |> _assert_eq (vec 5 7 9)
00:02:22 #17880 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-5124-2448-24eb53dacba6/main.spi
00:02:22 #17881 [Verbose] >
00:02:22 #17882 [Verbose] > ╭─[ 121.40ms - stdout ]────────────────────────────────────────────────────────╮
00:02:22 #17883 [Verbose] > │ let rec method0 () : unit =                                                  │
00:02:22 #17884 [Verbose] > │     let v0 : string = $"%A{struct (5.0, 7.0, 9.0)}"                          │
00:02:22 #17885 [Verbose] > │     System.Console.WriteLine v0                                              │
00:02:22 #17886 [Verbose] > │     let v1 : string = $"__expect / actual: %A{struct (5.0, 7.0, 9.0)} /      │
00:02:22 #17887 [Verbose] > │ expected: %A{struct (5.0, 7.0, 9.0)}"                                        │
00:02:22 #17888 [Verbose] > │     ()                                                                       │
00:02:22 #17889 [Verbose] > │ method0()                                                                    │
00:02:22 #17890 [Verbose] > │                                                                              │
00:02:22 #17891 [Verbose] > │ struct (5.0, 7.0, 9.0)                                                       │
00:02:22 #17892 [Verbose] > │                                                                              │
00:02:22 #17893 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:22 #17894 [Verbose] >
00:02:22 #17895 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:22 #17896 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:22 #17897 [Verbose] > │ ### *^                                                                       │
00:02:22 #17898 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:22 #17899 [Verbose] >
00:02:22 #17900 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:22 #17901 [Verbose] > inl (*^) c { x y z } =
00:02:22 #17902 [Verbose] >     vec (c * x) (c * y) (c * z)
00:02:22 #17903 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-5136-3673-342c0dca97bd/main.spi
00:02:22 #17904 [Verbose] >
00:02:22 #17905 [Verbose] > ╭─[ 113.35ms - stdout ]────────────────────────────────────────────────────────╮
00:02:22 #17906 [Verbose] > │ ()                                                                           │
00:02:22 #17907 [Verbose] > │                                                                              │
00:02:22 #17908 [Verbose] > │                                                                              │
00:02:22 #17909 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:22 #17910 [Verbose] >
00:02:22 #17911 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:22 #17912 [Verbose] > // // test
00:02:22 #17913 [Verbose] >
00:02:22 #17914 [Verbose] > 5 *^ vec 1 2 3
00:02:22 #17915 [Verbose] > |> _assert_eq (vec 5 10 15)
00:02:22 #17916 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-5148-4812-483fe1a8c1a6/main.spi
00:02:22 #17917 [Verbose] >
00:02:22 #17918 [Verbose] > ╭─[ 121.47ms - stdout ]────────────────────────────────────────────────────────╮
00:02:22 #17919 [Verbose] > │ let rec method0 () : unit =                                                  │
00:02:22 #17920 [Verbose] > │     let v0 : string = $"%A{struct (5.0, 10.0, 15.0)}"                        │
00:02:22 #17921 [Verbose] > │     System.Console.WriteLine v0                                              │
00:02:22 #17922 [Verbose] > │     let v1 : string = $"__expect / actual: %A{struct (5.0, 10.0, 15.0)} /    │
00:02:22 #17923 [Verbose] > │ expected: %A{struct (5.0, 10.0, 15.0)}"                                      │
00:02:22 #17924 [Verbose] > │     ()                                                                       │
00:02:22 #17925 [Verbose] > │ method0()                                                                    │
00:02:22 #17926 [Verbose] > │                                                                              │
00:02:22 #17927 [Verbose] > │ struct (5.0, 10.0, 15.0)                                                     │
00:02:22 #17928 [Verbose] > │                                                                              │
00:02:22 #17929 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:22 #17930 [Verbose] >
00:02:22 #17931 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:22 #17932 [Verbose] > // // test
00:02:22 #17933 [Verbose] >
00:02:22 #17934 [Verbose] > 3 *^ i_hat () ^+^ 4 *^ k_hat ()
00:02:22 #17935 [Verbose] > |> _assert_eq (vec 3 0 4)
00:02:22 #17936 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-5160-6035-6b90457a1b77/main.spi
00:02:22 #17937 [Verbose] >
00:02:22 #17938 [Verbose] > ╭─[ 123.47ms - stdout ]────────────────────────────────────────────────────────╮
00:02:22 #17939 [Verbose] > │ let rec method0 () : unit =                                                  │
00:02:22 #17940 [Verbose] > │     let v0 : string = $"%A{struct (3.0, 0.0, 4.0)}"                          │
00:02:22 #17941 [Verbose] > │     System.Console.WriteLine v0                                              │
00:02:22 #17942 [Verbose] > │     let v1 : string = $"__expect / actual: %A{struct (3.0, 0.0, 4.0)} /      │
00:02:22 #17943 [Verbose] > │ expected: %A{struct (3.0, 0.0, 4.0)}"                                        │
00:02:22 #17944 [Verbose] > │     ()                                                                       │
00:02:22 #17945 [Verbose] > │ method0()                                                                    │
00:02:22 #17946 [Verbose] > │                                                                              │
00:02:22 #17947 [Verbose] > │ struct (3.0, 0.0, 4.0)                                                       │
00:02:22 #17948 [Verbose] > │                                                                              │
00:02:22 #17949 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:22 #17950 [Verbose] >
00:02:22 #17951 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:22 #17952 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:22 #17953 [Verbose] > │ ### ^*                                                                       │
00:02:22 #17954 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:22 #17955 [Verbose] >
00:02:22 #17956 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:22 #17957 [Verbose] > inl (^*) v c =
00:02:22 #17958 [Verbose] >     (*^) c v
00:02:22 #17959 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-5172-7281-7240676a8d05/main.spi
00:02:22 #17960 [Verbose] >
00:02:22 #17961 [Verbose] > ╭─[ 112.62ms - stdout ]────────────────────────────────────────────────────────╮
00:02:22 #17962 [Verbose] > │ ()                                                                           │
00:02:22 #17963 [Verbose] > │                                                                              │
00:02:22 #17964 [Verbose] > │                                                                              │
00:02:22 #17965 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:22 #17966 [Verbose] >
00:02:22 #17967 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:22 #17968 [Verbose] > // // test
00:02:22 #17969 [Verbose] >
00:02:22 #17970 [Verbose] > vec 1 2 3 ^* 5
00:02:22 #17971 [Verbose] > |> _assert_eq (vec 5 10 15)
00:02:22 #17972 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-5184-8413-87cd8f7cb1bd/main.spi
00:02:22 #17973 [Verbose] >
00:02:22 #17974 [Verbose] > ╭─[ 136.09ms - stdout ]────────────────────────────────────────────────────────╮
00:02:22 #17975 [Verbose] > │ let rec method0 () : unit =                                                  │
00:02:22 #17976 [Verbose] > │     let v0 : string = $"%A{struct (5.0, 10.0, 15.0)}"                        │
00:02:22 #17977 [Verbose] > │     System.Console.WriteLine v0                                              │
00:02:22 #17978 [Verbose] > │     let v1 : string = $"__expect / actual: %A{struct (5.0, 10.0, 15.0)} /    │
00:02:22 #17979 [Verbose] > │ expected: %A{struct (5.0, 10.0, 15.0)}"                                      │
00:02:22 #17980 [Verbose] > │     ()                                                                       │
00:02:22 #17981 [Verbose] > │ method0()                                                                    │
00:02:22 #17982 [Verbose] > │                                                                              │
00:02:22 #17983 [Verbose] > │ struct (5.0, 10.0, 15.0)                                                     │
00:02:22 #17984 [Verbose] > │                                                                              │
00:02:22 #17985 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:22 #17986 [Verbose] >
00:02:22 #17987 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:22 #17988 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:22 #17989 [Verbose] > │ ### ^/                                                                       │
00:02:22 #17990 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:22 #17991 [Verbose] >
00:02:22 #17992 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:22 #17993 [Verbose] > inl (^/) { x y z } c =
00:02:22 #17994 [Verbose] >     vec (x / c) (y / c) (z / c)
00:02:22 #17995 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-5198-9807-9001bc3f5d70/main.spi
00:02:22 #17996 [Verbose] >
00:02:22 #17997 [Verbose] > ╭─[ 119.03ms - stdout ]────────────────────────────────────────────────────────╮
00:02:22 #17998 [Verbose] > │ ()                                                                           │
00:02:22 #17999 [Verbose] > │                                                                              │
00:02:22 #18000 [Verbose] > │                                                                              │
00:02:22 #18001 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:22 #18002 [Verbose] >
00:02:22 #18003 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:22 #18004 [Verbose] > // // test
00:02:22 #18005 [Verbose] >
00:02:22 #18006 [Verbose] > vec 1 2 3 ^/ 5
00:02:22 #18007 [Verbose] > |> _assert_eq (vec 0.2 0.4 0.6)
00:02:23 #18008 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-5209-0983-006b3ad35b8d/main.spi
00:02:23 #18009 [Verbose] >
00:02:23 #18010 [Verbose] > ╭─[ 124.01ms - stdout ]────────────────────────────────────────────────────────╮
00:02:23 #18011 [Verbose] > │ let rec method0 () : unit =                                                  │
00:02:23 #18012 [Verbose] > │     let v0 : string = $"%A{struct (0.2, 0.4, 0.6)}"                          │
00:02:23 #18013 [Verbose] > │     System.Console.WriteLine v0                                              │
00:02:23 #18014 [Verbose] > │     let v1 : string = $"__expect / actual: %A{struct (0.2, 0.4, 0.6)} /      │
00:02:23 #18015 [Verbose] > │ expected: %A{struct (0.2, 0.4, 0.6)}"                                        │
00:02:23 #18016 [Verbose] > │     ()                                                                       │
00:02:23 #18017 [Verbose] > │ method0()                                                                    │
00:02:23 #18018 [Verbose] > │                                                                              │
00:02:23 #18019 [Verbose] > │ struct (0.2, 0.4, 0.6)                                                       │
00:02:23 #18020 [Verbose] > │                                                                              │
00:02:23 #18021 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:23 #18022 [Verbose] >
00:02:23 #18023 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:23 #18024 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:23 #18025 [Verbose] > │ ### negate_vec                                                               │
00:02:23 #18026 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:23 #18027 [Verbose] >
00:02:23 #18028 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:23 #18029 [Verbose] > inl negate_vec v =
00:02:23 #18030 [Verbose] >     v ^* -1
00:02:23 #18031 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-5222-2238-2c87fcb683b6/main.spi
00:02:23 #18032 [Verbose] >
00:02:23 #18033 [Verbose] > ╭─[ 109.19ms - stdout ]────────────────────────────────────────────────────────╮
00:02:23 #18034 [Verbose] > │ ()                                                                           │
00:02:23 #18035 [Verbose] > │                                                                              │
00:02:23 #18036 [Verbose] > │                                                                              │
00:02:23 #18037 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:23 #18038 [Verbose] >
00:02:23 #18039 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:23 #18040 [Verbose] > // // test
00:02:23 #18041 [Verbose] >
00:02:23 #18042 [Verbose] > vec 1 2 3
00:02:23 #18043 [Verbose] > |> negate_vec
00:02:23 #18044 [Verbose] > |> _assert_eq (vec -1 -2 -3)
00:02:23 #18045 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-5233-3336-31a52ec254f4/main.spi
00:02:23 #18046 [Verbose] >
00:02:23 #18047 [Verbose] > ╭─[ 126.28ms - stdout ]────────────────────────────────────────────────────────╮
00:02:23 #18048 [Verbose] > │ let rec method0 () : unit =                                                  │
00:02:23 #18049 [Verbose] > │     let v0 : string = $"%A{struct (-1.0, -2.0, -3.0)}"                       │
00:02:23 #18050 [Verbose] > │     System.Console.WriteLine v0                                              │
00:02:23 #18051 [Verbose] > │     let v1 : string = $"__expect / actual: %A{struct (-1.0, -2.0, -3.0)} /   │
00:02:23 #18052 [Verbose] > │ expected: %A{struct (-1.0, -2.0, -3.0)}"                                     │
00:02:23 #18053 [Verbose] > │     ()                                                                       │
00:02:23 #18054 [Verbose] > │ method0()                                                                    │
00:02:23 #18055 [Verbose] > │                                                                              │
00:02:23 #18056 [Verbose] > │ struct (-1.0, -2.0, -3.0)                                                    │
00:02:23 #18057 [Verbose] > │                                                                              │
00:02:23 #18058 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:23 #18059 [Verbose] >
00:02:23 #18060 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:23 #18061 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:23 #18062 [Verbose] > │ ### ^-^                                                                      │
00:02:23 #18063 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:23 #18064 [Verbose] >
00:02:23 #18065 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:23 #18066 [Verbose] > inl (^-^) a b =
00:02:23 #18067 [Verbose] >     a ^+^ (negate_vec b)
00:02:23 #18068 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-5246-4609-4b069fa71efe/main.spi
00:02:23 #18069 [Verbose] >
00:02:23 #18070 [Verbose] > ╭─[ 111.72ms - stdout ]────────────────────────────────────────────────────────╮
00:02:23 #18071 [Verbose] > │ ()                                                                           │
00:02:23 #18072 [Verbose] > │                                                                              │
00:02:23 #18073 [Verbose] > │                                                                              │
00:02:23 #18074 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:23 #18075 [Verbose] >
00:02:23 #18076 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:23 #18077 [Verbose] > // // test
00:02:23 #18078 [Verbose] >
00:02:23 #18079 [Verbose] > vec 1 2 3 ^-^ vec 4 5 6
00:02:23 #18080 [Verbose] > |> _assert_eq (vec -3 -3 -3)
00:02:23 #18081 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-5257-5730-5c93b1201dc0/main.spi
00:02:23 #18082 [Verbose] >
00:02:23 #18083 [Verbose] > ╭─[ 125.22ms - stdout ]────────────────────────────────────────────────────────╮
00:02:23 #18084 [Verbose] > │ let rec method0 () : unit =                                                  │
00:02:23 #18085 [Verbose] > │     let v0 : string = $"%A{struct (-3.0, -3.0, -3.0)}"                       │
00:02:23 #18086 [Verbose] > │     System.Console.WriteLine v0                                              │
00:02:23 #18087 [Verbose] > │     let v1 : string = $"__expect / actual: %A{struct (-3.0, -3.0, -3.0)} /   │
00:02:23 #18088 [Verbose] > │ expected: %A{struct (-3.0, -3.0, -3.0)}"                                     │
00:02:23 #18089 [Verbose] > │     ()                                                                       │
00:02:23 #18090 [Verbose] > │ method0()                                                                    │
00:02:23 #18091 [Verbose] > │                                                                              │
00:02:23 #18092 [Verbose] > │ struct (-3.0, -3.0, -3.0)                                                    │
00:02:23 #18093 [Verbose] > │                                                                              │
00:02:23 #18094 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:23 #18095 [Verbose] >
00:02:23 #18096 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:23 #18097 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:23 #18098 [Verbose] > │ ### <.>                                                                      │
00:02:23 #18099 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:23 #18100 [Verbose] >
00:02:23 #18101 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:23 #18102 [Verbose] > inl (<.>) { x = ax y = ay z = az } { x = bx y = by z = bz } =
00:02:23 #18103 [Verbose] >     ax * bx + ay * by + az * bz
00:02:23 #18104 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-5269-6999-69887203a12c/main.spi
00:02:23 #18105 [Verbose] >
00:02:23 #18106 [Verbose] > ╭─[ 124.86ms - stdout ]────────────────────────────────────────────────────────╮
00:02:23 #18107 [Verbose] > │ ()                                                                           │
00:02:23 #18108 [Verbose] > │                                                                              │
00:02:23 #18109 [Verbose] > │                                                                              │
00:02:23 #18110 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:23 #18111 [Verbose] >
00:02:23 #18112 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:23 #18113 [Verbose] > // // test
00:02:23 #18114 [Verbose] >
00:02:23 #18115 [Verbose] > vec 1 2 3 <.> vec 4 5 6
00:02:23 #18116 [Verbose] > |> _assert_eq 32
00:02:24 #18117 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-5282-8251-8474cd08cc1d/main.spi
00:02:24 #18118 [Verbose] >
00:02:24 #18119 [Verbose] > ╭─[ 1.10s - stdout ]───────────────────────────────────────────────────────────╮
00:02:24 #18120 [Verbose] > │ let rec method0 () : unit =                                                  │
00:02:24 #18121 [Verbose] > │     let v0 : string = $"%A{32.0}"                                            │
00:02:24 #18122 [Verbose] > │     System.Console.WriteLine v0                                              │
00:02:24 #18123 [Verbose] > │     let v1 : string = $"__expect / actual: %A{32.0} / expected: %A{32.0}"    │
00:02:24 #18124 [Verbose] > │     ()                                                                       │
00:02:24 #18125 [Verbose] > │ method0()                                                                    │
00:02:24 #18126 [Verbose] > │                                                                              │
00:02:24 #18127 [Verbose] > │ 32.0                                                                         │
00:02:24 #18128 [Verbose] > │                                                                              │
00:02:24 #18129 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:24 #18130 [Verbose] >
00:02:24 #18131 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:24 #18132 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:24 #18133 [Verbose] > │ ### \>\<                                                                     │
00:02:24 #18134 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:24 #18135 [Verbose] >
00:02:24 #18136 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:24 #18137 [Verbose] > inl (><) (a : vec) (b : vec) =
00:02:24 #18138 [Verbose] >     vec
00:02:24 #18139 [Verbose] >         (a.y * b.z - a.z * b.y)
00:02:24 #18140 [Verbose] >         (a.z * b.x - a.x * b.z)
00:02:24 #18141 [Verbose] >         (a.x * b.y - a.y * b.x)
00:02:24 #18142 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-5393-9302-9758ffb35d18/main.spi
00:02:24 #18143 [Verbose] >
00:02:24 #18144 [Verbose] > ╭─[ 115.16ms - stdout ]────────────────────────────────────────────────────────╮
00:02:24 #18145 [Verbose] > │ ()                                                                           │
00:02:24 #18146 [Verbose] > │                                                                              │
00:02:24 #18147 [Verbose] > │                                                                              │
00:02:24 #18148 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:24 #18149 [Verbose] >
00:02:24 #18150 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:24 #18151 [Verbose] > // // test
00:02:24 #18152 [Verbose] >
00:02:24 #18153 [Verbose] > vec 1 2 3 >< vec 4 5 6
00:02:24 #18154 [Verbose] > |> _assert_eq (vec -3 6 -3)
00:02:24 #18155 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-5404-0458-0500ba231355/main.spi
00:02:25 #18156 [Verbose] >
00:02:25 #18157 [Verbose] > ╭─[ 126.00ms - stdout ]────────────────────────────────────────────────────────╮
00:02:25 #18158 [Verbose] > │ let rec method0 () : unit =                                                  │
00:02:25 #18159 [Verbose] > │     let v0 : string = $"%A{struct (-3.0, 6.0, -3.0)}"                        │
00:02:25 #18160 [Verbose] > │     System.Console.WriteLine v0                                              │
00:02:25 #18161 [Verbose] > │     let v1 : string = $"__expect / actual: %A{struct (-3.0, 6.0, -3.0)} /    │
00:02:25 #18162 [Verbose] > │ expected: %A{struct (-3.0, 6.0, -3.0)}"                                      │
00:02:25 #18163 [Verbose] > │     ()                                                                       │
00:02:25 #18164 [Verbose] > │ method0()                                                                    │
00:02:25 #18165 [Verbose] > │                                                                              │
00:02:25 #18166 [Verbose] > │ struct (-3.0, 6.0, -3.0)                                                     │
00:02:25 #18167 [Verbose] > │                                                                              │
00:02:25 #18168 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:25 #18169 [Verbose] >
00:02:25 #18170 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:25 #18171 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:25 #18172 [Verbose] > │ ### magnitude                                                                │
00:02:25 #18173 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:25 #18174 [Verbose] >
00:02:25 #18175 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:25 #18176 [Verbose] > inl magnitude v =
00:02:25 #18177 [Verbose] >     v <.> v |> sqrt
00:02:25 #18178 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-5417-1729-1a353c2f0aef/main.spi
00:02:25 #18179 [Verbose] >
00:02:25 #18180 [Verbose] > ╭─[ 115.19ms - stdout ]────────────────────────────────────────────────────────╮
00:02:25 #18181 [Verbose] > │ ()                                                                           │
00:02:25 #18182 [Verbose] > │                                                                              │
00:02:25 #18183 [Verbose] > │                                                                              │
00:02:25 #18184 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:25 #18185 [Verbose] >
00:02:25 #18186 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:25 #18187 [Verbose] > // // test
00:02:25 #18188 [Verbose] >
00:02:25 #18189 [Verbose] > vec 1 2 3
00:02:25 #18190 [Verbose] > |> magnitude
00:02:25 #18191 [Verbose] > |> _assert_approx_eq None 3.7416573867739413
00:02:25 #18192 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-5428-2889-23ddbeb90407/main.spi
00:02:25 #18193 [Verbose] >
00:02:25 #18194 [Verbose] > ╭─[ 129.19ms - stdout ]────────────────────────────────────────────────────────╮
00:02:25 #18195 [Verbose] > │ let rec method0 () : unit =                                                  │
00:02:25 #18196 [Verbose] > │     let v0 : string = $"%A{3.7416573867739413}"                              │
00:02:25 #18197 [Verbose] > │     System.Console.WriteLine v0                                              │
00:02:25 #18198 [Verbose] > │     let v1 : string = $"__expect / actual: %A{3.7416573867739413} /          │
00:02:25 #18199 [Verbose] > │ expected: %A{3.7416573867739413}"                                            │
00:02:25 #18200 [Verbose] > │     ()                                                                       │
00:02:25 #18201 [Verbose] > │ method0()                                                                    │
00:02:25 #18202 [Verbose] > │                                                                              │
00:02:25 #18203 [Verbose] > │ 3.741657387                                                                  │
00:02:25 #18204 [Verbose] > │                                                                              │
00:02:25 #18205 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:25 #18206 [Verbose] >
00:02:25 #18207 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:25 #18208 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:25 #18209 [Verbose] > │ ### v1                                                                       │
00:02:25 #18210 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:25 #18211 [Verbose] >
00:02:25 #18212 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:25 #18213 [Verbose] > inl v1 t =
00:02:25 #18214 [Verbose] >     2 *^ (t ** 2 *^ i_hat () ^+^ 3 *^ (t ** 3 *^ j_hat () ^+^ t ** 4 *^ k_hat
00:02:25 #18215 [Verbose] > ()))
00:02:25 #18216 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-5441-4196-4483d7baff85/main.spi
00:02:25 #18217 [Verbose] >
00:02:25 #18218 [Verbose] > ╭─[ 116.85ms - stdout ]────────────────────────────────────────────────────────╮
00:02:25 #18219 [Verbose] > │ ()                                                                           │
00:02:25 #18220 [Verbose] > │                                                                              │
00:02:25 #18221 [Verbose] > │                                                                              │
00:02:25 #18222 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:25 #18223 [Verbose] >
00:02:25 #18224 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:25 #18225 [Verbose] > // // test
00:02:25 #18226 [Verbose] >
00:02:25 #18227 [Verbose] > v1 1
00:02:25 #18228 [Verbose] > |> _assert_eq (vec 2 6 6)
00:02:25 #18229 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-5453-5365-52502cec346d/main.spi
00:02:25 #18230 [Verbose] >
00:02:25 #18231 [Verbose] > ╭─[ 122.80ms - stdout ]────────────────────────────────────────────────────────╮
00:02:25 #18232 [Verbose] > │ let rec method0 () : unit =                                                  │
00:02:25 #18233 [Verbose] > │     let v0 : string = $"%A{struct (2.0, 6.0, 6.0)}"                          │
00:02:25 #18234 [Verbose] > │     System.Console.WriteLine v0                                              │
00:02:25 #18235 [Verbose] > │     let v1 : string = $"__expect / actual: %A{struct (2.0, 6.0, 6.0)} /      │
00:02:25 #18236 [Verbose] > │ expected: %A{struct (2.0, 6.0, 6.0)}"                                        │
00:02:25 #18237 [Verbose] > │     ()                                                                       │
00:02:25 #18238 [Verbose] > │ method0()                                                                    │
00:02:25 #18239 [Verbose] > │                                                                              │
00:02:25 #18240 [Verbose] > │ struct (2.0, 6.0, 6.0)                                                       │
00:02:25 #18241 [Verbose] > │                                                                              │
00:02:25 #18242 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:25 #18243 [Verbose] >
00:02:25 #18244 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:25 #18245 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:25 #18246 [Verbose] > │ ### vec_derivative                                                           │
00:02:25 #18247 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:25 #18248 [Verbose] >
00:02:25 #18249 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:25 #18250 [Verbose] > type vec_derivative = (f64 -> vec) -> f64 -> vec
00:02:25 #18251 [Verbose] >
00:02:25 #18252 [Verbose] > inl vec_derivative dt : vec_derivative =
00:02:25 #18253 [Verbose] >     fun v t =>
00:02:25 #18254 [Verbose] >         (v (t + dt / 2) ^-^ v (t - dt / 2)) ^/ dt
00:02:25 #18255 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-5466-6607-6788a6f54d3a/main.spi
00:02:25 #18256 [Verbose] >
00:02:25 #18257 [Verbose] > ╭─[ 115.37ms - stdout ]────────────────────────────────────────────────────────╮
00:02:25 #18258 [Verbose] > │ ()                                                                           │
00:02:25 #18259 [Verbose] > │                                                                              │
00:02:25 #18260 [Verbose] > │                                                                              │
00:02:25 #18261 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:25 #18262 [Verbose] >
00:02:25 #18263 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:25 #18264 [Verbose] > // // test
00:02:25 #18265 [Verbose] >
00:02:25 #18266 [Verbose] > vec_derivative 0.01 v1 3 .x
00:02:25 #18267 [Verbose] > |> _assert_approx_eq None (derivative 0.01 (v1 >> fun v => v.x) 3)
00:02:25 #18268 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-5477-7766-75a808e0f9a9/main.spi
00:02:25 #18269 [Verbose] >
00:02:25 #18270 [Verbose] > ╭─[ 125.51ms - stdout ]────────────────────────────────────────────────────────╮
00:02:25 #18271 [Verbose] > │ let rec method0 () : unit =                                                  │
00:02:25 #18272 [Verbose] > │     let v0 : string = $"%A{11.999999999999744}"                              │
00:02:25 #18273 [Verbose] > │     System.Console.WriteLine v0                                              │
00:02:25 #18274 [Verbose] > │     let v1 : string = $"__expect / actual: %A{11.999999999999744} /          │
00:02:25 #18275 [Verbose] > │ expected: %A{11.999999999999744}"                                            │
00:02:25 #18276 [Verbose] > │     ()                                                                       │
00:02:25 #18277 [Verbose] > │ method0()                                                                    │
00:02:25 #18278 [Verbose] > │                                                                              │
00:02:25 #18279 [Verbose] > │ 12.0                                                                         │
00:02:25 #18280 [Verbose] > │                                                                              │
00:02:25 #18281 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:25 #18282 [Verbose] >
00:02:25 #18283 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:25 #18284 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:25 #18285 [Verbose] > │ ## states_ps                                                                 │
00:02:25 #18286 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:25 #18287 [Verbose] >
00:02:25 #18288 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:25 #18289 [Verbose] > nominal particle_state =
00:02:25 #18290 [Verbose] >     {
00:02:25 #18291 [Verbose] >         mass : f64
00:02:25 #18292 [Verbose] >         charge : f64
00:02:25 #18293 [Verbose] >         time : f64
00:02:25 #18294 [Verbose] >         pos_vec : vec
00:02:25 #18295 [Verbose] >         velocity : vec
00:02:25 #18296 [Verbose] >     }
00:02:25 #18297 [Verbose] >
00:02:25 #18298 [Verbose] > inl default_particle_state () : particle_state =
00:02:25 #18299 [Verbose] >     particle_state {
00:02:25 #18300 [Verbose] >         mass = 1
00:02:25 #18301 [Verbose] >         charge = 0
00:02:25 #18302 [Verbose] >         time = 0
00:02:25 #18303 [Verbose] >         pos_vec = zero_vec ()
00:02:25 #18304 [Verbose] >         velocity = zero_vec ()
00:02:25 #18305 [Verbose] >     }
00:02:25 #18306 [Verbose] >
00:02:25 #18307 [Verbose] > type one_body_force = particle_state -> vec
00:02:25 #18308 [Verbose] >
00:02:25 #18309 [Verbose] > nominal d_particle_state =
00:02:25 #18310 [Verbose] >     {
00:02:25 #18311 [Verbose] >         dmdt : f64
00:02:25 #18312 [Verbose] >         dqdt : f64
00:02:25 #18313 [Verbose] >         dtdt : f64
00:02:25 #18314 [Verbose] >         drdt : vec
00:02:25 #18315 [Verbose] >         dvdt : vec
00:02:25 #18316 [Verbose] >     }
00:02:25 #18317 [Verbose] >
00:02:25 #18318 [Verbose] > inl newton_second_ps (fs : list one_body_force) (st : particle_state) :
00:02:25 #18319 [Verbose] > d_particle_state =
00:02:25 #18320 [Verbose] >     inl f_net = fs |> listm.map (fun f => f st) |> sum_vec
00:02:25 #18321 [Verbose] >     d_particle_state {
00:02:25 #18322 [Verbose] >         dmdt = 0
00:02:25 #18323 [Verbose] >         dqdt = 0
00:02:25 #18324 [Verbose] >         dtdt = 1
00:02:25 #18325 [Verbose] >         drdt = st.velocity
00:02:25 #18326 [Verbose] >         dvdt = f_net ^/ st.mass
00:02:25 #18327 [Verbose] >     }
00:02:25 #18328 [Verbose] >
00:02:25 #18329 [Verbose] > inl earth_surface_gravity (st : particle_state) =
00:02:25 #18330 [Verbose] >     inl g = 9.80665
00:02:25 #18331 [Verbose] >     -st.mass * g *^ k_hat ()
00:02:25 #18332 [Verbose] >
00:02:25 #18333 [Verbose] > inl air_resistance drag rho area (st : particle_state) =
00:02:25 #18334 [Verbose] >     -0.5 * drag * rho * area * magnitude st.velocity *^ st.velocity
00:02:25 #18335 [Verbose] >
00:02:25 #18336 [Verbose] > inl euler_cromer_ps dt (deriv : particle_state -> d_particle_state)
00:02:25 #18337 [Verbose] > (particle_state st) =
00:02:25 #18338 [Verbose] >     inl dst : d_particle_state = deriv (particle_state st)
00:02:25 #18339 [Verbose] >     inl v' = st.velocity ^+^ dst.dvdt ^* dt
00:02:25 #18340 [Verbose] >     particle_state { st with
00:02:25 #18341 [Verbose] >         time = st.time + dt
00:02:25 #18342 [Verbose] >         pos_vec = st.pos_vec ^+^ v' ^* dt
00:02:25 #18343 [Verbose] >         velocity = st.velocity ^+^ dst.dvdt ^* dt
00:02:25 #18344 [Verbose] >     }
00:02:25 #18345 [Verbose] >
00:02:25 #18346 [Verbose] > instance (+++) d_particle_state = fun (dps : d_particle_state) (dps' :
00:02:25 #18347 [Verbose] > d_particle_state) =>
00:02:25 #18348 [Verbose] >     d_particle_state {
00:02:25 #18349 [Verbose] >         dmdt = dps.dmdt + dps'.dmdt
00:02:25 #18350 [Verbose] >         dqdt = dps.dqdt + dps'.dqdt
00:02:25 #18351 [Verbose] >         dtdt = dps.dtdt + dps'.dtdt
00:02:25 #18352 [Verbose] >         drdt = dps.drdt ^+^ dps'.drdt
00:02:25 #18353 [Verbose] >         dvdt = dps.dvdt ^+^ dps'.dvdt
00:02:25 #18354 [Verbose] >     }
00:02:25 #18355 [Verbose] >
00:02:25 #18356 [Verbose] > instance scale d_particle_state = fun w (dps : d_particle_state) =>
00:02:25 #18357 [Verbose] >     d_particle_state {
00:02:25 #18358 [Verbose] >         dmdt = w * dps.dmdt
00:02:25 #18359 [Verbose] >         dqdt = w * dps.dqdt
00:02:25 #18360 [Verbose] >         dtdt = w * dps.dtdt
00:02:25 #18361 [Verbose] >         drdt = w *^ dps.drdt
00:02:25 #18362 [Verbose] >         dvdt = w *^ dps.dvdt
00:02:25 #18363 [Verbose] >     }
00:02:25 #18364 [Verbose] >
00:02:25 #18365 [Verbose] > instance shift particle_state = fun dt dps (particle_state st) =>
00:02:25 #18366 [Verbose] >     inl (d_particle_state dps) =
00:02:25 #18367 [Verbose] >         real
00:02:25 #18368 [Verbose] >             match dps with
00:02:25 #18369 [Verbose] >             | d_particle_state _ => dps
00:02:25 #18370 [Verbose] >     particle_state { st with
00:02:25 #18371 [Verbose] >         time = st.time + dps.dtdt * dt
00:02:25 #18372 [Verbose] >         pos_vec = st.pos_vec ^+^ dps.drdt ^* dt
00:02:25 #18373 [Verbose] >         velocity = st.velocity ^+^ dps.dvdt ^* dt
00:02:25 #18374 [Verbose] >     }
00:02:25 #18375 [Verbose] >
00:02:25 #18376 [Verbose] > inl states_ps (method : numerical_method particle_state d_particle_state) : _ ->
00:02:25 #18377 [Verbose] > _ -> i32 -> particle_state =
00:02:25 #18378 [Verbose] >     newton_second_ps >> method >> seq.iterate_
00:02:25 #18379 [Verbose] >
00:02:25 #18380 [Verbose] > inl z_ge0 sts =
00:02:25 #18381 [Verbose] >     sts
00:02:25 #18382 [Verbose] >     |> seq.take_while_ (fun (particle_state st) _ => st.pos_vec.z >= 0)
00:02:25 #18383 [Verbose] >
00:02:25 #18384 [Verbose] > inl trajectory sts =
00:02:25 #18385 [Verbose] >     sts |> listm.map (fun (particle_state st) => st.pos_vec.y, st.pos_vec.z)
00:02:25 #18386 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-5490-9055-9eee7f6ff033/main.spi
00:02:25 #18387 [Verbose] >
00:02:25 #18388 [Verbose] > ╭─[ 121.57ms - stdout ]────────────────────────────────────────────────────────╮
00:02:25 #18389 [Verbose] > │ ()                                                                           │
00:02:25 #18390 [Verbose] > │                                                                              │
00:02:25 #18391 [Verbose] > │                                                                              │
00:02:25 #18392 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:25 #18393 [Verbose] >
00:02:25 #18394 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:25 #18395 [Verbose] > // // test
00:02:25 #18396 [Verbose] >
00:02:25 #18397 [Verbose] > inl update_ps (method : numerical_method particle_state d_particle_state) =
00:02:25 #18398 [Verbose] >     newton_second_ps >> method
00:02:25 #18399 [Verbose] >
00:02:25 #18400 [Verbose] > inl position_ps (method : numerical_method particle_state d_particle_state) fs
00:02:25 #18401 [Verbose] > st t =
00:02:25 #18402 [Verbose] >     inl states : i32 -> particle_state = states_ps method fs st
00:02:25 #18403 [Verbose] >     inl dt = (states 1).time - (states 0).time
00:02:25 #18404 [Verbose] >     inl num_steps = t / dt |> math.round |> abs
00:02:25 #18405 [Verbose] >     inl st1 = solver' method (newton_second_ps fs) st num_steps
00:02:25 #18406 [Verbose] >     st1.pos_vec
00:02:25 #18407 [Verbose] >
00:02:25 #18408 [Verbose] > inl sun_gravity (st : particle_state) : vec =
00:02:25 #18409 [Verbose] >     inl big_g = 0.0000000000667408
00:02:25 #18410 [Verbose] >     inl sun_mass = 1988480000000000000000000000000
00:02:25 #18411 [Verbose] >     -big_g * sun_mass * st.mass *^ st.pos_vec ^/ magnitude st.pos_vec ** 3
00:02:25 #18412 [Verbose] >
00:02:25 #18413 [Verbose] > inl wind_force v_wind drag rho area (st : particle_state) =
00:02:25 #18414 [Verbose] >     inl v_rel = st.velocity ^-^ v_wind
00:02:25 #18415 [Verbose] >     -0.5 * drag * rho * area * magnitude v_rel *^ v_rel
00:02:25 #18416 [Verbose] >
00:02:25 #18417 [Verbose] > inl rock_state () =
00:02:25 #18418 [Verbose] >     inl (particle_state default_particle_state') = default_particle_state ()
00:02:25 #18419 [Verbose] >     particle_state { default_particle_state' with
00:02:25 #18420 [Verbose] >         mass = 2
00:02:25 #18421 [Verbose] >         velocity = vec 3 0 4
00:02:25 #18422 [Verbose] >     }
00:02:25 #18423 [Verbose] >
00:02:25 #18424 [Verbose] > inl halley_update dt =
00:02:25 #18425 [Verbose] >     update_ps (euler_cromer_ps dt) [[ sun_gravity ]]
00:02:25 #18426 [Verbose] >
00:02:25 #18427 [Verbose] > inl halley_initial () =
00:02:25 #18428 [Verbose] >     inl (particle_state default_particle_state') = default_particle_state ()
00:02:25 #18429 [Verbose] >     particle_state { default_particle_state' with
00:02:25 #18430 [Verbose] >         mass = 220000000000000
00:02:25 #18431 [Verbose] >         pos_vec = 87660000000 *^ i_hat ()
00:02:25 #18432 [Verbose] >         velocity = 54569 *^ j_hat ()
00:02:25 #18433 [Verbose] >     }
00:02:25 #18434 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-5502-0263-0833a3513ab0/main.spi
00:02:25 #18435 [Verbose] >
00:02:25 #18436 [Verbose] > ╭─[ 115.69ms - stdout ]────────────────────────────────────────────────────────╮
00:02:25 #18437 [Verbose] > │ ()                                                                           │
00:02:25 #18438 [Verbose] > │                                                                              │
00:02:25 #18439 [Verbose] > │                                                                              │
00:02:25 #18440 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:25 #18441 [Verbose] >
00:02:25 #18442 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:25 #18443 [Verbose] > // // test
00:02:25 #18444 [Verbose] >
00:02:25 #18445 [Verbose] > inl baseball_forces () =
00:02:25 #18446 [Verbose] >     inl area = pi * (0.074 / 2) ** 2
00:02:25 #18447 [Verbose] >     [[
00:02:25 #18448 [Verbose] >         earth_surface_gravity
00:02:25 #18449 [Verbose] >         air_resistance 0.3 1.225 area
00:02:25 #18450 [Verbose] >     ]]
00:02:25 #18451 [Verbose] >
00:02:25 #18452 [Verbose] > inl baseball_trajectory dt v0 theta_deg =
00:02:25 #18453 [Verbose] >     inl theta_rad = theta_deg * pi / 180
00:02:25 #18454 [Verbose] >     inl vy0 = v0 * cos theta_rad
00:02:25 #18455 [Verbose] >     inl vz0 = v0 * sin theta_rad
00:02:25 #18456 [Verbose] >     inl initial_state =
00:02:25 #18457 [Verbose] >         particle_state {
00:02:25 #18458 [Verbose] >             mass = 0.145
00:02:25 #18459 [Verbose] >             charge = 0
00:02:25 #18460 [Verbose] >             time = 0
00:02:25 #18461 [Verbose] >             pos_vec = zero_vec ()
00:02:25 #18462 [Verbose] >             velocity = vec 0 vy0 vz0
00:02:25 #18463 [Verbose] >         }
00:02:25 #18464 [Verbose] >     states_ps (euler_cromer_ps dt) (baseball_forces ()) initial_state
00:02:25 #18465 [Verbose] >     >> Some
00:02:25 #18466 [Verbose] >     |> z_ge0
00:02:25 #18467 [Verbose] >     |> trajectory
00:02:25 #18468 [Verbose] >
00:02:25 #18469 [Verbose] > inl baseball_range dt v0 theta_deg =
00:02:25 #18470 [Verbose] >     baseball_trajectory dt v0 theta_deg
00:02:25 #18471 [Verbose] >     |> listm.fold (fun _ (y, _) => y) 0
00:02:25 #18472 [Verbose] >
00:02:25 #18473 [Verbose] > inl x : a _ f64 = am'.init_series 10 80 1
00:02:25 #18474 [Verbose] > inl y = x |> am.map (baseball_range 0.01 45)
00:02:25 #18475 [Verbose] > "range for a baseball hit at 45 m/s",
00:02:25 #18476 [Verbose] > "angle above horizontal (degrees)",
00:02:25 #18477 [Verbose] > "",
00:02:25 #18478 [Verbose] > ;[[ "horizontal range (m)", x, y ]]
00:02:26 #18479 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-5514-1418-1bea35801af6/main.spi
00:02:26 #18480 [Verbose] >
00:02:26 #18481 [Verbose] > ╭─[ 883.13ms - return value ]──────────────────────────────────────────────────╮
00:02:26 #18482 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480"                          │
00:02:26 #18483 [Verbose] > │ xmlns="http://www.w3.org/2000/svg">                                          │
00:02:26 #18484 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414"        │
00:02:26 #18485 [Verbose] > │ stroke="none"/>                                                              │
00:02:26 #18486 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle"                        │
00:02:26 #18487 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1"            │
00:02:26 #18488 [Verbose] > │ fill="#FFFFFF">                                                              │
00:02:26 #18489 [Verbose] > │ range for a baseball hit at 45 m/s                                           │
00:02:26 #18490 [Verbose] > │ </text>                                                                      │
00:02:26 #18491 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="55" y1="424" x2="55" │
00:02:26 #18492 [Verbose] > │ y2="75"/>                                                                    │
00:02:26 #18493 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="62" y1="424" x2="62" │
00:02:26 #18494 [Verbose] > │ y2="75"/>                                                                    │
00:02:26 #18495 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:02:26 #18496 [Verbose] > │ y2="75"/>                                                                    │
00:02:26 #18497 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="77" y1="424" x2="77" │
00:02:26 #18498 [Verbose] > │ y2="75"/>                                                                    │
00:02:26 #18499 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="...                         │
00:02:26 #18500 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:26 #18501 [Verbose] >
00:02:26 #18502 [Verbose] > ╭─[ 886.96ms - stdout ]────────────────────────────────────────────────────────╮
00:02:26 #18503 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │
00:02:26 #18504 [Verbose] > │ and UH0 =                                                                    │
00:02:26 #18505 [Verbose] > │     | UH0_0 of float * float * float * float * float * float * float * float │
00:02:26 #18506 [Verbose] > │ * float * UH0                                                                │
00:02:26 #18507 [Verbose] > │     | UH0_1                                                                  │
00:02:26 #18508 [Verbose] > │ and UH1 =                                                                    │
00:02:26 #18509 [Verbose] > │     | UH1_0 of float * float * UH1                                           │
00:02:26 #18510 [Verbose] > │     | UH1_1                                                                  │
00:02:26 #18511 [Verbose] > │ let rec method1 (v0 : Mut0) : bool =                                         │
00:02:26 #18512 [Verbose] > │     let v1 : int32 = v0.l0                                                   │
00:02:26 #18513 [Verbose] > │     let v2 : bool = v1 < 71                                                  │
00:02:26 #18514 [Verbose] > │     v2                                                                       │
00:02:26 #18515 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool =                                 │
00:02:26 #18516 [Verbose] > │     let v2 : int32 = v1.l0                                                   │
00:02:26 #18517 [Verbose] > │     let v3 : bool = v2 < v0                                                  │
00:02:26 #18518 [Verbose] > │     v3                                                                       │
00:02:26 #18519 [Verbose] > │ and method4 (v0 : float, v1 : float, v2 : float, v3 : float, v4 : float, v5  │
00:02:26 #18520 [Verbose] > │ : float, v6 : float, v7 : float, v8 : float, v9 : int32) : struct (float *   │
00:02:26 #18521 [Verbose] > │ float * float * float * float * float * float * float * float) =             │
00:02:26 #18522 [Verbose] > │     let v10 : bool = v9 <= 0                                                 │
00:02:26 #18523 [Verbose] > │     if v10 then                                                              │
00:02:26 #18524 [Verbose] > │         struct (v0, v1, v2, v3, v4, v5, v6, v7, v8)                          │
00:02:26 #18525 [Verbose] > │     else                                                                     │
00:02:26 #18526 [Verbose] > │         let v11 : float = v6 * v6                                            │
00:02:26 #18527 [Verbose] > │         let v12 : float = v7 * v7                                            │
00:02:26 #18528 [Verbose] > │         let v13 : float = v11 + v12                                          │
00:02:26 #18529 [Verbose] > │         let v14 : float = v8 * v8                                            │
00:02:26 #18530 [Verbose] > │         let v15 : float = v13 + v14                                          │
00:02:26 #18531 [Verbose] > │         let v16 : float = sqrt v15                                           │
00:02:26 #18532 [Verbose] > │         let v17 : float = -0.0007902794129829633 * v16                       │
00:02:26 #18533 [Verbose] > │         let v18 : float = v17 * v6                                           │
00:02:26 #18534 [Verbose] > │         let v19 : float = v17 * v7                                           │
00:02:26 #18535 [Verbose] > │         let v20 : float = v17 * v8                                           │
00:02:26 #18536 [Verbose] > │         let v21 : float =  -v1                                               │
00:02:26 #18537 [Verbose] > │         let v22 : float = v21 * 9.80665                                      │
00:02:26 #18538 [Verbose] > │         let v23 : float = v22 * 0.0                                          │
00:02:26 #18539 [Verbose] > │         let v24 : float = v23 + v18                                          │
00:02:26 #18540 [Verbose] > │         let v25 : float = v23 + v19                                          │
00:02:26 #18541 [Verbose] > │         let v26 : float = v22 + v20                                          │
00:02:26 #18542 [Verbose] > │         let v27 : float = v24 / v1                                           │
00:02:26 #18543 [Verbose] > │         let v28 : float = v25 / v1                                           │
00:02:26 #18544 [Verbose] > │         let v29 : float = v26 / v1                                           │
00:02:26 #18545 [Verbose] > │         let v30 : float = 0.01 * v27                                         │
00:02:26 #18546 [Verbose] > │         let v31 : float = 0.01 * v28                                         │
00:02:26 #18547 [Verbose] > │         let v32 : float = 0.01 * v29                                         │
00:02:26 #18548 [Verbose] > │         let v33 : float = v6 + v30                                           │
00:02:26 #18549 [Verbose] > │         let v34 : float = v7 + v31                                           │
00:02:26 #18550 [Verbose] > │         let v35 : float = v8 + v32                                           │
00:02:26 #18551 [Verbose] > │         let v36 : float = v5 + 0.01                                          │
00:02:26 #18552 [Verbose] > │         let v37 : float = 0.01 * v33                                         │
00:02:26 #18553 [Verbose] > │         let v38 : float = 0.01 * v34                                         │
00:02:26 #18554 [Verbose] > │         let v39 : float = 0.01 * v35                                         │
00:02:26 #18555 [Verbose] > │         let v40 : float = v2 + v37                                           │
00:02:26 #18556 [Verbose] > │         let v41 : float = v3 + v38                                           │
00:02:26 #18557 [Verbose] > │         let v42 : float = v4 + v39                                           │
00:02:26 #18558 [Verbose] > │         let v43 : int32 = v9 - 1                                             │
00:02:26 #18559 [Verbose] > │         method4(v0, v1, v40, v41, v42, v36, v33, v34, v35, v43)              │
00:02:26 #18560 [Verbose] > │ and method5 (v0 : UH0, v1 : UH0) : UH0 =                                     │
00:02:26 #18561 [Verbose] > │     match v0 with                                                            │
00:02:26 #18562 [Verbose] > │     | UH0_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *)          │
00:02:26 #18563 [Verbose] > │         let v12 : UH0 = UH0_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v1)       │
00:02:26 #18564 [Verbose] > │         method5(v11, v12)                                                    │
00:02:26 #18565 [Verbose] > │     | UH0_1 -> (* Nil *)                                                     │
00:02:26 #18566 [Verbose] > │         v1                                                                   │
00:02:26 #18567 [Verbose] > │ and method3 (v0 : float, v1 : float, v2 : UH0, v3 : int32) : UH0 =           │
00:02:26 #18568 [Verbose] > │     let v4 : float = 0.0                                                     │
00:02:26 #18569 [Verbose] > │     let v5 : float = 0.145                                                   │
00:02:26 #18570 [Verbose] > │     let v6 : float = 0.0                                                     │
00:02:26 #18571 [Verbose] > │     let v7 : float = 0.0                                                     │
00:02:26 #18572 [Verbose] > │     let v8 : float = 0.0                                                     │
00:02:26 #18573 [Verbose] > │     let v9 : float = 0.0                                                     │
00:02:26 #18574 [Verbose] > │     let v10 : float = 0.0                                                    │
00:02:26 #18575 [Verbose] > │     let struct (v11 : float, v12 : float, v13 : float, v14 : float, v15 :    │
00:02:26 #18576 [Verbose] > │ float, v16 : float, v17 : float, v18 : float, v19 : float) = method4(v4, v5, │
00:02:26 #18577 [Verbose] > │ v6, v7, v8, v9, v10, v0, v1, v3)                                             │
00:02:26 #18578 [Verbose] > │     let v20 : bool = v15 >= 0.0                                              │
00:02:26 #18579 [Verbose] > │     if v20 then                                                              │
00:02:26 #18580 [Verbose] > │         let v21 : UH0 = UH0_0(v11, v12, v13, v14, v15, v16, v17, v18, v19,   │
00:02:26 #18581 [Verbose] > │ v2)                                                                          │
00:02:26 #18582 [Verbose] > │         let v22 : int32 = v3 + 1                                             │
00:02:26 #18583 [Verbose] > │         method3(v0, v1, v21, v22)                                            │
00:02:26 #18584 [Verbose] > │     else                                                                     │
00:02:26 #18585 [Verbose] > │         let v24 : UH0 = UH0_1                                                │
00:02:26 #18586 [Verbose] > │         method5(v2, v24)                                                     │
00:02:26 #18587 [Verbose] > │ and method6 (v0 : UH0, v1 : UH1) : UH1 =                                     │
00:02:26 #18588 [Verbose] > │     match v0 with                                                            │
00:02:26 #18589 [Verbose] > │     | UH0_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *)          │
00:02:26 #18590 [Verbose] > │         let v12 : UH1 = method6(v11, v1)                                     │
00:02:26 #18591 [Verbose] > │         UH1_0(v5, v6, v12)                                                   │
00:02:26 #18592 [Verbose] > │     | UH0_1 -> (* Nil *)                                                     │
00:02:26 #18593 [Verbose] > │         v1                                                                   │
00:02:26 #18594 [Verbose] > │ and method7 (v0 : UH1, v1 : float) : float =                                 │
00:02:26 #18595 [Verbose] > │     match v0 with                                                            │
00:02:26 #18596 [Verbose] > │     | UH1_0(v2, v3, v4) -> (* Cons *)                                        │
00:02:26 #18597 [Verbose] > │         method7(v4, v2)                                                      │
00:02:26 #18598 [Verbose] > │     | UH1_1 -> (* Nil *)                                                     │
00:02:26 #18599 [Verbose] > │         v1                                                                   │
00:02:26 #18600 [Verbose] > │ and method8 (v0 : (struct (string * (float []) * (float [])) [])) : (struct  │
00:02:26 #18601 [Verbose] > │ (string * (float []) * (float [])) []) =                                     │
00:02:26 #18602 [Verbose] > │     v0                                                                       │
00:02:26 #18603 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:02:26 #18604 [Verbose] > │ []) * (float [])) [])) =                                                     │
00:02:26 #18605 [Verbose] > │     let v0 : (float []) = Array.zeroCreate<float> (71)                       │
00:02:26 #18606 [Verbose] > │     let v1 : Mut0 = {l0 = 0} : Mut0                                          │
00:02:26 #18607 [Verbose] > │     while method1(v1) do                                                     │
00:02:26 #18608 [Verbose] > │         let v3 : int32 = v1.l0                                               │
00:02:26 #18609 [Verbose] > │         let v4 : float = float v3                                            │
00:02:26 #18610 [Verbose] > │         let v5 : float = 10.0 + v4                                           │
00:02:26 #18611 [Verbose] > │         v0.[int v3] <- v5                                                    │
00:02:26 #18612 [Verbose] > │         let v6 : int32 = v3 + 1                                              │
00:02:26 #18613 [Verbose] > │         v1.l0 <- v6                                                          │
00:02:26 #18614 [Verbose] > │         ()                                                                   │
00:02:26 #18615 [Verbose] > │     let v7 : int32 = v0.Length                                               │
00:02:26 #18616 [Verbose] > │     let v8 : (float []) = Array.zeroCreate<float> (v7)                       │
00:02:26 #18617 [Verbose] > │     let v9 : Mut0 = {l0 = 0} : Mut0                                          │
00:02:26 #18618 [Verbose] > │     while method2(v7, v9) do                                                 │
00:02:26 #18619 [Verbose] > │         let v11 : int32 = v9.l0                                              │
00:02:26 #18620 [Verbose] > │         let v12 : float = v0.[int v11]                                       │
00:02:26 #18621 [Verbose] > │         let v13 : float = v12 * 3.141592653589793                            │
00:02:26 #18622 [Verbose] > │         let v14 : float = v13 / 180.0                                        │
00:02:26 #18623 [Verbose] > │         let v15 : float = cos v14                                            │
00:02:26 #18624 [Verbose] > │         let v16 : float = 45.0 * v15                                         │
00:02:26 #18625 [Verbose] > │         let v17 : float = sin v14                                            │
00:02:26 #18626 [Verbose] > │         let v18 : float = 45.0 * v17                                         │
00:02:26 #18627 [Verbose] > │         let v19 : UH0 = UH0_1                                                │
00:02:26 #18628 [Verbose] > │         let v20 : int32 = 0                                                  │
00:02:26 #18629 [Verbose] > │         let v21 : UH0 = method3(v16, v18, v19, v20)                          │
00:02:26 #18630 [Verbose] > │         let v22 : UH1 = UH1_1                                                │
00:02:26 #18631 [Verbose] > │         let v23 : UH1 = method6(v21, v22)                                    │
00:02:26 #18632 [Verbose] > │         let v24 : float = 0.0                                                │
00:02:26 #18633 [Verbose] > │         let v25 : float = method7(v23, v24)                                  │
00:02:26 #18634 [Verbose] > │         v8.[int v11] <- v25                                                  │
00:02:26 #18635 [Verbose] > │         let v26 : int32 = v11 + 1                                            │
00:02:26 #18636 [Verbose] > │         v9.l0 <- v26                                                         │
00:02:26 #18637 [Verbose] > │         ()                                                                   │
00:02:26 #18638 [Verbose] > │     let v27 : string = "horizontal range (m)"                                │
00:02:26 #18639 [Verbose] > │     let v28 : (struct (string * (float []) * (float [])) []) = [|struct      │
00:02:26 #18640 [Verbose] > │ (v27, v0, v8)|]                                                              │
00:02:26 #18641 [Verbose] > │     let v29 : (struct (string * (float []) * (float [])) []) = method8(v28)  │
00:02:26 #18642 [Verbose] > │     let v30 : string = "range for a baseball hit at 45 m/s"                  │
00:02:26 #18643 [Verbose] > │     let v31 : string = "angle above horizontal (degrees)"                    │
00:02:26 #18644 [Verbose] > │     let v32 : string = ""                                                    │
00:02:26 #18645 [Verbose] > │     struct (v30, v31, v32, v29)                                              │
00:02:26 #18646 [Verbose] > │ method0()                                                                    │
00:02:26 #18647 [Verbose] > │                                                                              │
00:02:26 #18648 [Verbose] > │                                                                              │
00:02:26 #18649 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:26 #18650 [Verbose] >
00:02:26 #18651 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:26 #18652 [Verbose] > // // test
00:02:26 #18653 [Verbose] >
00:02:26 #18654 [Verbose] > inl best_angle (min, max) =
00:02:26 #18655 [Verbose] >     let rec loop theta_deg (best_range, best_theta_deg) =
00:02:26 #18656 [Verbose] >         if theta_deg > max
00:02:26 #18657 [Verbose] >         then best_range, best_theta_deg
00:02:26 #18658 [Verbose] >         else
00:02:26 #18659 [Verbose] >             inl range = baseball_range 0.01 45 theta_deg
00:02:26 #18660 [Verbose] >             loop
00:02:26 #18661 [Verbose] >                 (theta_deg + 1)
00:02:26 #18662 [Verbose] >                 (if range > best_range
00:02:26 #18663 [Verbose] >                     then range, theta_deg
00:02:26 #18664 [Verbose] >                     else best_range, best_theta_deg)
00:02:26 #18665 [Verbose] >     loop min (0f64, min)
00:02:26 #18666 [Verbose] >
00:02:26 #18667 [Verbose] > best_angle (30f64, 60f64)
00:02:26 #18668 [Verbose] > |> _assert_eq (116.77499158246208, 41)
00:02:26 #18669 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-5603-0360-03b848f76b29/main.spi
00:02:27 #18670 [Verbose] >
00:02:27 #18671 [Verbose] > ╭─[ 489.88ms - stdout ]────────────────────────────────────────────────────────╮
00:02:27 #18672 [Verbose] > │ type UH0 =                                                                   │
00:02:27 #18673 [Verbose] > │     | UH0_0 of float * float * float * float * float * float * float * float │
00:02:27 #18674 [Verbose] > │ * float * UH0                                                                │
00:02:27 #18675 [Verbose] > │     | UH0_1                                                                  │
00:02:27 #18676 [Verbose] > │ and UH1 =                                                                    │
00:02:27 #18677 [Verbose] > │     | UH1_0 of float * float * UH1                                           │
00:02:27 #18678 [Verbose] > │     | UH1_1                                                                  │
00:02:27 #18679 [Verbose] > │ let rec method3 (v0 : float, v1 : float, v2 : float, v3 : float, v4 : float, │
00:02:27 #18680 [Verbose] > │ v5 : float, v6 : float, v7 : float, v8 : float, v9 : int32) : struct (float  │
00:02:27 #18681 [Verbose] > │ * float * float * float * float * float * float * float * float) =           │
00:02:27 #18682 [Verbose] > │     let v10 : bool = v9 <= 0                                                 │
00:02:27 #18683 [Verbose] > │     if v10 then                                                              │
00:02:27 #18684 [Verbose] > │         struct (v0, v1, v2, v3, v4, v5, v6, v7, v8)                          │
00:02:27 #18685 [Verbose] > │     else                                                                     │
00:02:27 #18686 [Verbose] > │         let v11 : float = v6 * v6                                            │
00:02:27 #18687 [Verbose] > │         let v12 : float = v7 * v7                                            │
00:02:27 #18688 [Verbose] > │         let v13 : float = v11 + v12                                          │
00:02:27 #18689 [Verbose] > │         let v14 : float = v8 * v8                                            │
00:02:27 #18690 [Verbose] > │         let v15 : float = v13 + v14                                          │
00:02:27 #18691 [Verbose] > │         let v16 : float = sqrt v15                                           │
00:02:27 #18692 [Verbose] > │         let v17 : float = -0.0007902794129829633 * v16                       │
00:02:27 #18693 [Verbose] > │         let v18 : float = v17 * v6                                           │
00:02:27 #18694 [Verbose] > │         let v19 : float = v17 * v7                                           │
00:02:27 #18695 [Verbose] > │         let v20 : float = v17 * v8                                           │
00:02:27 #18696 [Verbose] > │         let v21 : float =  -v1                                               │
00:02:27 #18697 [Verbose] > │         let v22 : float = v21 * 9.80665                                      │
00:02:27 #18698 [Verbose] > │         let v23 : float = v22 * 0.0                                          │
00:02:27 #18699 [Verbose] > │         let v24 : float = v23 + v18                                          │
00:02:27 #18700 [Verbose] > │         let v25 : float = v23 + v19                                          │
00:02:27 #18701 [Verbose] > │         let v26 : float = v22 + v20                                          │
00:02:27 #18702 [Verbose] > │         let v27 : float = v24 / v1                                           │
00:02:27 #18703 [Verbose] > │         let v28 : float = v25 / v1                                           │
00:02:27 #18704 [Verbose] > │         let v29 : float = v26 / v1                                           │
00:02:27 #18705 [Verbose] > │         let v30 : float = 0.01 * v27                                         │
00:02:27 #18706 [Verbose] > │         let v31 : float = 0.01 * v28                                         │
00:02:27 #18707 [Verbose] > │         let v32 : float = 0.01 * v29                                         │
00:02:27 #18708 [Verbose] > │         let v33 : float = v6 + v30                                           │
00:02:27 #18709 [Verbose] > │         let v34 : float = v7 + v31                                           │
00:02:27 #18710 [Verbose] > │         let v35 : float = v8 + v32                                           │
00:02:27 #18711 [Verbose] > │         let v36 : float = v5 + 0.01                                          │
00:02:27 #18712 [Verbose] > │         let v37 : float = 0.01 * v33                                         │
00:02:27 #18713 [Verbose] > │         let v38 : float = 0.01 * v34                                         │
00:02:27 #18714 [Verbose] > │         let v39 : float = 0.01 * v35                                         │
00:02:27 #18715 [Verbose] > │         let v40 : float = v2 + v37                                           │
00:02:27 #18716 [Verbose] > │         let v41 : float = v3 + v38                                           │
00:02:27 #18717 [Verbose] > │         let v42 : float = v4 + v39                                           │
00:02:27 #18718 [Verbose] > │         let v43 : int32 = v9 - 1                                             │
00:02:27 #18719 [Verbose] > │         method3(v0, v1, v40, v41, v42, v36, v33, v34, v35, v43)              │
00:02:27 #18720 [Verbose] > │ and method4 (v0 : UH0, v1 : UH0) : UH0 =                                     │
00:02:27 #18721 [Verbose] > │     match v0 with                                                            │
00:02:27 #18722 [Verbose] > │     | UH0_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *)          │
00:02:27 #18723 [Verbose] > │         let v12 : UH0 = UH0_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v1)       │
00:02:27 #18724 [Verbose] > │         method4(v11, v12)                                                    │
00:02:27 #18725 [Verbose] > │     | UH0_1 -> (* Nil *)                                                     │
00:02:27 #18726 [Verbose] > │         v1                                                                   │
00:02:27 #18727 [Verbose] > │ and method2 (v0 : float, v1 : float, v2 : UH0, v3 : int32) : UH0 =           │
00:02:27 #18728 [Verbose] > │     let v4 : float = 0.0                                                     │
00:02:27 #18729 [Verbose] > │     let v5 : float = 0.145                                                   │
00:02:27 #18730 [Verbose] > │     let v6 : float = 0.0                                                     │
00:02:27 #18731 [Verbose] > │     let v7 : float = 0.0                                                     │
00:02:27 #18732 [Verbose] > │     let v8 : float = 0.0                                                     │
00:02:27 #18733 [Verbose] > │     let v9 : float = 0.0                                                     │
00:02:27 #18734 [Verbose] > │     let v10 : float = 0.0                                                    │
00:02:27 #18735 [Verbose] > │     let struct (v11 : float, v12 : float, v13 : float, v14 : float, v15 :    │
00:02:27 #18736 [Verbose] > │ float, v16 : float, v17 : float, v18 : float, v19 : float) = method3(v4, v5, │
00:02:27 #18737 [Verbose] > │ v6, v7, v8, v9, v10, v0, v1, v3)                                             │
00:02:27 #18738 [Verbose] > │     let v20 : bool = v15 >= 0.0                                              │
00:02:27 #18739 [Verbose] > │     if v20 then                                                              │
00:02:27 #18740 [Verbose] > │         let v21 : UH0 = UH0_0(v11, v12, v13, v14, v15, v16, v17, v18, v19,   │
00:02:27 #18741 [Verbose] > │ v2)                                                                          │
00:02:27 #18742 [Verbose] > │         let v22 : int32 = v3 + 1                                             │
00:02:27 #18743 [Verbose] > │         method2(v0, v1, v21, v22)                                            │
00:02:27 #18744 [Verbose] > │     else                                                                     │
00:02:27 #18745 [Verbose] > │         let v24 : UH0 = UH0_1                                                │
00:02:27 #18746 [Verbose] > │         method4(v2, v24)                                                     │
00:02:27 #18747 [Verbose] > │ and method5 (v0 : UH0, v1 : UH1) : UH1 =                                     │
00:02:27 #18748 [Verbose] > │     match v0 with                                                            │
00:02:27 #18749 [Verbose] > │     | UH0_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *)          │
00:02:27 #18750 [Verbose] > │         let v12 : UH1 = method5(v11, v1)                                     │
00:02:27 #18751 [Verbose] > │         UH1_0(v5, v6, v12)                                                   │
00:02:27 #18752 [Verbose] > │     | UH0_1 -> (* Nil *)                                                     │
00:02:27 #18753 [Verbose] > │         v1                                                                   │
00:02:27 #18754 [Verbose] > │ and method6 (v0 : UH1, v1 : float) : float =                                 │
00:02:27 #18755 [Verbose] > │     match v0 with                                                            │
00:02:27 #18756 [Verbose] > │     | UH1_0(v2, v3, v4) -> (* Cons *)                                        │
00:02:27 #18757 [Verbose] > │         method6(v4, v2)                                                      │
00:02:27 #18758 [Verbose] > │     | UH1_1 -> (* Nil *)                                                     │
00:02:27 #18759 [Verbose] > │         v1                                                                   │
00:02:27 #18760 [Verbose] > │ and method1 (v0 : float, v1 : float, v2 : float) : struct (float * float) =  │
00:02:27 #18761 [Verbose] > │     let v3 : bool = v0 > 60.0                                                │
00:02:27 #18762 [Verbose] > │     if v3 then                                                               │
00:02:27 #18763 [Verbose] > │         struct (v2, v1)                                                      │
00:02:27 #18764 [Verbose] > │     else                                                                     │
00:02:27 #18765 [Verbose] > │         let v4 : float = v0 * 3.141592653589793                              │
00:02:27 #18766 [Verbose] > │         let v5 : float = v4 / 180.0                                          │
00:02:27 #18767 [Verbose] > │         let v6 : float = cos v5                                              │
00:02:27 #18768 [Verbose] > │         let v7 : float = 45.0 * v6                                           │
00:02:27 #18769 [Verbose] > │         let v8 : float = sin v5                                              │
00:02:27 #18770 [Verbose] > │         let v9 : float = 45.0 * v8                                           │
00:02:27 #18771 [Verbose] > │         let v10 : UH0 = UH0_1                                                │
00:02:27 #18772 [Verbose] > │         let v11 : int32 = 0                                                  │
00:02:27 #18773 [Verbose] > │         let v12 : UH0 = method2(v7, v9, v10, v11)                            │
00:02:27 #18774 [Verbose] > │         let v13 : UH1 = UH1_1                                                │
00:02:27 #18775 [Verbose] > │         let v14 : UH1 = method5(v12, v13)                                    │
00:02:27 #18776 [Verbose] > │         let v15 : float = 0.0                                                │
00:02:27 #18777 [Verbose] > │         let v16 : float = method6(v14, v15)                                  │
00:02:27 #18778 [Verbose] > │         let v17 : float = v0 + 1.0                                           │
00:02:27 #18779 [Verbose] > │         let v18 : bool = v16 > v2                                            │
00:02:27 #18780 [Verbose] > │         let struct (v19 : float, v20 : float) =                              │
00:02:27 #18781 [Verbose] > │             if v18 then                                                      │
00:02:27 #18782 [Verbose] > │                 struct (v16, v0)                                             │
00:02:27 #18783 [Verbose] > │             else                                                             │
00:02:27 #18784 [Verbose] > │                 struct (v2, v1)                                              │
00:02:27 #18785 [Verbose] > │         method1(v17, v20, v19)                                               │
00:02:27 #18786 [Verbose] > │ and method7 (v0 : bool) : bool =                                             │
00:02:27 #18787 [Verbose] > │     v0                                                                       │
00:02:27 #18788 [Verbose] > │ and method0 () : unit =                                                      │
00:02:27 #18789 [Verbose] > │     let v0 : float = 30.0                                                    │
00:02:27 #18790 [Verbose] > │     let v1 : float = 0.0                                                     │
00:02:27 #18791 [Verbose] > │     let v2 : float = 30.0                                                    │
00:02:27 #18792 [Verbose] > │     let struct (v3 : float, v4 : float) = method1(v0, v2, v1)                │
00:02:27 #18793 [Verbose] > │     let v5 : string = $"%A{struct (v3, v4)}"                                 │
00:02:27 #18794 [Verbose] > │     System.Console.WriteLine v5                                              │
00:02:27 #18795 [Verbose] > │     let v6 : bool = v3 = 116.77499158246208                                  │
00:02:27 #18796 [Verbose] > │     let v8 : bool =                                                          │
00:02:27 #18797 [Verbose] > │         if v6 then                                                           │
00:02:27 #18798 [Verbose] > │             let v7 : bool = v4 = 41.0                                        │
00:02:27 #18799 [Verbose] > │             v7                                                               │
00:02:27 #18800 [Verbose] > │         else                                                                 │
00:02:27 #18801 [Verbose] > │             false                                                            │
00:02:27 #18802 [Verbose] > │     let v10 : bool =                                                         │
00:02:27 #18803 [Verbose] > │         if v8 then                                                           │
00:02:27 #18804 [Verbose] > │             true                                                             │
00:02:27 #18805 [Verbose] > │         else                                                                 │
00:02:27 #18806 [Verbose] > │             method7(v8)                                                      │
00:02:27 #18807 [Verbose] > │     let v11 : string = $"__expect / actual: %A{struct (v3, v4)} / expected:  │
00:02:27 #18808 [Verbose] > │ %A{struct (116.77499158246208, 41.0)}"                                       │
00:02:27 #18809 [Verbose] > │     let v12 : bool = v10 = false                                             │
00:02:27 #18810 [Verbose] > │     if v12 then                                                              │
00:02:27 #18811 [Verbose] > │         failwith<unit> v11                                                   │
00:02:27 #18812 [Verbose] > │ method0()                                                                    │
00:02:27 #18813 [Verbose] > │                                                                              │
00:02:27 #18814 [Verbose] > │ struct (116.7749916, 41.0)                                                   │
00:02:27 #18815 [Verbose] > │                                                                              │
00:02:27 #18816 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:27 #18817 [Verbose] >
00:02:27 #18818 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:27 #18819 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:27 #18820 [Verbose] > │ ## relativity_ps                                                             │
00:02:27 #18821 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:27 #18822 [Verbose] >
00:02:27 #18823 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:27 #18824 [Verbose] > inl relativity_ps fs (st : particle_state) =
00:02:27 #18825 [Verbose] >     inl f_net = fs |> listm.map (fun f => f st) |> sum_vec
00:02:27 #18826 [Verbose] >     inl c = 299792458
00:02:27 #18827 [Verbose] >     inl u = st.velocity ^/ c
00:02:27 #18828 [Verbose] >     inl acc = sqrt (1 - (u <.> u)) *^ (f_net ^-^ (f_net <.> u) *^ u) ^/ st.mass
00:02:27 #18829 [Verbose] >     d_particle_state {
00:02:27 #18830 [Verbose] >         dmdt = 0
00:02:27 #18831 [Verbose] >         dqdt = 0
00:02:27 #18832 [Verbose] >         dtdt = 1
00:02:27 #18833 [Verbose] >         drdt = st.velocity
00:02:27 #18834 [Verbose] >         dvdt = acc
00:02:27 #18835 [Verbose] >     }
00:02:27 #18836 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-5653-5319-57d17a05db30/main.spi
00:02:27 #18837 [Verbose] >
00:02:27 #18838 [Verbose] > ╭─[ 124.38ms - stdout ]────────────────────────────────────────────────────────╮
00:02:27 #18839 [Verbose] > │ ()                                                                           │
00:02:27 #18840 [Verbose] > │                                                                              │
00:02:27 #18841 [Verbose] > │                                                                              │
00:02:27 #18842 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:27 #18843 [Verbose] >
00:02:27 #18844 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:27 #18845 [Verbose] > // // test
00:02:27 #18846 [Verbose] >
00:02:27 #18847 [Verbose] > inl year = 365.25 * 24 * 60 * 60
00:02:27 #18848 [Verbose] > inl c = 299792458
00:02:27 #18849 [Verbose] > inl ~method = runge_kutta_4 100000
00:02:27 #18850 [Verbose] > inl forces = [[ fun _ => 10 *^ i_hat () ]]
00:02:27 #18851 [Verbose] > inl (particle_state default_particle_state') = default_particle_state ()
00:02:27 #18852 [Verbose] > inl initial_state =
00:02:27 #18853 [Verbose] >     particle_state { default_particle_state' with
00:02:27 #18854 [Verbose] >         mass = 1
00:02:27 #18855 [Verbose] >     }
00:02:27 #18856 [Verbose] >
00:02:27 #18857 [Verbose] > inl newton_states = solver_ method (newton_second_ps forces) initial_state
00:02:27 #18858 [Verbose] > inl relativity_states = solver_ method (relativity_ps forces) initial_state
00:02:27 #18859 [Verbose] >
00:02:27 #18860 [Verbose] > inl newton_x, newton_y =
00:02:27 #18861 [Verbose] >     newton_states
00:02:27 #18862 [Verbose] >     >> Some
00:02:27 #18863 [Verbose] >     |> seq.take_while_ (fun (particle_state st) (_ : i32) => st.time <= year)
00:02:27 #18864 [Verbose] >     |> listm.map (fun (particle_state st) => st.time / year, st.velocity.x / c)
00:02:27 #18865 [Verbose] >     |> listm'.unzip
00:02:27 #18866 [Verbose] >
00:02:27 #18867 [Verbose] > inl _, relativity_y =
00:02:27 #18868 [Verbose] >     relativity_states
00:02:27 #18869 [Verbose] >     >> Some
00:02:27 #18870 [Verbose] >     |> seq.take_while_ (fun (particle_state st) (_ : i32) => st.time <= year)
00:02:27 #18871 [Verbose] >     |> listm.map (fun (particle_state st) => st.time / year, st.velocity.x / c)
00:02:27 #18872 [Verbose] >     |> listm'.unzip
00:02:27 #18873 [Verbose] >
00:02:27 #18874 [Verbose] > inl newton_x : a i32 _ = newton_x |> listm.toArray
00:02:27 #18875 [Verbose] > inl newton_y : a i32 _ = newton_y |> listm.toArray
00:02:27 #18876 [Verbose] > inl relativity_y : a i32 _ = relativity_y |> listm.toArray
00:02:27 #18877 [Verbose] >
00:02:27 #18878 [Verbose] > "response to a constant force",
00:02:27 #18879 [Verbose] > "time (years)",
00:02:27 #18880 [Verbose] > "velocity (multiples of c)",
00:02:27 #18881 [Verbose] > ;[[
00:02:27 #18882 [Verbose] >     "newtonian", newton_x, newton_y
00:02:27 #18883 [Verbose] >     "relativistic", newton_x, relativity_y
00:02:27 #18884 [Verbose] > ]]
00:02:27 #18885 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-5665-6572-6f071ec019f4/main.spi
00:02:27 #18886 [Verbose] >
00:02:27 #18887 [Verbose] > ╭─[ 455.93ms - return value ]──────────────────────────────────────────────────╮
00:02:27 #18888 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480"                          │
00:02:27 #18889 [Verbose] > │ xmlns="http://www.w3.org/2000/svg">                                          │
00:02:27 #18890 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414"        │
00:02:27 #18891 [Verbose] > │ stroke="none"/>                                                              │
00:02:27 #18892 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle"                        │
00:02:27 #18893 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1"            │
00:02:27 #18894 [Verbose] > │ fill="#FFFFFF">                                                              │
00:02:27 #18895 [Verbose] > │ response to a constant force                                                 │
00:02:27 #18896 [Verbose] > │ </text>                                                                      │
00:02:27 #18897 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="59" y1="424" x2="59" │
00:02:27 #18898 [Verbose] > │ y2="75"/>                                                                    │
00:02:27 #18899 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:02:27 #18900 [Verbose] > │ y2="75"/>                                                                    │
00:02:27 #18901 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="79" y1="424" x2="79" │
00:02:27 #18902 [Verbose] > │ y2="75"/>                                                                    │
00:02:27 #18903 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="89" y1="424" x2="89" │
00:02:27 #18904 [Verbose] > │ y2="75"/>                                                                    │
00:02:27 #18905 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1=...                   │
00:02:27 #18906 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:27 #18907 [Verbose] >
00:02:27 #18908 [Verbose] > ╭─[ 461.00ms - stdout ]────────────────────────────────────────────────────────╮
00:02:27 #18909 [Verbose] > │ type UH0 =                                                                   │
00:02:27 #18910 [Verbose] > │     | UH0_0 of float * float * float * float * float * float * float * float │
00:02:27 #18911 [Verbose] > │ * float * UH0                                                                │
00:02:27 #18912 [Verbose] > │     | UH0_1                                                                  │
00:02:27 #18913 [Verbose] > │ and UH1 =                                                                    │
00:02:27 #18914 [Verbose] > │     | UH1_0 of float * float * UH1                                           │
00:02:27 #18915 [Verbose] > │     | UH1_1                                                                  │
00:02:27 #18916 [Verbose] > │ and UH2 =                                                                    │
00:02:27 #18917 [Verbose] > │     | UH2_0 of float * UH2                                                   │
00:02:27 #18918 [Verbose] > │     | UH2_1                                                                  │
00:02:27 #18919 [Verbose] > │ let rec closure1 (v0 : (struct (float * float * float * float * float *      │
00:02:27 #18920 [Verbose] > │ float * float * float * float) -> struct (float * float * float * float *    │
00:02:27 #18921 [Verbose] > │ float * float * float * float * float))) struct (v1 : float, v2 : float, v3  │
00:02:27 #18922 [Verbose] > │ : float, v4 : float, v5 : float, v6 : float, v7 : float, v8 : float, v9 :    │
00:02:27 #18923 [Verbose] > │ float) : struct (float * float * float * float * float * float * float *     │
00:02:27 #18924 [Verbose] > │ float * float) =                                                             │
00:02:27 #18925 [Verbose] > │     let struct (v10 : float, v11 : float, v12 : float, v13 : float, v14 :    │
00:02:27 #18926 [Verbose] > │ float, v15 : float, v16 : float, v17 : float, v18 : float) = v0 struct (v1,  │
00:02:27 #18927 [Verbose] > │ v2, v3, v4, v5, v6, v7, v8, v9)                                              │
00:02:27 #18928 [Verbose] > │     let v19 : float = v15 * 50000.0                                          │
00:02:27 #18929 [Verbose] > │     let v20 : float = v6 + v19                                               │
00:02:27 #18930 [Verbose] > │     let v21 : float = 50000.0 * v12                                          │
00:02:27 #18931 [Verbose] > │     let v22 : float = 50000.0 * v13                                          │
00:02:27 #18932 [Verbose] > │     let v23 : float = 50000.0 * v14                                          │
00:02:27 #18933 [Verbose] > │     let v24 : float = v3 + v21                                               │
00:02:27 #18934 [Verbose] > │     let v25 : float = v4 + v22                                               │
00:02:27 #18935 [Verbose] > │     let v26 : float = v5 + v23                                               │
00:02:27 #18936 [Verbose] > │     let v27 : float = 50000.0 * v16                                          │
00:02:27 #18937 [Verbose] > │     let v28 : float = 50000.0 * v17                                          │
00:02:27 #18938 [Verbose] > │     let v29 : float = 50000.0 * v18                                          │
00:02:27 #18939 [Verbose] > │     let v30 : float = v7 + v27                                               │
00:02:27 #18940 [Verbose] > │     let v31 : float = v8 + v28                                               │
00:02:27 #18941 [Verbose] > │     let v32 : float = v9 + v29                                               │
00:02:27 #18942 [Verbose] > │     let struct (v33 : float, v34 : float, v35 : float, v36 : float, v37 :    │
00:02:27 #18943 [Verbose] > │ float, v38 : float, v39 : float, v40 : float, v41 : float) = v0 struct (v1,  │
00:02:27 #18944 [Verbose] > │ v2, v24, v25, v26, v20, v30, v31, v32)                                       │
00:02:27 #18945 [Verbose] > │     let v42 : float = v38 * 50000.0                                          │
00:02:27 #18946 [Verbose] > │     let v43 : float = v6 + v42                                               │
00:02:27 #18947 [Verbose] > │     let v44 : float = 50000.0 * v35                                          │
00:02:27 #18948 [Verbose] > │     let v45 : float = 50000.0 * v36                                          │
00:02:27 #18949 [Verbose] > │     let v46 : float = 50000.0 * v37                                          │
00:02:27 #18950 [Verbose] > │     let v47 : float = v3 + v44                                               │
00:02:27 #18951 [Verbose] > │     let v48 : float = v4 + v45                                               │
00:02:27 #18952 [Verbose] > │     let v49 : float = v5 + v46                                               │
00:02:27 #18953 [Verbose] > │     let v50 : float = 50000.0 * v39                                          │
00:02:27 #18954 [Verbose] > │     let v51 : float = 50000.0 * v40                                          │
00:02:27 #18955 [Verbose] > │     let v52 : float = 50000.0 * v41                                          │
00:02:27 #18956 [Verbose] > │     let v53 : float = v7 + v50                                               │
00:02:27 #18957 [Verbose] > │     let v54 : float = v8 + v51                                               │
00:02:27 #18958 [Verbose] > │     let v55 : float = v9 + v52                                               │
00:02:27 #18959 [Verbose] > │     let struct (v56 : float, v57 : float, v58 : float, v59 : float, v60 :    │
00:02:27 #18960 [Verbose] > │ float, v61 : float, v62 : float, v63 : float, v64 : float) = v0 struct (v1,  │
00:02:27 #18961 [Verbose] > │ v2, v47, v48, v49, v43, v53, v54, v55)                                       │
00:02:27 #18962 [Verbose] > │     let v65 : float = v61 * 100000.0                                         │
00:02:27 #18963 [Verbose] > │     let v66 : float = v6 + v65                                               │
00:02:27 #18964 [Verbose] > │     let v67 : float = 100000.0 * v58                                         │
00:02:27 #18965 [Verbose] > │     let v68 : float = 100000.0 * v59                                         │
00:02:27 #18966 [Verbose] > │     let v69 : float = 100000.0 * v60                                         │
00:02:27 #18967 [Verbose] > │     let v70 : float = v3 + v67                                               │
00:02:27 #18968 [Verbose] > │     let v71 : float = v4 + v68                                               │
00:02:27 #18969 [Verbose] > │     let v72 : float = v5 + v69                                               │
00:02:27 #18970 [Verbose] > │     let v73 : float = 100000.0 * v62                                         │
00:02:27 #18971 [Verbose] > │     let v74 : float = 100000.0 * v63                                         │
00:02:27 #18972 [Verbose] > │     let v75 : float = 100000.0 * v64                                         │
00:02:27 #18973 [Verbose] > │     let v76 : float = v7 + v73                                               │
00:02:27 #18974 [Verbose] > │     let v77 : float = v8 + v74                                               │
00:02:27 #18975 [Verbose] > │     let v78 : float = v9 + v75                                               │
00:02:27 #18976 [Verbose] > │     let struct (v79 : float, v80 : float, v81 : float, v82 : float, v83 :    │
00:02:27 #18977 [Verbose] > │ float, v84 : float, v85 : float, v86 : float, v87 : float) = v0 struct (v1,  │
00:02:27 #18978 [Verbose] > │ v2, v70, v71, v72, v66, v76, v77, v78)                                       │
00:02:27 #18979 [Verbose] > │     let v88 : float = v10 + v33                                              │
00:02:27 #18980 [Verbose] > │     let v89 : float = v11 + v34                                              │
00:02:27 #18981 [Verbose] > │     let v90 : float = v15 + v38                                              │
00:02:27 #18982 [Verbose] > │     let v91 : float = v12 + v35                                              │
00:02:27 #18983 [Verbose] > │     let v92 : float = v13 + v36                                              │
00:02:27 #18984 [Verbose] > │     let v93 : float = v14 + v37                                              │
00:02:27 #18985 [Verbose] > │     let v94 : float = v16 + v39                                              │
00:02:27 #18986 [Verbose] > │     let v95 : float = v17 + v40                                              │
00:02:27 #18987 [Verbose] > │     let v96 : float = v18 + v41                                              │
00:02:27 #18988 [Verbose] > │     let v97 : float = v88 + v33                                              │
00:02:27 #18989 [Verbose] > │     let v98 : float = v89 + v34                                              │
00:02:27 #18990 [Verbose] > │     let v99 : float = v90 + v38                                              │
00:02:27 #18991 [Verbose] > │     let v100 : float = v91 + v35                                             │
00:02:27 #18992 [Verbose] > │     let v101 : float = v92 + v36                                             │
00:02:27 #18993 [Verbose] > │     let v102 : float = v93 + v37                                             │
00:02:27 #18994 [Verbose] > │     let v103 : float = v94 + v39                                             │
00:02:27 #18995 [Verbose] > │     let v104 : float = v95 + v40                                             │
00:02:27 #18996 [Verbose] > │     let v105 : float = v96 + v41                                             │
00:02:27 #18997 [Verbose] > │     let v106 : float = v97 + v56                                             │
00:02:27 #18998 [Verbose] > │     let v107 : float = v98 + v57                                             │
00:02:27 #18999 [Verbose] > │     let v108 : float = v99 + v61                                             │
00:02:27 #19000 [Verbose] > │     let v109 : float = v100 + v58                                            │
00:02:27 #19001 [Verbose] > │     let v110 : float = v101 + v59                                            │
00:02:27 #19002 [Verbose] > │     let v111 : float = v102 + v60                                            │
00:02:27 #19003 [Verbose] > │     let v112 : float = v103 + v62                                            │
00:02:27 #19004 [Verbose] > │     let v113 : float = v104 + v63                                            │
00:02:27 #19005 [Verbose] > │     let v114 : float = v105 + v64                                            │
00:02:27 #19006 [Verbose] > │     let v115 : float = v106 + v56                                            │
00:02:27 #19007 [Verbose] > │     let v116 : float = v107 + v57                                            │
00:02:27 #19008 [Verbose] > │     let v117 : float = v108 + v61                                            │
00:02:27 #19009 [Verbose] > │     let v118 : float = v109 + v58                                            │
00:02:27 #19010 [Verbose] > │     let v119 : float = v110 + v59                                            │
00:02:27 #19011 [Verbose] > │     let v120 : float = v111 + v60                                            │
00:02:27 #19012 [Verbose] > │     let v121 : float = v112 + v62                                            │
00:02:27 #19013 [Verbose] > │     let v122 : float = v113 + v63                                            │
00:02:27 #19014 [Verbose] > │     let v123 : float = v114 + v64                                            │
00:02:27 #19015 [Verbose] > │     let v124 : float = v115 + v79                                            │
00:02:27 #19016 [Verbose] > │     let v125 : float = v116 + v80                                            │
00:02:27 #19017 [Verbose] > │     let v126 : float = v117 + v84                                            │
00:02:27 #19018 [Verbose] > │     let v127 : float = v118 + v81                                            │
00:02:27 #19019 [Verbose] > │     let v128 : float = v119 + v82                                            │
00:02:27 #19020 [Verbose] > │     let v129 : float = v120 + v83                                            │
00:02:27 #19021 [Verbose] > │     let v130 : float = v121 + v85                                            │
00:02:27 #19022 [Verbose] > │     let v131 : float = v122 + v86                                            │
00:02:27 #19023 [Verbose] > │     let v132 : float = v123 + v87                                            │
00:02:27 #19024 [Verbose] > │     let v133 : float = v126 * 16666.666666666668                             │
00:02:27 #19025 [Verbose] > │     let v134 : float = v6 + v133                                             │
00:02:27 #19026 [Verbose] > │     let v135 : float = 16666.666666666668 * v127                             │
00:02:27 #19027 [Verbose] > │     let v136 : float = 16666.666666666668 * v128                             │
00:02:27 #19028 [Verbose] > │     let v137 : float = 16666.666666666668 * v129                             │
00:02:27 #19029 [Verbose] > │     let v138 : float = v3 + v135                                             │
00:02:27 #19030 [Verbose] > │     let v139 : float = v4 + v136                                             │
00:02:27 #19031 [Verbose] > │     let v140 : float = v5 + v137                                             │
00:02:27 #19032 [Verbose] > │     let v141 : float = 16666.666666666668 * v130                             │
00:02:27 #19033 [Verbose] > │     let v142 : float = 16666.666666666668 * v131                             │
00:02:27 #19034 [Verbose] > │     let v143 : float = 16666.666666666668 * v132                             │
00:02:27 #19035 [Verbose] > │     let v144 : float = v7 + v141                                             │
00:02:27 #19036 [Verbose] > │     let v145 : float = v8 + v142                                             │
00:02:27 #19037 [Verbose] > │     let v146 : float = v9 + v143                                             │
00:02:27 #19038 [Verbose] > │     struct (v1, v2, v138, v139, v140, v134, v144, v145, v146)                │
00:02:27 #19039 [Verbose] > │ and closure0 () (v0 : (struct (float * float * float * float * float * float │
00:02:27 #19040 [Verbose] > │ * float * float * float) -> struct (float * float * float * float * float *  │
00:02:27 #19041 [Verbose] > │ float * float * float * float))) : (struct (float * float * float * float *  │
00:02:27 #19042 [Verbose] > │ float * float * float * float * float) -> struct (float * float * float *    │
00:02:27 #19043 [Verbose] > │ float * float * float * float * float * float)) =                            │
00:02:27 #19044 [Verbose] > │     closure1(v0)                                                             │
00:02:27 #19045 [Verbose] > │ and closure2 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4 : │
00:02:27 #19046 [Verbose] > │ float, v5 : float, v6 : float, v7 : float, v8 : float) : struct (float *     │
00:02:27 #19047 [Verbose] > │ float * float * float * float * float * float * float * float) =             │
00:02:27 #19048 [Verbose] > │     let v9 : float = 10.0 / v1                                               │
00:02:27 #19049 [Verbose] > │     let v10 : float = 0.0 / v1                                               │
00:02:27 #19050 [Verbose] > │     struct (0.0, 0.0, v6, v7, v8, 1.0, v9, v10, v10)                         │
00:02:27 #19051 [Verbose] > │ and closure3 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4 : │
00:02:27 #19052 [Verbose] > │ float, v5 : float, v6 : float, v7 : float, v8 : float) : struct (float *     │
00:02:27 #19053 [Verbose] > │ float * float * float * float * float * float * float * float) =             │
00:02:27 #19054 [Verbose] > │     let v9 : float = v6 / 299792458.0                                        │
00:02:27 #19055 [Verbose] > │     let v10 : float = v7 / 299792458.0                                       │
00:02:27 #19056 [Verbose] > │     let v11 : float = v8 / 299792458.0                                       │
00:02:27 #19057 [Verbose] > │     let v12 : float = v9 * v9                                                │
00:02:27 #19058 [Verbose] > │     let v13 : float = v10 * v10                                              │
00:02:27 #19059 [Verbose] > │     let v14 : float = v12 + v13                                              │
00:02:27 #19060 [Verbose] > │     let v15 : float = v11 * v11                                              │
00:02:27 #19061 [Verbose] > │     let v16 : float = v14 + v15                                              │
00:02:27 #19062 [Verbose] > │     let v17 : float = 1.0 - v16                                              │
00:02:27 #19063 [Verbose] > │     let v18 : float = sqrt v17                                               │
00:02:27 #19064 [Verbose] > │     let v19 : float = 10.0 * v9                                              │
00:02:27 #19065 [Verbose] > │     let v20 : float = 0.0 * v10                                              │
00:02:27 #19066 [Verbose] > │     let v21 : float = v19 + v20                                              │
00:02:27 #19067 [Verbose] > │     let v22 : float = 0.0 * v11                                              │
00:02:27 #19068 [Verbose] > │     let v23 : float = v21 + v22                                              │
00:02:27 #19069 [Verbose] > │     let v24 : float = v23 * v9                                               │
00:02:27 #19070 [Verbose] > │     let v25 : float = v23 * v10                                              │
00:02:27 #19071 [Verbose] > │     let v26 : float = v23 * v11                                              │
00:02:27 #19072 [Verbose] > │     let v27 : float = -1.0 * v24                                             │
00:02:27 #19073 [Verbose] > │     let v28 : float = -1.0 * v25                                             │
00:02:27 #19074 [Verbose] > │     let v29 : float = -1.0 * v26                                             │
00:02:27 #19075 [Verbose] > │     let v30 : float = 10.0 + v27                                             │
00:02:27 #19076 [Verbose] > │     let v31 : float = v18 * v30                                              │
00:02:27 #19077 [Verbose] > │     let v32 : float = v18 * v28                                              │
00:02:27 #19078 [Verbose] > │     let v33 : float = v18 * v29                                              │
00:02:27 #19079 [Verbose] > │     let v34 : float = v31 / v1                                               │
00:02:27 #19080 [Verbose] > │     let v35 : float = v32 / v1                                               │
00:02:27 #19081 [Verbose] > │     let v36 : float = v33 / v1                                               │
00:02:27 #19082 [Verbose] > │     struct (0.0, 0.0, v6, v7, v8, 1.0, v34, v35, v36)                        │
00:02:27 #19083 [Verbose] > │ and method2 (v0 : (struct (float * float * float * float * float * float *   │
00:02:27 #19084 [Verbose] > │ float * float * float) -> struct (float * float * float * float * float *    │
00:02:27 #19085 [Verbose] > │ float * float * float * float)), v1 : float, v2 : float, v3 : float, v4 :    │
00:02:27 #19086 [Verbose] > │ float, v5 : float, v6 : float, v7 : float, v8 : float, v9 : float, v10 :     │
00:02:27 #19087 [Verbose] > │ int32) : struct (float * float * float * float * float * float * float *     │
00:02:27 #19088 [Verbose] > │ float * float) =                                                             │
00:02:27 #19089 [Verbose] > │     let v11 : bool = v10 <= 0                                                │
00:02:27 #19090 [Verbose] > │     if v11 then                                                              │
00:02:27 #19091 [Verbose] > │         struct (v1, v2, v3, v4, v5, v6, v7, v8, v9)                          │
00:02:27 #19092 [Verbose] > │     else                                                                     │
00:02:27 #19093 [Verbose] > │         let struct (v12 : float, v13 : float, v14 : float, v15 : float, v16  │
00:02:27 #19094 [Verbose] > │ : float, v17 : float, v18 : float, v19 : float, v20 : float) = v0 struct     │
00:02:27 #19095 [Verbose] > │ (v1, v2, v3, v4, v5, v6, v7, v8, v9)                                         │
00:02:27 #19096 [Verbose] > │         let v21 : int32 = v10 - 1                                            │
00:02:27 #19097 [Verbose] > │         method2(v0, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21)        │
00:02:27 #19098 [Verbose] > │ and method3 (v0 : UH0, v1 : UH0) : UH0 =                                     │
00:02:27 #19099 [Verbose] > │     match v0 with                                                            │
00:02:27 #19100 [Verbose] > │     | UH0_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *)          │
00:02:27 #19101 [Verbose] > │         let v12 : UH0 = UH0_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v1)       │
00:02:27 #19102 [Verbose] > │         method3(v11, v12)                                                    │
00:02:27 #19103 [Verbose] > │     | UH0_1 -> (* Nil *)                                                     │
00:02:27 #19104 [Verbose] > │         v1                                                                   │
00:02:27 #19105 [Verbose] > │ and method1 (v0 : (struct (float * float * float * float * float * float *   │
00:02:27 #19106 [Verbose] > │ float * float * float) -> struct (float * float * float * float * float *    │
00:02:27 #19107 [Verbose] > │ float * float * float * float)), v1 : UH0, v2 : int32) : UH0 =               │
00:02:27 #19108 [Verbose] > │     let v3 : float = 0.0                                                     │
00:02:27 #19109 [Verbose] > │     let v4 : float = 1.0                                                     │
00:02:27 #19110 [Verbose] > │     let v5 : float = 0.0                                                     │
00:02:27 #19111 [Verbose] > │     let v6 : float = 0.0                                                     │
00:02:27 #19112 [Verbose] > │     let v7 : float = 0.0                                                     │
00:02:27 #19113 [Verbose] > │     let v8 : float = 0.0                                                     │
00:02:27 #19114 [Verbose] > │     let v9 : float = 0.0                                                     │
00:02:27 #19115 [Verbose] > │     let v10 : float = 0.0                                                    │
00:02:27 #19116 [Verbose] > │     let v11 : float = 0.0                                                    │
00:02:27 #19117 [Verbose] > │     let struct (v12 : float, v13 : float, v14 : float, v15 : float, v16 :    │
00:02:27 #19118 [Verbose] > │ float, v17 : float, v18 : float, v19 : float, v20 : float) = method2(v0, v3, │
00:02:27 #19119 [Verbose] > │ v4, v5, v6, v7, v8, v9, v10, v11, v2)                                        │
00:02:27 #19120 [Verbose] > │     let v21 : bool = v17 <= 31557600.0                                       │
00:02:27 #19121 [Verbose] > │     if v21 then                                                              │
00:02:27 #19122 [Verbose] > │         let v22 : UH0 = UH0_0(v12, v13, v14, v15, v16, v17, v18, v19, v20,   │
00:02:27 #19123 [Verbose] > │ v1)                                                                          │
00:02:27 #19124 [Verbose] > │         let v23 : int32 = v2 + 1                                             │
00:02:27 #19125 [Verbose] > │         method1(v0, v22, v23)                                                │
00:02:27 #19126 [Verbose] > │     else                                                                     │
00:02:27 #19127 [Verbose] > │         let v25 : UH0 = UH0_1                                                │
00:02:27 #19128 [Verbose] > │         method3(v1, v25)                                                     │
00:02:27 #19129 [Verbose] > │ and method4 (v0 : UH0, v1 : UH1) : UH1 =                                     │
00:02:27 #19130 [Verbose] > │     match v0 with                                                            │
00:02:27 #19131 [Verbose] > │     | UH0_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *)          │
00:02:27 #19132 [Verbose] > │         let v12 : UH1 = method4(v11, v1)                                     │
00:02:27 #19133 [Verbose] > │         let v13 : float = v7 / 31557600.0                                    │
00:02:27 #19134 [Verbose] > │         let v14 : float = v8 / 299792458.0                                   │
00:02:27 #19135 [Verbose] > │         UH1_0(v13, v14, v12)                                                 │
00:02:27 #19136 [Verbose] > │     | UH0_1 -> (* Nil *)                                                     │
00:02:27 #19137 [Verbose] > │         v1                                                                   │
00:02:27 #19138 [Verbose] > │ and method5 (v0 : UH1, v1 : UH2, v2 : UH2) : struct (UH2 * UH2) =            │
00:02:27 #19139 [Verbose] > │     match v0 with                                                            │
00:02:27 #19140 [Verbose] > │     | UH1_0(v3, v4, v5) -> (* Cons *)                                        │
00:02:27 #19141 [Verbose] > │         let v6 : UH2 = UH2_0(v3, v1)                                         │
00:02:27 #19142 [Verbose] > │         let v7 : UH2 = UH2_0(v4, v2)                                         │
00:02:27 #19143 [Verbose] > │         method5(v5, v6, v7)                                                  │
00:02:27 #19144 [Verbose] > │     | UH1_1 -> (* Nil *)                                                     │
00:02:27 #19145 [Verbose] > │         struct (v1, v2)                                                      │
00:02:27 #19146 [Verbose] > │ and method6 (v0 : UH2, v1 : UH2) : UH2 =                                     │
00:02:27 #19147 [Verbose] > │     match v0 with                                                            │
00:02:27 #19148 [Verbose] > │     | UH2_0(v2, v3) -> (* Cons *)                                            │
00:02:27 #19149 [Verbose] > │         let v4 : UH2 = UH2_0(v2, v1)                                         │
00:02:27 #19150 [Verbose] > │         method6(v3, v4)                                                      │
00:02:27 #19151 [Verbose] > │     | UH2_1 -> (* Nil *)                                                     │
00:02:27 #19152 [Verbose] > │         v1                                                                   │
00:02:27 #19153 [Verbose] > │ and method7 (v0 : (struct (float * float * float * float * float * float *   │
00:02:27 #19154 [Verbose] > │ float * float * float) -> struct (float * float * float * float * float *    │
00:02:27 #19155 [Verbose] > │ float * float * float * float)), v1 : UH0, v2 : int32) : UH0 =               │
00:02:27 #19156 [Verbose] > │     let v3 : float = 0.0                                                     │
00:02:27 #19157 [Verbose] > │     let v4 : float = 1.0                                                     │
00:02:27 #19158 [Verbose] > │     let v5 : float = 0.0                                                     │
00:02:27 #19159 [Verbose] > │     let v6 : float = 0.0                                                     │
00:02:27 #19160 [Verbose] > │     let v7 : float = 0.0                                                     │
00:02:27 #19161 [Verbose] > │     let v8 : float = 0.0                                                     │
00:02:27 #19162 [Verbose] > │     let v9 : float = 0.0                                                     │
00:02:27 #19163 [Verbose] > │     let v10 : float = 0.0                                                    │
00:02:27 #19164 [Verbose] > │     let v11 : float = 0.0                                                    │
00:02:27 #19165 [Verbose] > │     let struct (v12 : float, v13 : float, v14 : float, v15 : float, v16 :    │
00:02:27 #19166 [Verbose] > │ float, v17 : float, v18 : float, v19 : float, v20 : float) = method2(v0, v3, │
00:02:27 #19167 [Verbose] > │ v4, v5, v6, v7, v8, v9, v10, v11, v2)                                        │
00:02:27 #19168 [Verbose] > │     let v21 : bool = v17 <= 31557600.0                                       │
00:02:27 #19169 [Verbose] > │     if v21 then                                                              │
00:02:27 #19170 [Verbose] > │         let v22 : UH0 = UH0_0(v12, v13, v14, v15, v16, v17, v18, v19, v20,   │
00:02:27 #19171 [Verbose] > │ v1)                                                                          │
00:02:27 #19172 [Verbose] > │         let v23 : int32 = v2 + 1                                             │
00:02:27 #19173 [Verbose] > │         method7(v0, v22, v23)                                                │
00:02:27 #19174 [Verbose] > │     else                                                                     │
00:02:27 #19175 [Verbose] > │         let v25 : UH0 = UH0_1                                                │
00:02:27 #19176 [Verbose] > │         method3(v1, v25)                                                     │
00:02:27 #19177 [Verbose] > │ and method8 (v0 : UH0, v1 : UH1) : UH1 =                                     │
00:02:27 #19178 [Verbose] > │     match v0 with                                                            │
00:02:27 #19179 [Verbose] > │     | UH0_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *)          │
00:02:27 #19180 [Verbose] > │         let v12 : UH1 = method8(v11, v1)                                     │
00:02:27 #19181 [Verbose] > │         let v13 : float = v7 / 31557600.0                                    │
00:02:27 #19182 [Verbose] > │         let v14 : float = v8 / 299792458.0                                   │
00:02:27 #19183 [Verbose] > │         UH1_0(v13, v14, v12)                                                 │
00:02:28 #19184 [Verbose] > │     | UH0_1 -> (* Nil *)                                                     │
00:02:28 #19185 [Verbose] > │         v1                                                                   │
00:02:28 #19186 [Verbose] > │ and method10 (v0 : UH2, v1 : int32) : int32 =                                │
00:02:28 #19187 [Verbose] > │     match v0 with                                                            │
00:02:28 #19188 [Verbose] > │     | UH2_0(v2, v3) -> (* Cons *)                                            │
00:02:28 #19189 [Verbose] > │         let v4 : int32 = v1 + 1                                              │
00:02:28 #19190 [Verbose] > │         method10(v3, v4)                                                     │
00:02:28 #19191 [Verbose] > │     | UH2_1 -> (* Nil *)                                                     │
00:02:28 #19192 [Verbose] > │         v1                                                                   │
00:02:28 #19193 [Verbose] > │ and method11 (v0 : (float []), v1 : UH2, v2 : int32) : int32 =               │
00:02:28 #19194 [Verbose] > │     match v1 with                                                            │
00:02:28 #19195 [Verbose] > │     | UH2_0(v3, v4) -> (* Cons *)                                            │
00:02:28 #19196 [Verbose] > │         v0.[int v2] <- v3                                                    │
00:02:28 #19197 [Verbose] > │         let v5 : int32 = v2 + 1                                              │
00:02:28 #19198 [Verbose] > │         method11(v0, v4, v5)                                                 │
00:02:28 #19199 [Verbose] > │     | UH2_1 -> (* Nil *)                                                     │
00:02:28 #19200 [Verbose] > │         v2                                                                   │
00:02:28 #19201 [Verbose] > │ and method9 (v0 : UH2) : (float []) =                                        │
00:02:28 #19202 [Verbose] > │     let v1 : int32 = 0                                                       │
00:02:28 #19203 [Verbose] > │     let v2 : int32 = method10(v0, v1)                                        │
00:02:28 #19204 [Verbose] > │     let v3 : (float []) = Array.zeroCreate<float> (v2)                       │
00:02:28 #19205 [Verbose] > │     let v4 : int32 = 0                                                       │
00:02:28 #19206 [Verbose] > │     let v5 : int32 = method11(v3, v0, v4)                                    │
00:02:28 #19207 [Verbose] > │     v3                                                                       │
00:02:28 #19208 [Verbose] > │ and method12 (v0 : (struct (string * (float []) * (float [])) [])) : (struct │
00:02:28 #19209 [Verbose] > │ (string * (float []) * (float [])) []) =                                     │
00:02:28 #19210 [Verbose] > │     v0                                                                       │
00:02:28 #19211 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:02:28 #19212 [Verbose] > │ []) * (float [])) [])) =                                                     │
00:02:28 #19213 [Verbose] > │     let v0 : ((struct (float * float * float * float * float * float * float │
00:02:28 #19214 [Verbose] > │ * float * float) -> struct (float * float * float * float * float * float *  │
00:02:28 #19215 [Verbose] > │ float * float * float)) -> (struct (float * float * float * float * float *  │
00:02:28 #19216 [Verbose] > │ float * float * float * float) -> struct (float * float * float * float *    │
00:02:28 #19217 [Verbose] > │ float * float * float * float * float))) = closure0()                        │
00:02:28 #19218 [Verbose] > │     let v1 : (struct (float * float * float * float * float * float * float  │
00:02:28 #19219 [Verbose] > │ * float * float) -> struct (float * float * float * float * float * float *  │
00:02:28 #19220 [Verbose] > │ float * float * float)) = closure2()                                         │
00:02:28 #19221 [Verbose] > │     let v2 : (struct (float * float * float * float * float * float * float  │
00:02:28 #19222 [Verbose] > │ * float * float) -> struct (float * float * float * float * float * float *  │
00:02:28 #19223 [Verbose] > │ float * float * float)) = v0 v1                                              │
00:02:28 #19224 [Verbose] > │     let v3 : (struct (float * float * float * float * float * float * float  │
00:02:28 #19225 [Verbose] > │ * float * float) -> struct (float * float * float * float * float * float *  │
00:02:28 #19226 [Verbose] > │ float * float * float)) = closure3()                                         │
00:02:28 #19227 [Verbose] > │     let v4 : (struct (float * float * float * float * float * float * float  │
00:02:28 #19228 [Verbose] > │ * float * float) -> struct (float * float * float * float * float * float *  │
00:02:28 #19229 [Verbose] > │ float * float * float)) = v0 v3                                              │
00:02:28 #19230 [Verbose] > │     let v5 : UH0 = UH0_1                                                     │
00:02:28 #19231 [Verbose] > │     let v6 : int32 = 0                                                       │
00:02:28 #19232 [Verbose] > │     let v7 : UH0 = method1(v2, v5, v6)                                       │
00:02:28 #19233 [Verbose] > │     let v8 : UH1 = UH1_1                                                     │
00:02:28 #19234 [Verbose] > │     let v9 : UH1 = method4(v7, v8)                                           │
00:02:28 #19235 [Verbose] > │     let v10 : UH2 = UH2_1                                                    │
00:02:28 #19236 [Verbose] > │     let v11 : UH2 = UH2_1                                                    │
00:02:28 #19237 [Verbose] > │     let struct (v12 : UH2, v13 : UH2) = method5(v9, v10, v11)                │
00:02:28 #19238 [Verbose] > │     let v14 : UH2 = UH2_1                                                    │
00:02:28 #19239 [Verbose] > │     let v15 : UH2 = method6(v12, v14)                                        │
00:02:28 #19240 [Verbose] > │     let v16 : UH2 = UH2_1                                                    │
00:02:28 #19241 [Verbose] > │     let v17 : UH2 = method6(v13, v16)                                        │
00:02:28 #19242 [Verbose] > │     let v18 : UH0 = UH0_1                                                    │
00:02:28 #19243 [Verbose] > │     let v19 : int32 = 0                                                      │
00:02:28 #19244 [Verbose] > │     let v20 : UH0 = method7(v4, v18, v19)                                    │
00:02:28 #19245 [Verbose] > │     let v21 : UH1 = UH1_1                                                    │
00:02:28 #19246 [Verbose] > │     let v22 : UH1 = method8(v20, v21)                                        │
00:02:28 #19247 [Verbose] > │     let v23 : UH2 = UH2_1                                                    │
00:02:28 #19248 [Verbose] > │     let v24 : UH2 = UH2_1                                                    │
00:02:28 #19249 [Verbose] > │     let struct (v25 : UH2, v26 : UH2) = method5(v22, v23, v24)               │
00:02:28 #19250 [Verbose] > │     let v27 : UH2 = UH2_1                                                    │
00:02:28 #19251 [Verbose] > │     let v28 : UH2 = method6(v25, v27)                                        │
00:02:28 #19252 [Verbose] > │     let v29 : UH2 = UH2_1                                                    │
00:02:28 #19253 [Verbose] > │     let v30 : UH2 = method6(v26, v29)                                        │
00:02:28 #19254 [Verbose] > │     let v31 : (float []) = method9(v15)                                      │
00:02:28 #19255 [Verbose] > │     let v32 : (float []) = method9(v17)                                      │
00:02:28 #19256 [Verbose] > │     let v33 : (float []) = method9(v30)                                      │
00:02:28 #19257 [Verbose] > │     let v34 : string = "newtonian"                                           │
00:02:28 #19258 [Verbose] > │     let v35 : string = "relativistic"                                        │
00:02:28 #19259 [Verbose] > │     let v36 : (struct (string * (float []) * (float [])) []) = [|struct      │
00:02:28 #19260 [Verbose] > │ (v34, v31, v32); struct (v35, v31, v33)|]                                    │
00:02:28 #19261 [Verbose] > │     let v37 : (struct (string * (float []) * (float [])) []) = method12(v36) │
00:02:28 #19262 [Verbose] > │     let v38 : string = "response to a constant force"                        │
00:02:28 #19263 [Verbose] > │     let v39 : string = "time (years)"                                        │
00:02:28 #19264 [Verbose] > │     let v40 : string = "velocity (multiples of c)"                           │
00:02:28 #19265 [Verbose] > │     struct (v38, v39, v40, v37)                                              │
00:02:28 #19266 [Verbose] > │ method0()                                                                    │
00:02:28 #19267 [Verbose] > │                                                                              │
00:02:28 #19268 [Verbose] > │                                                                              │
00:02:28 #19269 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:28 #19270 [Verbose] >
00:02:28 #19271 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:28 #19272 [Verbose] > inl uniform_lorentz_force v_e v_b (st : particle_state) =
00:02:28 #19273 [Verbose] >     st.charge *^ (v_e ^+^ st.velocity >< v_b)
00:02:28 #19274 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-5713-1331-16b87ee6644e/main.spi
00:02:28 #19275 [Verbose] >
00:02:28 #19276 [Verbose] > ╭─[ 137.89ms - stdout ]────────────────────────────────────────────────────────╮
00:02:28 #19277 [Verbose] > │ ()                                                                           │
00:02:28 #19278 [Verbose] > │                                                                              │
00:02:28 #19279 [Verbose] > │                                                                              │
00:02:28 #19280 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:28 #19281 [Verbose] >
00:02:28 #19282 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:28 #19283 [Verbose] > // // test
00:02:28 #19284 [Verbose] >
00:02:28 #19285 [Verbose] > inl c : f64 = 299792458
00:02:28 #19286 [Verbose] > inl ~method = runge_kutta_4 0.000000001
00:02:28 #19287 [Verbose] > inl forces = [[ uniform_lorentz_force (zero_vec ()) (k_hat ()) ]]
00:02:28 #19288 [Verbose] > inl (particle_state default_particle_state') = default_particle_state ()
00:02:28 #19289 [Verbose] > inl initial_state =
00:02:28 #19290 [Verbose] >     particle_state { default_particle_state' with
00:02:28 #19291 [Verbose] >         mass = 0.000000000000000000000000001672621898
00:02:28 #19292 [Verbose] >         charge = 0.0000000000000000001602176621
00:02:28 #19293 [Verbose] >         velocity = 0.8 *^ (c *^ j_hat ())
00:02:28 #19294 [Verbose] >     }
00:02:28 #19295 [Verbose] >
00:02:28 #19296 [Verbose] > inl newton_states = solver_ method (newton_second_ps forces) initial_state
00:02:28 #19297 [Verbose] > inl relativity_states = solver_ method (relativity_ps forces) initial_state
00:02:28 #19298 [Verbose] >
00:02:28 #19299 [Verbose] > inl newton_x, newton_y =
00:02:28 #19300 [Verbose] >     newton_states
00:02:28 #19301 [Verbose] >     >> Some
00:02:28 #19302 [Verbose] >     |> seq.take_while_ (fun (particle_state st) i => i < 100i32)
00:02:28 #19303 [Verbose] >     |> listm.map (fun (particle_state st) => st.pos_vec.x, st.pos_vec.y)
00:02:28 #19304 [Verbose] >     |> listm'.unzip
00:02:28 #19305 [Verbose] >
00:02:28 #19306 [Verbose] > inl relativity_x, relativity_y =
00:02:28 #19307 [Verbose] >     relativity_states
00:02:28 #19308 [Verbose] >     >> Some
00:02:28 #19309 [Verbose] >     |> seq.take_while_ (fun (particle_state st) i => i < 165i32)
00:02:28 #19310 [Verbose] >     |> listm.map (fun (particle_state st) => st.pos_vec.x, st.pos_vec.y)
00:02:28 #19311 [Verbose] >     |> listm'.unzip
00:02:28 #19312 [Verbose] >
00:02:28 #19313 [Verbose] > inl newton_x : a i32 _ = newton_x |> listm.toArray
00:02:28 #19314 [Verbose] > inl newton_y : a i32 _ = newton_y |> listm.toArray
00:02:28 #19315 [Verbose] >
00:02:28 #19316 [Verbose] > inl relativity_x : a i32 _ = relativity_x |> listm.toArray
00:02:28 #19317 [Verbose] > inl relativity_y : a i32 _ = relativity_y |> listm.toArray
00:02:28 #19318 [Verbose] >
00:02:28 #19319 [Verbose] > "proton in a 1-t magnetic field",
00:02:28 #19320 [Verbose] > "x (m)",
00:02:28 #19321 [Verbose] > "y (m)",
00:02:28 #19322 [Verbose] > ;[[
00:02:28 #19323 [Verbose] >     "newtonian", newton_x, newton_y
00:02:28 #19324 [Verbose] >     "relativistic", relativity_x, relativity_y
00:02:28 #19325 [Verbose] > ]]
00:02:28 #19326 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-5728-2877-23e561c30719/main.spi
00:02:28 #19327 [Verbose] >
00:02:28 #19328 [Verbose] > ╭─[ 411.46ms - return value ]──────────────────────────────────────────────────╮
00:02:28 #19329 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480"                          │
00:02:28 #19330 [Verbose] > │ xmlns="http://www.w3.org/2000/svg">                                          │
00:02:28 #19331 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414"        │
00:02:28 #19332 [Verbose] > │ stroke="none"/>                                                              │
00:02:28 #19333 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle"                        │
00:02:28 #19334 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1"            │
00:02:28 #19335 [Verbose] > │ fill="#FFFFFF">                                                              │
00:02:28 #19336 [Verbose] > │ proton in a 1-t magnetic field                                               │
00:02:28 #19337 [Verbose] > │ </text>                                                                      │
00:02:28 #19338 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="58" y1="424" x2="58" │
00:02:28 #19339 [Verbose] > │ y2="75"/>                                                                    │
00:02:28 #19340 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:02:28 #19341 [Verbose] > │ y2="75"/>                                                                    │
00:02:28 #19342 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="81" y1="424" x2="81" │
00:02:28 #19343 [Verbose] > │ y2="75"/>                                                                    │
00:02:28 #19344 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="93" y1="424" x2="93" │
00:02:28 #19345 [Verbose] > │ y2="75"/>                                                                    │
00:02:28 #19346 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x...                     │
00:02:28 #19347 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:28 #19348 [Verbose] >
00:02:28 #19349 [Verbose] > ╭─[ 420.92ms - stdout ]────────────────────────────────────────────────────────╮
00:02:28 #19350 [Verbose] > │ type UH0 =                                                                   │
00:02:28 #19351 [Verbose] > │     | UH0_0 of float * float * float * float * float * float * float * float │
00:02:28 #19352 [Verbose] > │ * float * UH0                                                                │
00:02:28 #19353 [Verbose] > │     | UH0_1                                                                  │
00:02:28 #19354 [Verbose] > │ and UH1 =                                                                    │
00:02:28 #19355 [Verbose] > │     | UH1_0 of float * float * UH1                                           │
00:02:28 #19356 [Verbose] > │     | UH1_1                                                                  │
00:02:28 #19357 [Verbose] > │ and UH2 =                                                                    │
00:02:28 #19358 [Verbose] > │     | UH2_0 of float * UH2                                                   │
00:02:28 #19359 [Verbose] > │     | UH2_1                                                                  │
00:02:28 #19360 [Verbose] > │ let rec closure1 (v0 : (struct (float * float * float * float * float *      │
00:02:28 #19361 [Verbose] > │ float * float * float * float) -> struct (float * float * float * float *    │
00:02:28 #19362 [Verbose] > │ float * float * float * float * float))) struct (v1 : float, v2 : float, v3  │
00:02:28 #19363 [Verbose] > │ : float, v4 : float, v5 : float, v6 : float, v7 : float, v8 : float, v9 :    │
00:02:28 #19364 [Verbose] > │ float) : struct (float * float * float * float * float * float * float *     │
00:02:28 #19365 [Verbose] > │ float * float) =                                                             │
00:02:28 #19366 [Verbose] > │     let struct (v10 : float, v11 : float, v12 : float, v13 : float, v14 :    │
00:02:28 #19367 [Verbose] > │ float, v15 : float, v16 : float, v17 : float, v18 : float) = v0 struct (v1,  │
00:02:28 #19368 [Verbose] > │ v2, v3, v4, v5, v6, v7, v8, v9)                                              │
00:02:28 #19369 [Verbose] > │     let v19 : float = v15 * 5E-10                                            │
00:02:28 #19370 [Verbose] > │     let v20 : float = v6 + v19                                               │
00:02:28 #19371 [Verbose] > │     let v21 : float = 5E-10 * v12                                            │
00:02:28 #19372 [Verbose] > │     let v22 : float = 5E-10 * v13                                            │
00:02:28 #19373 [Verbose] > │     let v23 : float = 5E-10 * v14                                            │
00:02:28 #19374 [Verbose] > │     let v24 : float = v3 + v21                                               │
00:02:28 #19375 [Verbose] > │     let v25 : float = v4 + v22                                               │
00:02:28 #19376 [Verbose] > │     let v26 : float = v5 + v23                                               │
00:02:28 #19377 [Verbose] > │     let v27 : float = 5E-10 * v16                                            │
00:02:28 #19378 [Verbose] > │     let v28 : float = 5E-10 * v17                                            │
00:02:28 #19379 [Verbose] > │     let v29 : float = 5E-10 * v18                                            │
00:02:28 #19380 [Verbose] > │     let v30 : float = v7 + v27                                               │
00:02:28 #19381 [Verbose] > │     let v31 : float = v8 + v28                                               │
00:02:28 #19382 [Verbose] > │     let v32 : float = v9 + v29                                               │
00:02:28 #19383 [Verbose] > │     let struct (v33 : float, v34 : float, v35 : float, v36 : float, v37 :    │
00:02:28 #19384 [Verbose] > │ float, v38 : float, v39 : float, v40 : float, v41 : float) = v0 struct (v1,  │
00:02:28 #19385 [Verbose] > │ v2, v24, v25, v26, v20, v30, v31, v32)                                       │
00:02:28 #19386 [Verbose] > │     let v42 : float = v38 * 5E-10                                            │
00:02:28 #19387 [Verbose] > │     let v43 : float = v6 + v42                                               │
00:02:28 #19388 [Verbose] > │     let v44 : float = 5E-10 * v35                                            │
00:02:28 #19389 [Verbose] > │     let v45 : float = 5E-10 * v36                                            │
00:02:28 #19390 [Verbose] > │     let v46 : float = 5E-10 * v37                                            │
00:02:28 #19391 [Verbose] > │     let v47 : float = v3 + v44                                               │
00:02:28 #19392 [Verbose] > │     let v48 : float = v4 + v45                                               │
00:02:28 #19393 [Verbose] > │     let v49 : float = v5 + v46                                               │
00:02:28 #19394 [Verbose] > │     let v50 : float = 5E-10 * v39                                            │
00:02:28 #19395 [Verbose] > │     let v51 : float = 5E-10 * v40                                            │
00:02:28 #19396 [Verbose] > │     let v52 : float = 5E-10 * v41                                            │
00:02:28 #19397 [Verbose] > │     let v53 : float = v7 + v50                                               │
00:02:28 #19398 [Verbose] > │     let v54 : float = v8 + v51                                               │
00:02:28 #19399 [Verbose] > │     let v55 : float = v9 + v52                                               │
00:02:28 #19400 [Verbose] > │     let struct (v56 : float, v57 : float, v58 : float, v59 : float, v60 :    │
00:02:28 #19401 [Verbose] > │ float, v61 : float, v62 : float, v63 : float, v64 : float) = v0 struct (v1,  │
00:02:28 #19402 [Verbose] > │ v2, v47, v48, v49, v43, v53, v54, v55)                                       │
00:02:28 #19403 [Verbose] > │     let v65 : float = v61 * 1E-09                                            │
00:02:28 #19404 [Verbose] > │     let v66 : float = v6 + v65                                               │
00:02:28 #19405 [Verbose] > │     let v67 : float = 1E-09 * v58                                            │
00:02:28 #19406 [Verbose] > │     let v68 : float = 1E-09 * v59                                            │
00:02:28 #19407 [Verbose] > │     let v69 : float = 1E-09 * v60                                            │
00:02:28 #19408 [Verbose] > │     let v70 : float = v3 + v67                                               │
00:02:28 #19409 [Verbose] > │     let v71 : float = v4 + v68                                               │
00:02:28 #19410 [Verbose] > │     let v72 : float = v5 + v69                                               │
00:02:28 #19411 [Verbose] > │     let v73 : float = 1E-09 * v62                                            │
00:02:28 #19412 [Verbose] > │     let v74 : float = 1E-09 * v63                                            │
00:02:28 #19413 [Verbose] > │     let v75 : float = 1E-09 * v64                                            │
00:02:28 #19414 [Verbose] > │     let v76 : float = v7 + v73                                               │
00:02:28 #19415 [Verbose] > │     let v77 : float = v8 + v74                                               │
00:02:28 #19416 [Verbose] > │     let v78 : float = v9 + v75                                               │
00:02:28 #19417 [Verbose] > │     let struct (v79 : float, v80 : float, v81 : float, v82 : float, v83 :    │
00:02:28 #19418 [Verbose] > │ float, v84 : float, v85 : float, v86 : float, v87 : float) = v0 struct (v1,  │
00:02:28 #19419 [Verbose] > │ v2, v70, v71, v72, v66, v76, v77, v78)                                       │
00:02:28 #19420 [Verbose] > │     let v88 : float = v10 + v33                                              │
00:02:28 #19421 [Verbose] > │     let v89 : float = v11 + v34                                              │
00:02:28 #19422 [Verbose] > │     let v90 : float = v15 + v38                                              │
00:02:28 #19423 [Verbose] > │     let v91 : float = v12 + v35                                              │
00:02:28 #19424 [Verbose] > │     let v92 : float = v13 + v36                                              │
00:02:28 #19425 [Verbose] > │     let v93 : float = v14 + v37                                              │
00:02:28 #19426 [Verbose] > │     let v94 : float = v16 + v39                                              │
00:02:28 #19427 [Verbose] > │     let v95 : float = v17 + v40                                              │
00:02:28 #19428 [Verbose] > │     let v96 : float = v18 + v41                                              │
00:02:28 #19429 [Verbose] > │     let v97 : float = v88 + v33                                              │
00:02:28 #19430 [Verbose] > │     let v98 : float = v89 + v34                                              │
00:02:28 #19431 [Verbose] > │     let v99 : float = v90 + v38                                              │
00:02:28 #19432 [Verbose] > │     let v100 : float = v91 + v35                                             │
00:02:28 #19433 [Verbose] > │     let v101 : float = v92 + v36                                             │
00:02:28 #19434 [Verbose] > │     let v102 : float = v93 + v37                                             │
00:02:28 #19435 [Verbose] > │     let v103 : float = v94 + v39                                             │
00:02:28 #19436 [Verbose] > │     let v104 : float = v95 + v40                                             │
00:02:28 #19437 [Verbose] > │     let v105 : float = v96 + v41                                             │
00:02:28 #19438 [Verbose] > │     let v106 : float = v97 + v56                                             │
00:02:28 #19439 [Verbose] > │     let v107 : float = v98 + v57                                             │
00:02:28 #19440 [Verbose] > │     let v108 : float = v99 + v61                                             │
00:02:28 #19441 [Verbose] > │     let v109 : float = v100 + v58                                            │
00:02:28 #19442 [Verbose] > │     let v110 : float = v101 + v59                                            │
00:02:28 #19443 [Verbose] > │     let v111 : float = v102 + v60                                            │
00:02:28 #19444 [Verbose] > │     let v112 : float = v103 + v62                                            │
00:02:28 #19445 [Verbose] > │     let v113 : float = v104 + v63                                            │
00:02:28 #19446 [Verbose] > │     let v114 : float = v105 + v64                                            │
00:02:28 #19447 [Verbose] > │     let v115 : float = v106 + v56                                            │
00:02:28 #19448 [Verbose] > │     let v116 : float = v107 + v57                                            │
00:02:28 #19449 [Verbose] > │     let v117 : float = v108 + v61                                            │
00:02:28 #19450 [Verbose] > │     let v118 : float = v109 + v58                                            │
00:02:28 #19451 [Verbose] > │     let v119 : float = v110 + v59                                            │
00:02:28 #19452 [Verbose] > │     let v120 : float = v111 + v60                                            │
00:02:28 #19453 [Verbose] > │     let v121 : float = v112 + v62                                            │
00:02:28 #19454 [Verbose] > │     let v122 : float = v113 + v63                                            │
00:02:28 #19455 [Verbose] > │     let v123 : float = v114 + v64                                            │
00:02:28 #19456 [Verbose] > │     let v124 : float = v115 + v79                                            │
00:02:28 #19457 [Verbose] > │     let v125 : float = v116 + v80                                            │
00:02:28 #19458 [Verbose] > │     let v126 : float = v117 + v84                                            │
00:02:28 #19459 [Verbose] > │     let v127 : float = v118 + v81                                            │
00:02:28 #19460 [Verbose] > │     let v128 : float = v119 + v82                                            │
00:02:28 #19461 [Verbose] > │     let v129 : float = v120 + v83                                            │
00:02:28 #19462 [Verbose] > │     let v130 : float = v121 + v85                                            │
00:02:28 #19463 [Verbose] > │     let v131 : float = v122 + v86                                            │
00:02:28 #19464 [Verbose] > │     let v132 : float = v123 + v87                                            │
00:02:28 #19465 [Verbose] > │     let v133 : float = v126 * 1.6666666666666669E-10                         │
00:02:28 #19466 [Verbose] > │     let v134 : float = v6 + v133                                             │
00:02:28 #19467 [Verbose] > │     let v135 : float = 1.6666666666666669E-10 * v127                         │
00:02:28 #19468 [Verbose] > │     let v136 : float = 1.6666666666666669E-10 * v128                         │
00:02:28 #19469 [Verbose] > │     let v137 : float = 1.6666666666666669E-10 * v129                         │
00:02:28 #19470 [Verbose] > │     let v138 : float = v3 + v135                                             │
00:02:28 #19471 [Verbose] > │     let v139 : float = v4 + v136                                             │
00:02:28 #19472 [Verbose] > │     let v140 : float = v5 + v137                                             │
00:02:28 #19473 [Verbose] > │     let v141 : float = 1.6666666666666669E-10 * v130                         │
00:02:28 #19474 [Verbose] > │     let v142 : float = 1.6666666666666669E-10 * v131                         │
00:02:28 #19475 [Verbose] > │     let v143 : float = 1.6666666666666669E-10 * v132                         │
00:02:28 #19476 [Verbose] > │     let v144 : float = v7 + v141                                             │
00:02:28 #19477 [Verbose] > │     let v145 : float = v8 + v142                                             │
00:02:28 #19478 [Verbose] > │     let v146 : float = v9 + v143                                             │
00:02:28 #19479 [Verbose] > │     struct (v1, v2, v138, v139, v140, v134, v144, v145, v146)                │
00:02:28 #19480 [Verbose] > │ and closure0 () (v0 : (struct (float * float * float * float * float * float │
00:02:28 #19481 [Verbose] > │ * float * float * float) -> struct (float * float * float * float * float *  │
00:02:28 #19482 [Verbose] > │ float * float * float * float))) : (struct (float * float * float * float *  │
00:02:28 #19483 [Verbose] > │ float * float * float * float * float) -> struct (float * float * float *    │
00:02:28 #19484 [Verbose] > │ float * float * float * float * float * float)) =                            │
00:02:28 #19485 [Verbose] > │     closure1(v0)                                                             │
00:02:28 #19486 [Verbose] > │ and closure2 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4 : │
00:02:28 #19487 [Verbose] > │ float, v5 : float, v6 : float, v7 : float, v8 : float) : struct (float *     │
00:02:28 #19488 [Verbose] > │ float * float * float * float * float * float * float * float) =             │
00:02:28 #19489 [Verbose] > │     let v9 : float = v8 * 0.0                                                │
00:02:28 #19490 [Verbose] > │     let v10 : float = v7 - v9                                                │
00:02:28 #19491 [Verbose] > │     let v11 : float = v9 - v6                                                │
00:02:28 #19492 [Verbose] > │     let v12 : float = v6 * 0.0                                               │
00:02:28 #19493 [Verbose] > │     let v13 : float = v7 * 0.0                                               │
00:02:28 #19494 [Verbose] > │     let v14 : float = v12 - v13                                              │
00:02:28 #19495 [Verbose] > │     let v15 : float = v0 * v10                                               │
00:02:28 #19496 [Verbose] > │     let v16 : float = v0 * v11                                               │
00:02:28 #19497 [Verbose] > │     let v17 : float = v0 * v14                                               │
00:02:28 #19498 [Verbose] > │     let v18 : float = v15 / v1                                               │
00:02:28 #19499 [Verbose] > │     let v19 : float = v16 / v1                                               │
00:02:28 #19500 [Verbose] > │     let v20 : float = v17 / v1                                               │
00:02:28 #19501 [Verbose] > │     struct (0.0, 0.0, v6, v7, v8, 1.0, v18, v19, v20)                        │
00:02:28 #19502 [Verbose] > │ and closure3 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4 : │
00:02:28 #19503 [Verbose] > │ float, v5 : float, v6 : float, v7 : float, v8 : float) : struct (float *     │
00:02:28 #19504 [Verbose] > │ float * float * float * float * float * float * float * float) =             │
00:02:28 #19505 [Verbose] > │     let v9 : float = v8 * 0.0                                                │
00:02:28 #19506 [Verbose] > │     let v10 : float = v7 - v9                                                │
00:02:28 #19507 [Verbose] > │     let v11 : float = v9 - v6                                                │
00:02:28 #19508 [Verbose] > │     let v12 : float = v6 * 0.0                                               │
00:02:28 #19509 [Verbose] > │     let v13 : float = v7 * 0.0                                               │
00:02:28 #19510 [Verbose] > │     let v14 : float = v12 - v13                                              │
00:02:28 #19511 [Verbose] > │     let v15 : float = v0 * v10                                               │
00:02:28 #19512 [Verbose] > │     let v16 : float = v0 * v11                                               │
00:02:28 #19513 [Verbose] > │     let v17 : float = v0 * v14                                               │
00:02:28 #19514 [Verbose] > │     let v18 : float = v6 / 299792458.0                                       │
00:02:28 #19515 [Verbose] > │     let v19 : float = v7 / 299792458.0                                       │
00:02:28 #19516 [Verbose] > │     let v20 : float = v8 / 299792458.0                                       │
00:02:28 #19517 [Verbose] > │     let v21 : float = v18 * v18                                              │
00:02:28 #19518 [Verbose] > │     let v22 : float = v19 * v19                                              │
00:02:28 #19519 [Verbose] > │     let v23 : float = v21 + v22                                              │
00:02:28 #19520 [Verbose] > │     let v24 : float = v20 * v20                                              │
00:02:28 #19521 [Verbose] > │     let v25 : float = v23 + v24                                              │
00:02:28 #19522 [Verbose] > │     let v26 : float = 1.0 - v25                                              │
00:02:28 #19523 [Verbose] > │     let v27 : float = sqrt v26                                               │
00:02:28 #19524 [Verbose] > │     let v28 : float = v15 * v18                                              │
00:02:28 #19525 [Verbose] > │     let v29 : float = v16 * v19                                              │
00:02:28 #19526 [Verbose] > │     let v30 : float = v28 + v29                                              │
00:02:28 #19527 [Verbose] > │     let v31 : float = v17 * v20                                              │
00:02:28 #19528 [Verbose] > │     let v32 : float = v30 + v31                                              │
00:02:28 #19529 [Verbose] > │     let v33 : float = v32 * v18                                              │
00:02:28 #19530 [Verbose] > │     let v34 : float = v32 * v19                                              │
00:02:28 #19531 [Verbose] > │     let v35 : float = v32 * v20                                              │
00:02:28 #19532 [Verbose] > │     let v36 : float = -1.0 * v33                                             │
00:02:28 #19533 [Verbose] > │     let v37 : float = -1.0 * v34                                             │
00:02:28 #19534 [Verbose] > │     let v38 : float = -1.0 * v35                                             │
00:02:28 #19535 [Verbose] > │     let v39 : float = v15 + v36                                              │
00:02:28 #19536 [Verbose] > │     let v40 : float = v16 + v37                                              │
00:02:28 #19537 [Verbose] > │     let v41 : float = v17 + v38                                              │
00:02:28 #19538 [Verbose] > │     let v42 : float = v27 * v39                                              │
00:02:28 #19539 [Verbose] > │     let v43 : float = v27 * v40                                              │
00:02:28 #19540 [Verbose] > │     let v44 : float = v27 * v41                                              │
00:02:28 #19541 [Verbose] > │     let v45 : float = v42 / v1                                               │
00:02:28 #19542 [Verbose] > │     let v46 : float = v43 / v1                                               │
00:02:28 #19543 [Verbose] > │     let v47 : float = v44 / v1                                               │
00:02:28 #19544 [Verbose] > │     struct (0.0, 0.0, v6, v7, v8, 1.0, v45, v46, v47)                        │
00:02:28 #19545 [Verbose] > │ and method2 (v0 : (struct (float * float * float * float * float * float *   │
00:02:28 #19546 [Verbose] > │ float * float * float) -> struct (float * float * float * float * float *    │
00:02:28 #19547 [Verbose] > │ float * float * float * float)), v1 : float, v2 : float, v3 : float, v4 :    │
00:02:28 #19548 [Verbose] > │ float, v5 : float, v6 : float, v7 : float, v8 : float, v9 : float, v10 :     │
00:02:28 #19549 [Verbose] > │ int32) : struct (float * float * float * float * float * float * float *     │
00:02:28 #19550 [Verbose] > │ float * float) =                                                             │
00:02:28 #19551 [Verbose] > │     let v11 : bool = v10 <= 0                                                │
00:02:28 #19552 [Verbose] > │     if v11 then                                                              │
00:02:28 #19553 [Verbose] > │         struct (v1, v2, v3, v4, v5, v6, v7, v8, v9)                          │
00:02:28 #19554 [Verbose] > │     else                                                                     │
00:02:28 #19555 [Verbose] > │         let struct (v12 : float, v13 : float, v14 : float, v15 : float, v16  │
00:02:28 #19556 [Verbose] > │ : float, v17 : float, v18 : float, v19 : float, v20 : float) = v0 struct     │
00:02:28 #19557 [Verbose] > │ (v1, v2, v3, v4, v5, v6, v7, v8, v9)                                         │
00:02:28 #19558 [Verbose] > │         let v21 : int32 = v10 - 1                                            │
00:02:28 #19559 [Verbose] > │         method2(v0, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21)        │
00:02:28 #19560 [Verbose] > │ and method3 (v0 : UH0, v1 : UH0) : UH0 =                                     │
00:02:28 #19561 [Verbose] > │     match v0 with                                                            │
00:02:28 #19562 [Verbose] > │     | UH0_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *)          │
00:02:28 #19563 [Verbose] > │         let v12 : UH0 = UH0_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v1)       │
00:02:28 #19564 [Verbose] > │         method3(v11, v12)                                                    │
00:02:28 #19565 [Verbose] > │     | UH0_1 -> (* Nil *)                                                     │
00:02:28 #19566 [Verbose] > │         v1                                                                   │
00:02:28 #19567 [Verbose] > │ and method1 (v0 : (struct (float * float * float * float * float * float *   │
00:02:28 #19568 [Verbose] > │ float * float * float) -> struct (float * float * float * float * float *    │
00:02:28 #19569 [Verbose] > │ float * float * float * float)), v1 : UH0, v2 : int32) : UH0 =               │
00:02:28 #19570 [Verbose] > │     let v3 : float = 1.602176621E-19                                         │
00:02:28 #19571 [Verbose] > │     let v4 : float = 1.672621898E-27                                         │
00:02:28 #19572 [Verbose] > │     let v5 : float = 0.0                                                     │
00:02:28 #19573 [Verbose] > │     let v6 : float = 0.0                                                     │
00:02:28 #19574 [Verbose] > │     let v7 : float = 0.0                                                     │
00:02:28 #19575 [Verbose] > │     let v8 : float = 0.0                                                     │
00:02:28 #19576 [Verbose] > │     let v9 : float = 0.0                                                     │
00:02:28 #19577 [Verbose] > │     let v10 : float = 239833966.4                                            │
00:02:28 #19578 [Verbose] > │     let v11 : float = 0.0                                                    │
00:02:28 #19579 [Verbose] > │     let struct (v12 : float, v13 : float, v14 : float, v15 : float, v16 :    │
00:02:28 #19580 [Verbose] > │ float, v17 : float, v18 : float, v19 : float, v20 : float) = method2(v0, v3, │
00:02:28 #19581 [Verbose] > │ v4, v5, v6, v7, v8, v9, v10, v11, v2)                                        │
00:02:28 #19582 [Verbose] > │     let v21 : bool = v2 < 100                                                │
00:02:28 #19583 [Verbose] > │     if v21 then                                                              │
00:02:28 #19584 [Verbose] > │         let v22 : UH0 = UH0_0(v12, v13, v14, v15, v16, v17, v18, v19, v20,   │
00:02:28 #19585 [Verbose] > │ v1)                                                                          │
00:02:28 #19586 [Verbose] > │         let v23 : int32 = v2 + 1                                             │
00:02:28 #19587 [Verbose] > │         method1(v0, v22, v23)                                                │
00:02:28 #19588 [Verbose] > │     else                                                                     │
00:02:28 #19589 [Verbose] > │         let v25 : UH0 = UH0_1                                                │
00:02:28 #19590 [Verbose] > │         method3(v1, v25)                                                     │
00:02:28 #19591 [Verbose] > │ and method4 (v0 : UH0, v1 : UH1) : UH1 =                                     │
00:02:28 #19592 [Verbose] > │     match v0 with                                                            │
00:02:28 #19593 [Verbose] > │     | UH0_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *)          │
00:02:28 #19594 [Verbose] > │         let v12 : UH1 = method4(v11, v1)                                     │
00:02:28 #19595 [Verbose] > │         UH1_0(v4, v5, v12)                                                   │
00:02:28 #19596 [Verbose] > │     | UH0_1 -> (* Nil *)                                                     │
00:02:28 #19597 [Verbose] > │         v1                                                                   │
00:02:28 #19598 [Verbose] > │ and method5 (v0 : UH1, v1 : UH2, v2 : UH2) : struct (UH2 * UH2) =            │
00:02:28 #19599 [Verbose] > │     match v0 with                                                            │
00:02:28 #19600 [Verbose] > │     | UH1_0(v3, v4, v5) -> (* Cons *)                                        │
00:02:28 #19601 [Verbose] > │         let v6 : UH2 = UH2_0(v3, v1)                                         │
00:02:28 #19602 [Verbose] > │         let v7 : UH2 = UH2_0(v4, v2)                                         │
00:02:28 #19603 [Verbose] > │         method5(v5, v6, v7)                                                  │
00:02:28 #19604 [Verbose] > │     | UH1_1 -> (* Nil *)                                                     │
00:02:28 #19605 [Verbose] > │         struct (v1, v2)                                                      │
00:02:28 #19606 [Verbose] > │ and method6 (v0 : UH2, v1 : UH2) : UH2 =                                     │
00:02:28 #19607 [Verbose] > │     match v0 with                                                            │
00:02:28 #19608 [Verbose] > │     | UH2_0(v2, v3) -> (* Cons *)                                            │
00:02:28 #19609 [Verbose] > │         let v4 : UH2 = UH2_0(v2, v1)                                         │
00:02:28 #19610 [Verbose] > │         method6(v3, v4)                                                      │
00:02:28 #19611 [Verbose] > │     | UH2_1 -> (* Nil *)                                                     │
00:02:28 #19612 [Verbose] > │         v1                                                                   │
00:02:28 #19613 [Verbose] > │ and method7 (v0 : (struct (float * float * float * float * float * float *   │
00:02:28 #19614 [Verbose] > │ float * float * float) -> struct (float * float * float * float * float *    │
00:02:28 #19615 [Verbose] > │ float * float * float * float)), v1 : UH0, v2 : int32) : UH0 =               │
00:02:28 #19616 [Verbose] > │     let v3 : float = 1.602176621E-19                                         │
00:02:28 #19617 [Verbose] > │     let v4 : float = 1.672621898E-27                                         │
00:02:28 #19618 [Verbose] > │     let v5 : float = 0.0                                                     │
00:02:28 #19619 [Verbose] > │     let v6 : float = 0.0                                                     │
00:02:28 #19620 [Verbose] > │     let v7 : float = 0.0                                                     │
00:02:28 #19621 [Verbose] > │     let v8 : float = 0.0                                                     │
00:02:28 #19622 [Verbose] > │     let v9 : float = 0.0                                                     │
00:02:28 #19623 [Verbose] > │     let v10 : float = 239833966.4                                            │
00:02:28 #19624 [Verbose] > │     let v11 : float = 0.0                                                    │
00:02:28 #19625 [Verbose] > │     let struct (v12 : float, v13 : float, v14 : float, v15 : float, v16 :    │
00:02:28 #19626 [Verbose] > │ float, v17 : float, v18 : float, v19 : float, v20 : float) = method2(v0, v3, │
00:02:28 #19627 [Verbose] > │ v4, v5, v6, v7, v8, v9, v10, v11, v2)                                        │
00:02:28 #19628 [Verbose] > │     let v21 : bool = v2 < 165                                                │
00:02:28 #19629 [Verbose] > │     if v21 then                                                              │
00:02:28 #19630 [Verbose] > │         let v22 : UH0 = UH0_0(v12, v13, v14, v15, v16, v17, v18, v19, v20,   │
00:02:28 #19631 [Verbose] > │ v1)                                                                          │
00:02:28 #19632 [Verbose] > │         let v23 : int32 = v2 + 1                                             │
00:02:28 #19633 [Verbose] > │         method7(v0, v22, v23)                                                │
00:02:28 #19634 [Verbose] > │     else                                                                     │
00:02:28 #19635 [Verbose] > │         let v25 : UH0 = UH0_1                                                │
00:02:28 #19636 [Verbose] > │         method3(v1, v25)                                                     │
00:02:28 #19637 [Verbose] > │ and method8 (v0 : UH0, v1 : UH1) : UH1 =                                     │
00:02:28 #19638 [Verbose] > │     match v0 with                                                            │
00:02:28 #19639 [Verbose] > │     | UH0_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *)          │
00:02:28 #19640 [Verbose] > │         let v12 : UH1 = method8(v11, v1)                                     │
00:02:28 #19641 [Verbose] > │         UH1_0(v4, v5, v12)                                                   │
00:02:28 #19642 [Verbose] > │     | UH0_1 -> (* Nil *)                                                     │
00:02:28 #19643 [Verbose] > │         v1                                                                   │
00:02:28 #19644 [Verbose] > │ and method10 (v0 : UH2, v1 : int32) : int32 =                                │
00:02:28 #19645 [Verbose] > │     match v0 with                                                            │
00:02:28 #19646 [Verbose] > │     | UH2_0(v2, v3) -> (* Cons *)                                            │
00:02:28 #19647 [Verbose] > │         let v4 : int32 = v1 + 1                                              │
00:02:28 #19648 [Verbose] > │         method10(v3, v4)                                                     │
00:02:28 #19649 [Verbose] > │     | UH2_1 -> (* Nil *)                                                     │
00:02:28 #19650 [Verbose] > │         v1                                                                   │
00:02:28 #19651 [Verbose] > │ and method11 (v0 : (float []), v1 : UH2, v2 : int32) : int32 =               │
00:02:28 #19652 [Verbose] > │     match v1 with                                                            │
00:02:28 #19653 [Verbose] > │     | UH2_0(v3, v4) -> (* Cons *)                                            │
00:02:28 #19654 [Verbose] > │         v0.[int v2] <- v3                                                    │
00:02:28 #19655 [Verbose] > │         let v5 : int32 = v2 + 1                                              │
00:02:28 #19656 [Verbose] > │         method11(v0, v4, v5)                                                 │
00:02:28 #19657 [Verbose] > │     | UH2_1 -> (* Nil *)                                                     │
00:02:28 #19658 [Verbose] > │         v2                                                                   │
00:02:28 #19659 [Verbose] > │ and method9 (v0 : UH2) : (float []) =                                        │
00:02:28 #19660 [Verbose] > │     let v1 : int32 = 0                                                       │
00:02:28 #19661 [Verbose] > │     let v2 : int32 = method10(v0, v1)                                        │
00:02:28 #19662 [Verbose] > │     let v3 : (float []) = Array.zeroCreate<float> (v2)                       │
00:02:28 #19663 [Verbose] > │     let v4 : int32 = 0                                                       │
00:02:28 #19664 [Verbose] > │     let v5 : int32 = method11(v3, v0, v4)                                    │
00:02:28 #19665 [Verbose] > │     v3                                                                       │
00:02:28 #19666 [Verbose] > │ and method12 (v0 : (struct (string * (float []) * (float [])) [])) : (struct │
00:02:28 #19667 [Verbose] > │ (string * (float []) * (float [])) []) =                                     │
00:02:28 #19668 [Verbose] > │     v0                                                                       │
00:02:28 #19669 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:02:28 #19670 [Verbose] > │ []) * (float [])) [])) =                                                     │
00:02:28 #19671 [Verbose] > │     let v0 : ((struct (float * float * float * float * float * float * float │
00:02:28 #19672 [Verbose] > │ * float * float) -> struct (float * float * float * float * float * float *  │
00:02:28 #19673 [Verbose] > │ float * float * float)) -> (struct (float * float * float * float * float *  │
00:02:28 #19674 [Verbose] > │ float * float * float * float) -> struct (float * float * float * float *    │
00:02:28 #19675 [Verbose] > │ float * float * float * float * float))) = closure0()                        │
00:02:28 #19676 [Verbose] > │     let v1 : (struct (float * float * float * float * float * float * float  │
00:02:28 #19677 [Verbose] > │ * float * float) -> struct (float * float * float * float * float * float *  │
00:02:28 #19678 [Verbose] > │ float * float * float)) = closure2()                                         │
00:02:28 #19679 [Verbose] > │     let v2 : (struct (float * float * float * float * float * float * float  │
00:02:28 #19680 [Verbose] > │ * float * float) -> struct (float * float * float * float * float * float *  │
00:02:28 #19681 [Verbose] > │ float * float * float)) = v0 v1                                              │
00:02:28 #19682 [Verbose] > │     let v3 : (struct (float * float * float * float * float * float * float  │
00:02:28 #19683 [Verbose] > │ * float * float) -> struct (float * float * float * float * float * float *  │
00:02:28 #19684 [Verbose] > │ float * float * float)) = closure3()                                         │
00:02:28 #19685 [Verbose] > │     let v4 : (struct (float * float * float * float * float * float * float  │
00:02:28 #19686 [Verbose] > │ * float * float) -> struct (float * float * float * float * float * float *  │
00:02:28 #19687 [Verbose] > │ float * float * float)) = v0 v3                                              │
00:02:28 #19688 [Verbose] > │     let v5 : UH0 = UH0_1                                                     │
00:02:28 #19689 [Verbose] > │     let v6 : int32 = 0                                                       │
00:02:28 #19690 [Verbose] > │     let v7 : UH0 = method1(v2, v5, v6)                                       │
00:02:28 #19691 [Verbose] > │     let v8 : UH1 = UH1_1                                                     │
00:02:28 #19692 [Verbose] > │     let v9 : UH1 = method4(v7, v8)                                           │
00:02:28 #19693 [Verbose] > │     let v10 : UH2 = UH2_1                                                    │
00:02:28 #19694 [Verbose] > │     let v11 : UH2 = UH2_1                                                    │
00:02:28 #19695 [Verbose] > │     let struct (v12 : UH2, v13 : UH2) = method5(v9, v10, v11)                │
00:02:28 #19696 [Verbose] > │     let v14 : UH2 = UH2_1                                                    │
00:02:28 #19697 [Verbose] > │     let v15 : UH2 = method6(v12, v14)                                        │
00:02:28 #19698 [Verbose] > │     let v16 : UH2 = UH2_1                                                    │
00:02:28 #19699 [Verbose] > │     let v17 : UH2 = method6(v13, v16)                                        │
00:02:28 #19700 [Verbose] > │     let v18 : UH0 = UH0_1                                                    │
00:02:28 #19701 [Verbose] > │     let v19 : int32 = 0                                                      │
00:02:28 #19702 [Verbose] > │     let v20 : UH0 = method7(v4, v18, v19)                                    │
00:02:28 #19703 [Verbose] > │     let v21 : UH1 = UH1_1                                                    │
00:02:28 #19704 [Verbose] > │     let v22 : UH1 = method8(v20, v21)                                        │
00:02:28 #19705 [Verbose] > │     let v23 : UH2 = UH2_1                                                    │
00:02:28 #19706 [Verbose] > │     let v24 : UH2 = UH2_1                                                    │
00:02:28 #19707 [Verbose] > │     let struct (v25 : UH2, v26 : UH2) = method5(v22, v23, v24)               │
00:02:28 #19708 [Verbose] > │     let v27 : UH2 = UH2_1                                                    │
00:02:28 #19709 [Verbose] > │     let v28 : UH2 = method6(v25, v27)                                        │
00:02:28 #19710 [Verbose] > │     let v29 : UH2 = UH2_1                                                    │
00:02:28 #19711 [Verbose] > │     let v30 : UH2 = method6(v26, v29)                                        │
00:02:28 #19712 [Verbose] > │     let v31 : (float []) = method9(v15)                                      │
00:02:28 #19713 [Verbose] > │     let v32 : (float []) = method9(v17)                                      │
00:02:28 #19714 [Verbose] > │     let v33 : (float []) = method9(v28)                                      │
00:02:28 #19715 [Verbose] > │     let v34 : (float []) = method9(v30)                                      │
00:02:28 #19716 [Verbose] > │     let v35 : string = "newtonian"                                           │
00:02:28 #19717 [Verbose] > │     let v36 : string = "relativistic"                                        │
00:02:28 #19718 [Verbose] > │     let v37 : (struct (string * (float []) * (float [])) []) = [|struct      │
00:02:28 #19719 [Verbose] > │ (v35, v31, v32); struct (v36, v33, v34)|]                                    │
00:02:28 #19720 [Verbose] > │     let v38 : (struct (string * (float []) * (float [])) []) = method12(v37) │
00:02:28 #19721 [Verbose] > │     let v39 : string = "proton in a 1-t magnetic field"                      │
00:02:28 #19722 [Verbose] > │     let v40 : string = "x (m)"                                               │
00:02:28 #19723 [Verbose] > │     let v41 : string = "y (m)"                                               │
00:02:28 #19724 [Verbose] > │     struct (v39, v40, v41, v38)                                              │
00:02:28 #19725 [Verbose] > │ method0()                                                                    │
00:02:28 #19726 [Verbose] > │                                                                              │
00:02:28 #19727 [Verbose] > │                                                                              │
00:02:28 #19728 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:28 #19729 [Verbose] >
00:02:28 #19730 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:28 #19731 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:28 #19732 [Verbose] > │ ### system kinetic energy versus time 1                                      │
00:02:28 #19733 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:28 #19734 [Verbose] >
00:02:28 #19735 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:28 #19736 [Verbose] > // // test
00:02:28 #19737 [Verbose] >
00:02:28 #19738 [Verbose] > inl central_force f (particle_state st1) (particle_state st2) =
00:02:28 #19739 [Verbose] >     inl r1 = st1.pos_vec
00:02:28 #19740 [Verbose] >     inl r2 = st2.pos_vec
00:02:28 #19741 [Verbose] >     inl r21 = r2 ^-^ r1
00:02:28 #19742 [Verbose] >     inl r21mag = magnitude r21
00:02:28 #19743 [Verbose] >     f r21mag *^ r21 ^/ r21mag
00:02:28 #19744 [Verbose] >
00:02:28 #19745 [Verbose] > inl billiard_force k re =
00:02:28 #19746 [Verbose] >     inl f r =
00:02:28 #19747 [Verbose] >         if r >= re
00:02:28 #19748 [Verbose] >         then 0
00:02:28 #19749 [Verbose] >         else -k * (r - re)
00:02:28 #19750 [Verbose] >     central_force f
00:02:28 #19751 [Verbose] >
00:02:28 #19752 [Verbose] > type force_vector = vec
00:02:28 #19753 [Verbose] > type two_body_force = particle_state -> particle_state -> force_vector
00:02:28 #19754 [Verbose] >
00:02:28 #19755 [Verbose] > union force =
00:02:28 #19756 [Verbose] >     | ExternalForce : i32 * one_body_force
00:02:28 #19757 [Verbose] >     | InternalForce : i32 * i32 * two_body_force
00:02:28 #19758 [Verbose] >
00:02:28 #19759 [Verbose] > nominal multi_particle_state = list particle_state
00:02:28 #19760 [Verbose] >
00:02:28 #19761 [Verbose] > nominal d_multi_particle_state = list d_particle_state
00:02:28 #19762 [Verbose] >
00:02:28 #19763 [Verbose] > inl force_on n sts force =
00:02:28 #19764 [Verbose] >     match force with
00:02:28 #19765 [Verbose] >     | ExternalForce (n0, f_one_body) =>
00:02:28 #19766 [Verbose] >         if n = n0
00:02:28 #19767 [Verbose] >         then f_one_body
00:02:28 #19768 [Verbose] >         else fun _ => zero_vec ()
00:02:28 #19769 [Verbose] >     | InternalForce (n0, n1, f_two_body) =>
00:02:28 #19770 [Verbose] >         if n = n0
00:02:28 #19771 [Verbose] >         then f_two_body (sts |> listm'.item n1)
00:02:28 #19772 [Verbose] >         elif n = n1
00:02:28 #19773 [Verbose] >         then f_two_body (sts |> listm'.item n0)
00:02:28 #19774 [Verbose] >         else fun _ => zero_vec ()
00:02:28 #19775 [Verbose] >
00:02:28 #19776 [Verbose] > inl forces_on n (multi_particle_state sts) fs =
00:02:28 #19777 [Verbose] >     fs |> listm.map (force_on n sts)
00:02:28 #19778 [Verbose] >
00:02:28 #19779 [Verbose] > inl newton_second_mps fs (multi_particle_state sts) : d_multi_particle_state =
00:02:28 #19780 [Verbose] >     inl deriv (n, st) =
00:02:28 #19781 [Verbose] >         newton_second_ps (forces_on n (multi_particle_state sts) fs) st
00:02:28 #19782 [Verbose] >     sts |> listm'.indexed |> listm.map deriv |> d_multi_particle_state
00:02:28 #19783 [Verbose] >
00:02:28 #19784 [Verbose] > instance (+++) d_multi_particle_state = fun (d_multi_particle_state dsts1)
00:02:28 #19785 [Verbose] > (d_multi_particle_state dsts2) =>
00:02:28 #19786 [Verbose] >     d_multi_particle_state (listm'.zip_with_ (+++) dsts1 dsts2)
00:02:28 #19787 [Verbose] >
00:02:28 #19788 [Verbose] > instance scale d_multi_particle_state = fun w (d_multi_particle_state dsts) =>
00:02:28 #19789 [Verbose] >     d_multi_particle_state (dsts |> listm.map (scale w))
00:02:28 #19790 [Verbose] >
00:02:28 #19791 [Verbose] > instance shift multi_particle_state = fun dt dsts (multi_particle_state sts) =>
00:02:28 #19792 [Verbose] >     inl (d_multi_particle_state dsts) =
00:02:28 #19793 [Verbose] >         real
00:02:28 #19794 [Verbose] >             match dsts with
00:02:28 #19795 [Verbose] >             | d_multi_particle_state _ => dsts
00:02:28 #19796 [Verbose] >     listm'.zip_with_ (shift dt) dsts sts |> multi_particle_state
00:02:28 #19797 [Verbose] >
00:02:28 #19798 [Verbose] > inl euler_cromer_mps dt : numerical_method multi_particle_state
00:02:28 #19799 [Verbose] > d_multi_particle_state =
00:02:28 #19800 [Verbose] >     fun deriv mpst0 =>
00:02:28 #19801 [Verbose] >         inl mpst1 = euler dt deriv mpst0
00:02:28 #19802 [Verbose] >         inl (multi_particle_state sts0) = mpst0
00:02:28 #19803 [Verbose] >         inl (multi_particle_state sts1) = mpst1
00:02:28 #19804 [Verbose] >         sts1
00:02:28 #19805 [Verbose] >         |> listm'.zip_ sts0
00:02:28 #19806 [Verbose] >         |> listm.map (fun ((particle_state st0), (particle_state st1)) =>
00:02:28 #19807 [Verbose] >             particle_state {
00:02:28 #19808 [Verbose] >                 st1 with
00:02:28 #19809 [Verbose] >                     pos_vec = st0.pos_vec ^+^ st1.velocity ^* dt
00:02:28 #19810 [Verbose] >             }
00:02:28 #19811 [Verbose] >         )
00:02:28 #19812 [Verbose] >         |> multi_particle_state
00:02:28 #19813 [Verbose] >
00:02:28 #19814 [Verbose] > inl update_mps (method : numerical_method multi_particle_state
00:02:28 #19815 [Verbose] > d_multi_particle_state) =
00:02:28 #19816 [Verbose] >     newton_second_mps >> method
00:02:28 #19817 [Verbose] >
00:02:28 #19818 [Verbose] > inl states_mps (method : numerical_method multi_particle_state
00:02:28 #19819 [Verbose] > d_multi_particle_state) =
00:02:28 #19820 [Verbose] >     newton_second_mps >> method >> seq.iterate_
00:02:28 #19821 [Verbose] >
00:02:28 #19822 [Verbose] >
00:02:28 #19823 [Verbose] > inl kinetic_energy (particle_state st) =
00:02:28 #19824 [Verbose] >     inl m = st.mass
00:02:28 #19825 [Verbose] >     inl v = magnitude st.velocity
00:02:28 #19826 [Verbose] >     0.5 * m * v ** 2
00:02:28 #19827 [Verbose] >
00:02:28 #19828 [Verbose] > inl system_ke (multi_particle_state sts) =
00:02:28 #19829 [Verbose] >     sts |> listm.map kinetic_energy |> listm'.sum
00:02:28 #19830 [Verbose] >
00:02:28 #19831 [Verbose] > inl linear_spring_pe k re (particle_state st1) (particle_state st2) =
00:02:28 #19832 [Verbose] >     inl r1 = st1.pos_vec
00:02:28 #19833 [Verbose] >     inl r2 = st2.pos_vec
00:02:28 #19834 [Verbose] >     inl r21 = r2 ^-^ r1
00:02:28 #19835 [Verbose] >     inl r21mag = magnitude r21
00:02:28 #19836 [Verbose] >     k * (r21mag - re) ** 2 / 2
00:02:28 #19837 [Verbose] >
00:02:28 #19838 [Verbose] > inl earth_surface_gravity_pe (particle_state st) =
00:02:28 #19839 [Verbose] >     inl g = 9.80665
00:02:28 #19840 [Verbose] >     inl m = st.mass
00:02:28 #19841 [Verbose] >     inl z = st.pos_vec.z
00:02:28 #19842 [Verbose] >     m * g * z
00:02:28 #19843 [Verbose] >
00:02:28 #19844 [Verbose] > inl two_springs_pe (multi_particle_state sts) =
00:02:28 #19845 [Verbose] >     inl st0 = sts |> listm'.item 0i32
00:02:28 #19846 [Verbose] >     inl st1 = sts |> listm'.item 1i32
00:02:28 #19847 [Verbose] >     linear_spring_pe 100 0.5 (default_particle_state ()) st0
00:02:28 #19848 [Verbose] >     + linear_spring_pe 100 0.5 st0 st1
00:02:28 #19849 [Verbose] >     + earth_surface_gravity_pe st0
00:02:28 #19850 [Verbose] >     + earth_surface_gravity_pe st1
00:02:28 #19851 [Verbose] >
00:02:28 #19852 [Verbose] > inl two_springs_me mpst =
00:02:28 #19853 [Verbose] >     system_ke mpst + two_springs_pe mpst
00:02:28 #19854 [Verbose] >
00:02:28 #19855 [Verbose] > inl ball_radius () = 0.03
00:02:28 #19856 [Verbose] >
00:02:28 #19857 [Verbose] > inl billiard_forces k =
00:02:28 #19858 [Verbose] >     [[ InternalForce (0, 1, billiard_force k (2 * ball_radius ())) ]]
00:02:28 #19859 [Verbose] >
00:02:28 #19860 [Verbose] > inl billiard_update n_method k dt =
00:02:28 #19861 [Verbose] >     update_mps (n_method dt) (billiard_forces k)
00:02:28 #19862 [Verbose] >
00:02:28 #19863 [Verbose] > inl billiard_initial () =
00:02:28 #19864 [Verbose] >     inl ball_mass = 0.160
00:02:28 #19865 [Verbose] >     inl (particle_state default_particle_state') = default_particle_state ()
00:02:28 #19866 [Verbose] >     multi_particle_state [[
00:02:28 #19867 [Verbose] >         particle_state {
00:02:28 #19868 [Verbose] >             default_particle_state' with
00:02:28 #19869 [Verbose] >                 mass = ball_mass
00:02:28 #19870 [Verbose] >                 pos_vec = zero_vec ()
00:02:28 #19871 [Verbose] >                 velocity = 0.2 *^ i_hat ()
00:02:28 #19872 [Verbose] >         }
00:02:28 #19873 [Verbose] >         particle_state {
00:02:28 #19874 [Verbose] >             default_particle_state' with
00:02:28 #19875 [Verbose] >                 mass = ball_mass
00:02:28 #19876 [Verbose] >                 pos_vec = i_hat () ^+^ 0.02 *^ j_hat ()
00:02:28 #19877 [Verbose] >                 velocity = zero_vec ()
00:02:28 #19878 [Verbose] >         }
00:02:28 #19879 [Verbose] >     ]]
00:02:28 #19880 [Verbose] >
00:02:28 #19881 [Verbose] > inl billiard_states ~n_method k dt =
00:02:28 #19882 [Verbose] >     states_mps (n_method dt) (billiard_forces k) (billiard_initial ())
00:02:28 #19883 [Verbose] >
00:02:28 #19884 [Verbose] > inl billiard_states_finite n_method k dt =
00:02:28 #19885 [Verbose] >     billiard_states n_method k dt
00:02:28 #19886 [Verbose] >     >> Some
00:02:28 #19887 [Verbose] >     |> seq.take_while_ (fun (multi_particle_state mpst) (_ : i32) =>
00:02:28 #19888 [Verbose] >         (mpst |> listm'.item 0i32).time <= 10
00:02:28 #19889 [Verbose] >     )
00:02:28 #19890 [Verbose] >
00:02:28 #19891 [Verbose] > inl momentum (particle_state st) =
00:02:28 #19892 [Verbose] >     inl m = st.mass
00:02:28 #19893 [Verbose] >     inl v = st.velocity
00:02:28 #19894 [Verbose] >     m *^ v
00:02:28 #19895 [Verbose] >
00:02:28 #19896 [Verbose] > inl system_p (multi_particle_state sts) =
00:02:28 #19897 [Verbose] >     sts |> listm.map momentum |> sum_vec
00:02:28 #19898 [Verbose] >
00:02:28 #19899 [Verbose] >
00:02:28 #19900 [Verbose] > inl time_ke_ec_x, time_ke_ec_y =
00:02:28 #19901 [Verbose] >     billiard_states_finite euler_cromer_mps 30 0.03
00:02:28 #19902 [Verbose] >     |> listm.map (fun (multi_particle_state mpst) =>
00:02:28 #19903 [Verbose] >         (mpst |> listm'.item 0i32).time, system_ke (multi_particle_state mpst)
00:02:28 #19904 [Verbose] >     )
00:02:28 #19905 [Verbose] >     |> listm'.unzip
00:02:28 #19906 [Verbose] >
00:02:28 #19907 [Verbose] > inl time_ke_rk4_x, time_ke_rk4_y =
00:02:28 #19908 [Verbose] >     billiard_states_finite runge_kutta_4 30 0.03
00:02:28 #19909 [Verbose] >     |> listm.map (fun (multi_particle_state mpst) =>
00:02:28 #19910 [Verbose] >         (mpst |> listm'.item 0i32).time, system_ke (multi_particle_state mpst)
00:02:28 #19911 [Verbose] >     )
00:02:28 #19912 [Verbose] >     |> listm'.unzip
00:02:28 #19913 [Verbose] >
00:02:28 #19914 [Verbose] > inl time_ke_ec_x : a i32 _ = time_ke_ec_x |> listm.toArray
00:02:28 #19915 [Verbose] > inl time_ke_ec_y : a i32 _ = time_ke_ec_y |> listm.toArray
00:02:28 #19916 [Verbose] >
00:02:28 #19917 [Verbose] > inl time_ke_rk4_x : a i32 _ = time_ke_rk4_x |> listm.toArray
00:02:28 #19918 [Verbose] > inl time_ke_rk4_y : a i32 _ = time_ke_rk4_y |> listm.toArray
00:02:28 #19919 [Verbose] >
00:02:28 #19920 [Verbose] > "system kinetic energy versus time",
00:02:28 #19921 [Verbose] > "time (s)",
00:02:28 #19922 [Verbose] > "system kinetic energy (j)",
00:02:28 #19923 [Verbose] > ;[[
00:02:28 #19924 [Verbose] >     "euler-cromer", time_ke_ec_x, time_ke_ec_y
00:02:28 #19925 [Verbose] >     "runge-kutta 4", time_ke_rk4_x, time_ke_rk4_y
00:02:28 #19926 [Verbose] > ]]
00:02:28 #19927 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-5772-7266-71f3e2291199/main.spi
00:02:29 #19928 [Verbose] >
00:02:29 #19929 [Verbose] > ╭─[ 1.43s - return value ]─────────────────────────────────────────────────────╮
00:02:29 #19930 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480"                          │
00:02:29 #19931 [Verbose] > │ xmlns="http://www.w3.org/2000/svg">                                          │
00:02:29 #19932 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414"        │
00:02:29 #19933 [Verbose] > │ stroke="none"/>                                                              │
00:02:29 #19934 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle"                        │
00:02:29 #19935 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1"            │
00:02:29 #19936 [Verbose] > │ fill="#FFFFFF">                                                              │
00:02:29 #19937 [Verbose] > │ system kinetic energy versus time                                            │
00:02:29 #19938 [Verbose] > │ </text>                                                                      │
00:02:29 #19939 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="59" y1="424" x2="59" │
00:02:29 #19940 [Verbose] > │ y2="75"/>                                                                    │
00:02:29 #19941 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:02:29 #19942 [Verbose] > │ y2="75"/>                                                                    │
00:02:29 #19943 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="79" y1="424" x2="79" │
00:02:29 #19944 [Verbose] > │ y2="75"/>                                                                    │
00:02:29 #19945 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="89" y1="424" x2="89" │
00:02:29 #19946 [Verbose] > │ y2="75"/>                                                                    │
00:02:29 #19947 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1...                        │
00:02:29 #19948 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:29 #19949 [Verbose] >
00:02:30 #19950 [Verbose] > ╭─[ 1.44s - stdout ]───────────────────────────────────────────────────────────╮
00:02:30 #19951 [Verbose] > │ type UH0 =                                                                   │
00:02:30 #19952 [Verbose] > │     | UH0_0 of float * float * float * float * float * float * float * float │
00:02:30 #19953 [Verbose] > │ * float * UH0                                                                │
00:02:30 #19954 [Verbose] > │     | UH0_1                                                                  │
00:02:30 #19955 [Verbose] > │ and UH1 =                                                                    │
00:02:30 #19956 [Verbose] > │     | UH1_0 of float * float * float * float * float * float * float * float │
00:02:30 #19957 [Verbose] > │ * float * UH1                                                                │
00:02:30 #19958 [Verbose] > │     | UH1_1                                                                  │
00:02:30 #19959 [Verbose] > │ and UH2 =                                                                    │
00:02:30 #19960 [Verbose] > │     | UH2_0 of float * float * float * float * float * float * float * float │
00:02:30 #19961 [Verbose] > │ * float * float * float * float * float * float * float * float * float *    │
00:02:30 #19962 [Verbose] > │ float * UH2                                                                  │
00:02:30 #19963 [Verbose] > │     | UH2_1                                                                  │
00:02:30 #19964 [Verbose] > │ and UH3 =                                                                    │
00:02:30 #19965 [Verbose] > │     | UH3_0 of int32 * float * float * float * float * float * float * float │
00:02:30 #19966 [Verbose] > │ * float * float * UH3                                                        │
00:02:30 #19967 [Verbose] > │     | UH3_1                                                                  │
00:02:30 #19968 [Verbose] > │ and [<Struct>] US0 =                                                         │
00:02:30 #19969 [Verbose] > │     | US0_0                                                                  │
00:02:30 #19970 [Verbose] > │     | US0_1 of f1_0 : float * f1_1 : float * f1_2 : float * f1_3 : float *   │
00:02:30 #19971 [Verbose] > │ f1_4 : float * f1_5 : float * f1_6 : float * f1_7 : float * f1_8 : float     │
00:02:30 #19972 [Verbose] > │ and UH4 =                                                                    │
00:02:30 #19973 [Verbose] > │     | UH4_0 of UH0 * UH4                                                     │
00:02:30 #19974 [Verbose] > │     | UH4_1                                                                  │
00:02:30 #19975 [Verbose] > │ and UH5 =                                                                    │
00:02:30 #19976 [Verbose] > │     | UH5_0 of float * float * UH5                                           │
00:02:30 #19977 [Verbose] > │     | UH5_1                                                                  │
00:02:30 #19978 [Verbose] > │ and UH6 =                                                                    │
00:02:30 #19979 [Verbose] > │     | UH6_0 of float * UH6                                                   │
00:02:30 #19980 [Verbose] > │     | UH6_1                                                                  │
00:02:30 #19981 [Verbose] > │ let rec method2 (v0 : UH0, v1 : UH0) : UH0 =                                 │
00:02:30 #19982 [Verbose] > │     match v0 with                                                            │
00:02:30 #19983 [Verbose] > │     | UH0_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *)          │
00:02:30 #19984 [Verbose] > │         let v12 : UH0 = UH0_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v1)       │
00:02:30 #19985 [Verbose] > │         method2(v11, v12)                                                    │
00:02:30 #19986 [Verbose] > │     | UH0_1 -> (* Nil *)                                                     │
00:02:30 #19987 [Verbose] > │         v1                                                                   │
00:02:30 #19988 [Verbose] > │ and method1 (v0 : float, v1 : UH0, v2 : UH1, v3 : UH0) : UH0 =               │
00:02:30 #19989 [Verbose] > │     match v2 with                                                            │
00:02:30 #19990 [Verbose] > │     | UH1_0(v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) -> (* Cons *)        │
00:02:30 #19991 [Verbose] > │         match v3 with                                                        │
00:02:30 #19992 [Verbose] > │         | UH0_0(v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) -> (* Cons │
00:02:30 #19993 [Verbose] > │ *)                                                                           │
00:02:30 #19994 [Verbose] > │             let v24 : float = v9 * v0                                        │
00:02:30 #19995 [Verbose] > │             let v25 : float = v19 + v24                                      │
00:02:30 #19996 [Verbose] > │             let v26 : float = v0 * v6                                        │
00:02:30 #19997 [Verbose] > │             let v27 : float = v0 * v7                                        │
00:02:30 #19998 [Verbose] > │             let v28 : float = v0 * v8                                        │
00:02:30 #19999 [Verbose] > │             let v29 : float = v16 + v26                                      │
00:02:30 #20000 [Verbose] > │             let v30 : float = v17 + v27                                      │
00:02:30 #20001 [Verbose] > │             let v31 : float = v18 + v28                                      │
00:02:30 #20002 [Verbose] > │             let v32 : float = v0 * v10                                       │
00:02:30 #20003 [Verbose] > │             let v33 : float = v0 * v11                                       │
00:02:30 #20004 [Verbose] > │             let v34 : float = v0 * v12                                       │
00:02:30 #20005 [Verbose] > │             let v35 : float = v20 + v32                                      │
00:02:30 #20006 [Verbose] > │             let v36 : float = v21 + v33                                      │
00:02:30 #20007 [Verbose] > │             let v37 : float = v22 + v34                                      │
00:02:30 #20008 [Verbose] > │             let v38 : UH0 = UH0_0(v14, v15, v29, v30, v31, v25, v35, v36,    │
00:02:30 #20009 [Verbose] > │ v37, v1)                                                                     │
00:02:30 #20010 [Verbose] > │             method1(v0, v38, v13, v23)                                       │
00:02:30 #20011 [Verbose] > │         | _ ->                                                               │
00:02:30 #20012 [Verbose] > │             let v40 : UH0 = UH0_1                                            │
00:02:30 #20013 [Verbose] > │             method2(v1, v40)                                                 │
00:02:30 #20014 [Verbose] > │     | _ ->                                                                   │
00:02:30 #20015 [Verbose] > │         let v43 : UH0 = UH0_1                                                │
00:02:30 #20016 [Verbose] > │         method2(v1, v43)                                                     │
00:02:30 #20017 [Verbose] > │ and method4 (v0 : UH2, v1 : UH2) : UH2 =                                     │
00:02:30 #20018 [Verbose] > │     match v0 with                                                            │
00:02:30 #20019 [Verbose] > │     | UH2_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15,    │
00:02:30 #20020 [Verbose] > │ v16, v17, v18, v19, v20) -> (* Cons *)                                       │
00:02:30 #20021 [Verbose] > │         let v21 : UH2 = UH2_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, │
00:02:30 #20022 [Verbose] > │ v13, v14, v15, v16, v17, v18, v19, v1)                                       │
00:02:30 #20023 [Verbose] > │         method4(v20, v21)                                                    │
00:02:30 #20024 [Verbose] > │     | UH2_1 -> (* Nil *)                                                     │
00:02:30 #20025 [Verbose] > │         v1                                                                   │
00:02:30 #20026 [Verbose] > │ and method3 (v0 : UH2, v1 : UH0, v2 : UH0) : UH2 =                           │
00:02:30 #20027 [Verbose] > │     match v1 with                                                            │
00:02:30 #20028 [Verbose] > │     | UH0_0(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) -> (* Cons *)         │
00:02:30 #20029 [Verbose] > │         match v2 with                                                        │
00:02:30 #20030 [Verbose] > │         | UH0_0(v13, v14, v15, v16, v17, v18, v19, v20, v21, v22) -> (* Cons │
00:02:30 #20031 [Verbose] > │ *)                                                                           │
00:02:30 #20032 [Verbose] > │             let v23 : UH2 = UH2_0(v3, v4, v5, v6, v7, v8, v9, v10, v11, v13, │
00:02:30 #20033 [Verbose] > │ v14, v15, v16, v17, v18, v19, v20, v21, v0)                                  │
00:02:30 #20034 [Verbose] > │             method3(v23, v12, v22)                                           │
00:02:30 #20035 [Verbose] > │         | _ ->                                                               │
00:02:30 #20036 [Verbose] > │             let v25 : UH2 = UH2_1                                            │
00:02:30 #20037 [Verbose] > │             method4(v0, v25)                                                 │
00:02:30 #20038 [Verbose] > │     | _ ->                                                                   │
00:02:30 #20039 [Verbose] > │         let v28 : UH2 = UH2_1                                                │
00:02:30 #20040 [Verbose] > │         method4(v0, v28)                                                     │
00:02:30 #20041 [Verbose] > │ and method5 (v0 : float, v1 : UH2, v2 : UH0) : UH0 =                         │
00:02:30 #20042 [Verbose] > │     match v1 with                                                            │
00:02:30 #20043 [Verbose] > │     | UH2_0(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16,   │
00:02:30 #20044 [Verbose] > │ v17, v18, v19, v20, v21) -> (* Cons *)                                       │
00:02:30 #20045 [Verbose] > │         let v22 : UH0 = method5(v0, v21, v2)                                 │
00:02:30 #20046 [Verbose] > │         let v23 : float = v0 * v18                                           │
00:02:30 #20047 [Verbose] > │         let v24 : float = v0 * v19                                           │
00:02:30 #20048 [Verbose] > │         let v25 : float = v0 * v20                                           │
00:02:30 #20049 [Verbose] > │         let v26 : float = v5 + v23                                           │
00:02:30 #20050 [Verbose] > │         let v27 : float = v6 + v24                                           │
00:02:30 #20051 [Verbose] > │         let v28 : float = v7 + v25                                           │
00:02:30 #20052 [Verbose] > │         UH0_0(v12, v13, v26, v27, v28, v17, v18, v19, v20, v22)              │
00:02:30 #20053 [Verbose] > │     | UH2_1 -> (* Nil *)                                                     │
00:02:30 #20054 [Verbose] > │         v2                                                                   │
00:02:30 #20055 [Verbose] > │ and closure2 (v0 : float, v1 : (UH0 -> UH1)) (v2 : UH0) : UH0 =              │
00:02:30 #20056 [Verbose] > │     let v3 : UH1 = v1 v2                                                     │
00:02:30 #20057 [Verbose] > │     let v4 : UH0 = UH0_1                                                     │
00:02:30 #20058 [Verbose] > │     let v5 : UH0 = method1(v0, v4, v3, v2)                                   │
00:02:30 #20059 [Verbose] > │     let v6 : UH2 = UH2_1                                                     │
00:02:30 #20060 [Verbose] > │     let v7 : UH2 = method3(v6, v2, v5)                                       │
00:02:30 #20061 [Verbose] > │     let v8 : UH0 = UH0_1                                                     │
00:02:30 #20062 [Verbose] > │     let v9 : UH0 = method5(v0, v7, v8)                                       │
00:02:30 #20063 [Verbose] > │     v9                                                                       │
00:02:30 #20064 [Verbose] > │ and closure1 (v0 : float) (v1 : (UH0 -> UH1)) : (UH0 -> UH0) =               │
00:02:30 #20065 [Verbose] > │     closure2(v0, v1)                                                         │
00:02:30 #20066 [Verbose] > │ and closure0 () (v0 : float) : ((UH0 -> UH1) -> (UH0 -> UH0)) =              │
00:02:30 #20067 [Verbose] > │     closure1(v0)                                                             │
00:02:30 #20068 [Verbose] > │ and method6 (v0 : UH0, v1 : UH3, v2 : int32) : struct (UH3 * int32) =        │
00:02:30 #20069 [Verbose] > │     match v0 with                                                            │
00:02:30 #20070 [Verbose] > │     | UH0_0(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) -> (* Cons *)         │
00:02:30 #20071 [Verbose] > │         let v13 : int32 = v2 + 1                                             │
00:02:30 #20072 [Verbose] > │         let v14 : UH3 = UH3_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v1)  │
00:02:30 #20073 [Verbose] > │         method6(v12, v14, v13)                                               │
00:02:30 #20074 [Verbose] > │     | UH0_1 -> (* Nil *)                                                     │
00:02:30 #20075 [Verbose] > │         struct (v1, v2)                                                      │
00:02:30 #20076 [Verbose] > │ and method7 (v0 : UH3, v1 : UH3) : UH3 =                                     │
00:02:30 #20077 [Verbose] > │     match v0 with                                                            │
00:02:30 #20078 [Verbose] > │     | UH3_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) -> (* Cons *)     │
00:02:30 #20079 [Verbose] > │         let v13 : UH3 = UH3_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v1)  │
00:02:30 #20080 [Verbose] > │         method7(v12, v13)                                                    │
00:02:30 #20081 [Verbose] > │     | UH3_1 -> (* Nil *)                                                     │
00:02:30 #20082 [Verbose] > │         v1                                                                   │
00:02:30 #20083 [Verbose] > │ and closure4 (v0 : float, v1 : float, v2 : float, v3 : float, v4 : float, v5 │
00:02:30 #20084 [Verbose] > │ : float, v6 : float, v7 : float, v8 : float) struct (v9 : float, v10 :       │
00:02:30 #20085 [Verbose] > │ float, v11 : float, v12 : float, v13 : float, v14 : float, v15 : float, v16  │
00:02:30 #20086 [Verbose] > │ : float, v17 : float) : struct (float * float * float) =                     │
00:02:30 #20087 [Verbose] > │     let v18 : float = -1.0 * v2                                              │
00:02:30 #20088 [Verbose] > │     let v19 : float = -1.0 * v3                                              │
00:02:30 #20089 [Verbose] > │     let v20 : float = -1.0 * v4                                              │
00:02:30 #20090 [Verbose] > │     let v21 : float = v11 + v18                                              │
00:02:30 #20091 [Verbose] > │     let v22 : float = v12 + v19                                              │
00:02:30 #20092 [Verbose] > │     let v23 : float = v13 + v20                                              │
00:02:30 #20093 [Verbose] > │     let v24 : float = v21 * v21                                              │
00:02:30 #20094 [Verbose] > │     let v25 : float = v22 * v22                                              │
00:02:30 #20095 [Verbose] > │     let v26 : float = v24 + v25                                              │
00:02:30 #20096 [Verbose] > │     let v27 : float = v23 * v23                                              │
00:02:30 #20097 [Verbose] > │     let v28 : float = v26 + v27                                              │
00:02:30 #20098 [Verbose] > │     let v29 : float = sqrt v28                                               │
00:02:30 #20099 [Verbose] > │     let v30 : bool = v29 >= 0.06                                             │
00:02:30 #20100 [Verbose] > │     let v33 : float =                                                        │
00:02:30 #20101 [Verbose] > │         if v30 then                                                          │
00:02:30 #20102 [Verbose] > │             0.0                                                              │
00:02:30 #20103 [Verbose] > │         else                                                                 │
00:02:30 #20104 [Verbose] > │             let v31 : float = v29 - 0.06                                     │
00:02:30 #20105 [Verbose] > │             let v32 : float = -30.0 * v31                                    │
00:02:30 #20106 [Verbose] > │             v32                                                              │
00:02:30 #20107 [Verbose] > │     let v34 : float = v33 * v21                                              │
00:02:30 #20108 [Verbose] > │     let v35 : float = v33 * v22                                              │
00:02:30 #20109 [Verbose] > │     let v36 : float = v33 * v23                                              │
00:02:30 #20110 [Verbose] > │     let v37 : float = v34 / v29                                              │
00:02:30 #20111 [Verbose] > │     let v38 : float = v35 / v29                                              │
00:02:30 #20112 [Verbose] > │     let v39 : float = v36 / v29                                              │
00:02:30 #20113 [Verbose] > │     struct (v37, v38, v39)                                                   │
00:02:30 #20114 [Verbose] > │ and closure5 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4 : │
00:02:30 #20115 [Verbose] > │ float, v5 : float, v6 : float, v7 : float, v8 : float) : struct (float *     │
00:02:30 #20116 [Verbose] > │ float * float) =                                                             │
00:02:30 #20117 [Verbose] > │     struct (0.0, 0.0, 0.0)                                                   │
00:02:30 #20118 [Verbose] > │ and method8 (v0 : UH0, v1 : UH3, v2 : UH1) : UH1 =                           │
00:02:30 #20119 [Verbose] > │     match v1 with                                                            │
00:02:30 #20120 [Verbose] > │     | UH3_0(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) -> (* Cons *)    │
00:02:30 #20121 [Verbose] > │         let v14 : UH1 = method8(v0, v13, v2)                                 │
00:02:30 #20122 [Verbose] > │         let v15 : bool = v3 = 0                                              │
00:02:30 #20123 [Verbose] > │         let v134 : (struct (float * float * float * float * float * float *  │
00:02:30 #20124 [Verbose] > │ float * float * float) -> struct (float * float * float)) =                  │
00:02:30 #20125 [Verbose] > │             if v15 then                                                      │
00:02:30 #20126 [Verbose] > │                 let v42 : US0 =                                              │
00:02:30 #20127 [Verbose] > │                     match v0 with                                            │
00:02:30 #20128 [Verbose] > │                     | UH0_0(v16, v17, v18, v19, v20, v21, v22, v23, v24,     │
00:02:30 #20129 [Verbose] > │ v25) -> (* Cons *)                                                           │
00:02:30 #20130 [Verbose] > │                         match v25 with                                       │
00:02:30 #20131 [Verbose] > │                         | UH0_0(v26, v27, v28, v29, v30, v31, v32, v33, v34, │
00:02:30 #20132 [Verbose] > │ v35) -> (* Cons *)                                                           │
00:02:30 #20133 [Verbose] > │                             US0_1(v26, v27, v28, v29, v30, v31, v32, v33,    │
00:02:30 #20134 [Verbose] > │ v34)                                                                         │
00:02:30 #20135 [Verbose] > │                         | UH0_1 -> (* Nil *)                                 │
00:02:30 #20136 [Verbose] > │                             US0_0                                            │
00:02:30 #20137 [Verbose] > │                     | UH0_1 -> (* Nil *)                                     │
00:02:30 #20138 [Verbose] > │                         US0_0                                                │
00:02:30 #20139 [Verbose] > │                 let struct (v70 : float, v71 : float, v72 : float, v73 :     │
00:02:30 #20140 [Verbose] > │ float, v74 : float, v75 : float, v76 : float, v77 : float, v78 : float) =    │
00:02:30 #20141 [Verbose] > │                     match v42 with                                           │
00:02:30 #20142 [Verbose] > │                     | US0_0 -> (* None *)                                    │
00:02:30 #20143 [Verbose] > │                         failwith<struct (float * float * float * float *     │
00:02:30 #20144 [Verbose] > │ float * float * float * float * float)> "Option does not have a value."      │
00:02:30 #20145 [Verbose] > │                     | US0_1(v43, v44, v45, v46, v47, v48, v49, v50, v51) ->  │
00:02:30 #20146 [Verbose] > │ (* Some *)                                                                   │
00:02:30 #20147 [Verbose] > │                         struct (v43, v44, v45, v46, v47, v48, v49, v50, v51) │
00:02:30 #20148 [Verbose] > │                 closure4(v70, v71, v72, v73, v74, v75, v76, v77, v78)        │
00:02:30 #20149 [Verbose] > │             else                                                             │
00:02:30 #20150 [Verbose] > │                 let v80 : bool = v3 = 1                                      │
00:02:30 #20151 [Verbose] > │                 if v80 then                                                  │
00:02:30 #20152 [Verbose] > │                     let v94 : US0 =                                          │
00:02:30 #20153 [Verbose] > │                         match v0 with                                        │
00:02:30 #20154 [Verbose] > │                         | UH0_0(v81, v82, v83, v84, v85, v86, v87, v88, v89, │
00:02:30 #20155 [Verbose] > │ v90) -> (* Cons *)                                                           │
00:02:30 #20156 [Verbose] > │                             US0_1(v81, v82, v83, v84, v85, v86, v87, v88,    │
00:02:30 #20157 [Verbose] > │ v89)                                                                         │
00:02:30 #20158 [Verbose] > │                         | UH0_1 -> (* Nil *)                                 │
00:02:30 #20159 [Verbose] > │                             US0_0                                            │
00:02:30 #20160 [Verbose] > │                     let struct (v122 : float, v123 : float, v124 : float,    │
00:02:30 #20161 [Verbose] > │ v125 : float, v126 : float, v127 : float, v128 : float, v129 : float, v130 : │
00:02:30 #20162 [Verbose] > │ float) =                                                                     │
00:02:30 #20163 [Verbose] > │                         match v94 with                                       │
00:02:30 #20164 [Verbose] > │                         | US0_0 -> (* None *)                                │
00:02:30 #20165 [Verbose] > │                             failwith<struct (float * float * float * float * │
00:02:30 #20166 [Verbose] > │ float * float * float * float * float)> "Option does not have a value."      │
00:02:30 #20167 [Verbose] > │                         | US0_1(v95, v96, v97, v98, v99, v100, v101, v102,   │
00:02:30 #20168 [Verbose] > │ v103) -> (* Some *)                                                          │
00:02:30 #20169 [Verbose] > │                             struct (v95, v96, v97, v98, v99, v100, v101,     │
00:02:30 #20170 [Verbose] > │ v102, v103)                                                                  │
00:02:30 #20171 [Verbose] > │                     closure4(v122, v123, v124, v125, v126, v127, v128, v129, │
00:02:30 #20172 [Verbose] > │ v130)                                                                        │
00:02:30 #20173 [Verbose] > │                 else                                                         │
00:02:30 #20174 [Verbose] > │                     closure5()                                               │
00:02:30 #20175 [Verbose] > │         let struct (v135 : float, v136 : float, v137 : float) = v134 struct  │
00:02:30 #20176 [Verbose] > │ (v4, v5, v6, v7, v8, v9, v10, v11, v12)                                      │
00:02:30 #20177 [Verbose] > │         let v138 : float = v135 / v5                                         │
00:02:30 #20178 [Verbose] > │         let v139 : float = v136 / v5                                         │
00:02:30 #20179 [Verbose] > │         let v140 : float = v137 / v5                                         │
00:02:30 #20180 [Verbose] > │         UH1_0(0.0, 0.0, v10, v11, v12, 1.0, v138, v139, v140, v14)           │
00:02:30 #20181 [Verbose] > │     | UH3_1 -> (* Nil *)                                                     │
00:02:30 #20182 [Verbose] > │         v2                                                                   │
00:02:30 #20183 [Verbose] > │ and closure3 () (v0 : UH0) : UH1 =                                           │
00:02:30 #20184 [Verbose] > │     let v1 : UH3 = UH3_1                                                     │
00:02:30 #20185 [Verbose] > │     let v2 : int32 = 0                                                       │
00:02:30 #20186 [Verbose] > │     let struct (v3 : UH3, v4 : int32) = method6(v0, v1, v2)                  │
00:02:30 #20187 [Verbose] > │     let v5 : UH3 = UH3_1                                                     │
00:02:30 #20188 [Verbose] > │     let v6 : UH3 = method7(v3, v5)                                           │
00:02:30 #20189 [Verbose] > │     let v7 : UH1 = UH1_1                                                     │
00:02:30 #20190 [Verbose] > │     let v8 : UH1 = method8(v0, v6, v7)                                       │
00:02:30 #20191 [Verbose] > │     v8                                                                       │
00:02:30 #20192 [Verbose] > │ and method10 (v0 : (UH0 -> UH0), v1 : UH0, v2 : int32) : UH0 =               │
00:02:30 #20193 [Verbose] > │     let v3 : bool = v2 <= 0                                                  │
00:02:30 #20194 [Verbose] > │     if v3 then                                                               │
00:02:30 #20195 [Verbose] > │         v1                                                                   │
00:02:30 #20196 [Verbose] > │     else                                                                     │
00:02:30 #20197 [Verbose] > │         let v4 : UH0 = v0 v1                                                 │
00:02:30 #20198 [Verbose] > │         let v5 : int32 = v2 - 1                                              │
00:02:30 #20199 [Verbose] > │         method10(v0, v4, v5)                                                 │
00:02:30 #20200 [Verbose] > │ and method11 (v0 : UH4, v1 : UH4) : UH4 =                                    │
00:02:30 #20201 [Verbose] > │     match v0 with                                                            │
00:02:30 #20202 [Verbose] > │     | UH4_0(v2, v3) -> (* Cons *)                                            │
00:02:30 #20203 [Verbose] > │         let v4 : UH4 = UH4_0(v2, v1)                                         │
00:02:30 #20204 [Verbose] > │         method11(v3, v4)                                                     │
00:02:30 #20205 [Verbose] > │     | UH4_1 -> (* Nil *)                                                     │
00:02:30 #20206 [Verbose] > │         v1                                                                   │
00:02:30 #20207 [Verbose] > │ and method9 (v0 : (UH0 -> UH0), v1 : UH4, v2 : int32) : UH4 =                │
00:02:30 #20208 [Verbose] > │     let v3 : float = 0.0                                                     │
00:02:30 #20209 [Verbose] > │     let v4 : float = 0.16                                                    │
00:02:30 #20210 [Verbose] > │     let v5 : float = 0.0                                                     │
00:02:30 #20211 [Verbose] > │     let v6 : float = 0.0                                                     │
00:02:30 #20212 [Verbose] > │     let v7 : float = 0.0                                                     │
00:02:30 #20213 [Verbose] > │     let v8 : float = 0.0                                                     │
00:02:30 #20214 [Verbose] > │     let v9 : float = 0.2                                                     │
00:02:30 #20215 [Verbose] > │     let v10 : float = 0.0                                                    │
00:02:30 #20216 [Verbose] > │     let v11 : float = 0.0                                                    │
00:02:30 #20217 [Verbose] > │     let v12 : float = 1.0                                                    │
00:02:30 #20218 [Verbose] > │     let v13 : float = 0.02                                                   │
00:02:30 #20219 [Verbose] > │     let v14 : float = 0.0                                                    │
00:02:30 #20220 [Verbose] > │     let v15 : float = 0.0                                                    │
00:02:30 #20221 [Verbose] > │     let v16 : float = 0.0                                                    │
00:02:30 #20222 [Verbose] > │     let v17 : float = 0.0                                                    │
00:02:30 #20223 [Verbose] > │     let v18 : UH0 = UH0_1                                                    │
00:02:30 #20224 [Verbose] > │     let v19 : UH0 = UH0_0(v3, v4, v12, v13, v14, v8, v15, v16, v17, v18)     │
00:02:30 #20225 [Verbose] > │     let v20 : UH0 = UH0_0(v3, v4, v5, v6, v7, v8, v9, v10, v11, v19)         │
00:02:30 #20226 [Verbose] > │     let v21 : UH0 = method10(v0, v20, v2)                                    │
00:02:30 #20227 [Verbose] > │     let v35 : US0 =                                                          │
00:02:30 #20228 [Verbose] > │         match v21 with                                                       │
00:02:30 #20229 [Verbose] > │         | UH0_0(v22, v23, v24, v25, v26, v27, v28, v29, v30, v31) -> (* Cons │
00:02:30 #20230 [Verbose] > │ *)                                                                           │
00:02:30 #20231 [Verbose] > │             US0_1(v22, v23, v24, v25, v26, v27, v28, v29, v30)               │
00:02:30 #20232 [Verbose] > │         | UH0_1 -> (* Nil *)                                                 │
00:02:30 #20233 [Verbose] > │             US0_0                                                            │
00:02:30 #20234 [Verbose] > │     let struct (v63 : float, v64 : float, v65 : float, v66 : float, v67 :    │
00:02:30 #20235 [Verbose] > │ float, v68 : float, v69 : float, v70 : float, v71 : float) =                 │
00:02:30 #20236 [Verbose] > │         match v35 with                                                       │
00:02:30 #20237 [Verbose] > │         | US0_0 -> (* None *)                                                │
00:02:30 #20238 [Verbose] > │             failwith<struct (float * float * float * float * float * float * │
00:02:30 #20239 [Verbose] > │ float * float * float)> "Option does not have a value."                      │
00:02:30 #20240 [Verbose] > │         | US0_1(v36, v37, v38, v39, v40, v41, v42, v43, v44) -> (* Some *)   │
00:02:30 #20241 [Verbose] > │             struct (v36, v37, v38, v39, v40, v41, v42, v43, v44)             │
00:02:30 #20242 [Verbose] > │     let v72 : bool = v68 <= 10.0                                             │
00:02:30 #20243 [Verbose] > │     if v72 then                                                              │
00:02:30 #20244 [Verbose] > │         let v73 : UH4 = UH4_0(v21, v1)                                       │
00:02:30 #20245 [Verbose] > │         let v74 : int32 = v2 + 1                                             │
00:02:30 #20246 [Verbose] > │         method9(v0, v73, v74)                                                │
00:02:30 #20247 [Verbose] > │     else                                                                     │
00:02:30 #20248 [Verbose] > │         let v76 : UH4 = UH4_1                                                │
00:02:30 #20249 [Verbose] > │         method11(v1, v76)                                                    │
00:02:30 #20250 [Verbose] > │ and method13 (v0 : UH0, v1 : UH6) : UH6 =                                    │
00:02:30 #20251 [Verbose] > │     match v0 with                                                            │
00:02:30 #20252 [Verbose] > │     | UH0_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *)          │
00:02:30 #20253 [Verbose] > │         let v12 : UH6 = method13(v11, v1)                                    │
00:02:30 #20254 [Verbose] > │         let v13 : float = v8 * v8                                            │
00:02:30 #20255 [Verbose] > │         let v14 : float = v9 * v9                                            │
00:02:30 #20256 [Verbose] > │         let v15 : float = v13 + v14                                          │
00:02:30 #20257 [Verbose] > │         let v16 : float = v10 * v10                                          │
00:02:30 #20258 [Verbose] > │         let v17 : float = v15 + v16                                          │
00:02:30 #20259 [Verbose] > │         let v18 : float = sqrt v17                                           │
00:02:30 #20260 [Verbose] > │         let v19 : float = 0.5 * v3                                           │
00:02:30 #20261 [Verbose] > │         let v20 : float = v18 ** 2.0                                         │
00:02:30 #20262 [Verbose] > │         let v21 : float = v19 * v20                                          │
00:02:30 #20263 [Verbose] > │         UH6_0(v21, v12)                                                      │
00:02:30 #20264 [Verbose] > │     | UH0_1 -> (* Nil *)                                                     │
00:02:30 #20265 [Verbose] > │         v1                                                                   │
00:02:30 #20266 [Verbose] > │ and method14 (v0 : UH6, v1 : float) : float =                                │
00:02:30 #20267 [Verbose] > │     match v0 with                                                            │
00:02:30 #20268 [Verbose] > │     | UH6_0(v2, v3) -> (* Cons *)                                            │
00:02:30 #20269 [Verbose] > │         let v4 : float = v1 + v2                                             │
00:02:30 #20270 [Verbose] > │         method14(v3, v4)                                                     │
00:02:30 #20271 [Verbose] > │     | UH6_1 -> (* Nil *)                                                     │
00:02:30 #20272 [Verbose] > │         v1                                                                   │
00:02:30 #20273 [Verbose] > │ and method12 (v0 : UH4, v1 : UH5) : UH5 =                                    │
00:02:30 #20274 [Verbose] > │     match v0 with                                                            │
00:02:30 #20275 [Verbose] > │     | UH4_0(v2, v3) -> (* Cons *)                                            │
00:02:30 #20276 [Verbose] > │         let v4 : UH5 = method12(v3, v1)                                      │
00:02:30 #20277 [Verbose] > │         let v18 : US0 =                                                      │
00:02:30 #20278 [Verbose] > │             match v2 with                                                    │
00:02:30 #20279 [Verbose] > │             | UH0_0(v5, v6, v7, v8, v9, v10, v11, v12, v13, v14) -> (* Cons  │
00:02:30 #20280 [Verbose] > │ *)                                                                           │
00:02:30 #20281 [Verbose] > │                 US0_1(v5, v6, v7, v8, v9, v10, v11, v12, v13)                │
00:02:30 #20282 [Verbose] > │             | UH0_1 -> (* Nil *)                                             │
00:02:30 #20283 [Verbose] > │                 US0_0                                                        │
00:02:30 #20284 [Verbose] > │         let struct (v46 : float, v47 : float, v48 : float, v49 : float, v50  │
00:02:30 #20285 [Verbose] > │ : float, v51 : float, v52 : float, v53 : float, v54 : float) =               │
00:02:30 #20286 [Verbose] > │             match v18 with                                                   │
00:02:30 #20287 [Verbose] > │             | US0_0 -> (* None *)                                            │
00:02:30 #20288 [Verbose] > │                 failwith<struct (float * float * float * float * float *     │
00:02:30 #20289 [Verbose] > │ float * float * float * float)> "Option does not have a value."              │
00:02:30 #20290 [Verbose] > │             | US0_1(v19, v20, v21, v22, v23, v24, v25, v26, v27) -> (* Some  │
00:02:30 #20291 [Verbose] > │ *)                                                                           │
00:02:30 #20292 [Verbose] > │                 struct (v19, v20, v21, v22, v23, v24, v25, v26, v27)         │
00:02:30 #20293 [Verbose] > │         let v55 : UH6 = UH6_1                                                │
00:02:30 #20294 [Verbose] > │         let v56 : UH6 = method13(v2, v55)                                    │
00:02:30 #20295 [Verbose] > │         let v57 : float = 0.0                                                │
00:02:30 #20296 [Verbose] > │         let v58 : float = method14(v56, v57)                                 │
00:02:30 #20297 [Verbose] > │         UH5_0(v51, v58, v4)                                                  │
00:02:30 #20298 [Verbose] > │     | UH4_1 -> (* Nil *)                                                     │
00:02:30 #20299 [Verbose] > │         v1                                                                   │
00:02:30 #20300 [Verbose] > │ and method15 (v0 : UH5, v1 : UH6, v2 : UH6) : struct (UH6 * UH6) =           │
00:02:30 #20301 [Verbose] > │     match v0 with                                                            │
00:02:30 #20302 [Verbose] > │     | UH5_0(v3, v4, v5) -> (* Cons *)                                        │
00:02:30 #20303 [Verbose] > │         let v6 : UH6 = UH6_0(v3, v1)                                         │
00:02:30 #20304 [Verbose] > │         let v7 : UH6 = UH6_0(v4, v2)                                         │
00:02:30 #20305 [Verbose] > │         method15(v5, v6, v7)                                                 │
00:02:30 #20306 [Verbose] > │     | UH5_1 -> (* Nil *)                                                     │
00:02:30 #20307 [Verbose] > │         struct (v1, v2)                                                      │
00:02:30 #20308 [Verbose] > │ and method16 (v0 : UH6, v1 : UH6) : UH6 =                                    │
00:02:30 #20309 [Verbose] > │     match v0 with                                                            │
00:02:30 #20310 [Verbose] > │     | UH6_0(v2, v3) -> (* Cons *)                                            │
00:02:30 #20311 [Verbose] > │         let v4 : UH6 = UH6_0(v2, v1)                                         │
00:02:30 #20312 [Verbose] > │         method16(v3, v4)                                                     │
00:02:30 #20313 [Verbose] > │     | UH6_1 -> (* Nil *)                                                     │
00:02:30 #20314 [Verbose] > │         v1                                                                   │
00:02:30 #20315 [Verbose] > │ and method18 (v0 : UH1, v1 : UH1) : UH1 =                                    │
00:02:30 #20316 [Verbose] > │     match v0 with                                                            │
00:02:30 #20317 [Verbose] > │     | UH1_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *)          │
00:02:30 #20318 [Verbose] > │         let v12 : UH1 = UH1_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v1)       │
00:02:30 #20319 [Verbose] > │         method18(v11, v12)                                                   │
00:02:30 #20320 [Verbose] > │     | UH1_1 -> (* Nil *)                                                     │
00:02:30 #20321 [Verbose] > │         v1                                                                   │
00:02:30 #20322 [Verbose] > │ and method17 (v0 : UH1, v1 : UH1, v2 : UH1) : UH1 =                          │
00:02:30 #20323 [Verbose] > │     match v1 with                                                            │
00:02:30 #20324 [Verbose] > │     | UH1_0(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) -> (* Cons *)         │
00:02:30 #20325 [Verbose] > │         match v2 with                                                        │
00:02:30 #20326 [Verbose] > │         | UH1_0(v13, v14, v15, v16, v17, v18, v19, v20, v21, v22) -> (* Cons │
00:02:30 #20327 [Verbose] > │ *)                                                                           │
00:02:30 #20328 [Verbose] > │             let v23 : float = v3 + v13                                       │
00:02:30 #20329 [Verbose] > │             let v24 : float = v4 + v14                                       │
00:02:30 #20330 [Verbose] > │             let v25 : float = v8 + v18                                       │
00:02:30 #20331 [Verbose] > │             let v26 : float = v5 + v15                                       │
00:02:30 #20332 [Verbose] > │             let v27 : float = v6 + v16                                       │
00:02:30 #20333 [Verbose] > │             let v28 : float = v7 + v17                                       │
00:02:30 #20334 [Verbose] > │             let v29 : float = v9 + v19                                       │
00:02:30 #20335 [Verbose] > │             let v30 : float = v10 + v20                                      │
00:02:30 #20336 [Verbose] > │             let v31 : float = v11 + v21                                      │
00:02:30 #20337 [Verbose] > │             let v32 : UH1 = UH1_0(v23, v24, v26, v27, v28, v25, v29, v30,    │
00:02:30 #20338 [Verbose] > │ v31, v0)                                                                     │
00:02:30 #20339 [Verbose] > │             method17(v32, v12, v22)                                          │
00:02:30 #20340 [Verbose] > │         | _ ->                                                               │
00:02:30 #20341 [Verbose] > │             let v34 : UH1 = UH1_1                                            │
00:02:30 #20342 [Verbose] > │             method18(v0, v34)                                                │
00:02:30 #20343 [Verbose] > │     | _ ->                                                                   │
00:02:30 #20344 [Verbose] > │         let v37 : UH1 = UH1_1                                                │
00:02:30 #20345 [Verbose] > │         method18(v0, v37)                                                    │
00:02:30 #20346 [Verbose] > │ and closure8 (v0 : float, v1 : (UH0 -> UH1)) (v2 : UH0) : UH0 =              │
00:02:30 #20347 [Verbose] > │     let v3 : UH1 = v1 v2                                                     │
00:02:30 #20348 [Verbose] > │     let v4 : float = v0 / 2.0                                                │
00:02:30 #20349 [Verbose] > │     let v5 : UH0 = UH0_1                                                     │
00:02:30 #20350 [Verbose] > │     let v6 : UH0 = method1(v4, v5, v3, v2)                                   │
00:02:30 #20351 [Verbose] > │     let v7 : UH1 = v1 v6                                                     │
00:02:30 #20352 [Verbose] > │     let v8 : UH0 = UH0_1                                                     │
00:02:30 #20353 [Verbose] > │     let v9 : UH0 = method1(v4, v8, v7, v2)                                   │
00:02:30 #20354 [Verbose] > │     let v10 : UH1 = v1 v9                                                    │
00:02:30 #20355 [Verbose] > │     let v11 : UH0 = UH0_1                                                    │
00:02:30 #20356 [Verbose] > │     let v12 : UH0 = method1(v0, v11, v10, v2)                                │
00:02:30 #20357 [Verbose] > │     let v13 : UH1 = v1 v12                                                   │
00:02:30 #20358 [Verbose] > │     let v14 : float = v0 / 6.0                                               │
00:02:30 #20359 [Verbose] > │     let v15 : UH1 = UH1_1                                                    │
00:02:30 #20360 [Verbose] > │     let v16 : UH1 = method17(v15, v3, v7)                                    │
00:02:30 #20361 [Verbose] > │     let v17 : UH1 = UH1_1                                                    │
00:02:30 #20362 [Verbose] > │     let v18 : UH1 = method17(v17, v16, v7)                                   │
00:02:30 #20363 [Verbose] > │     let v19 : UH1 = UH1_1                                                    │
00:02:30 #20364 [Verbose] > │     let v20 : UH1 = method17(v19, v18, v10)                                  │
00:02:30 #20365 [Verbose] > │     let v21 : UH1 = UH1_1                                                    │
00:02:30 #20366 [Verbose] > │     let v22 : UH1 = method17(v21, v20, v10)                                  │
00:02:30 #20367 [Verbose] > │     let v23 : UH1 = UH1_1                                                    │
00:02:30 #20368 [Verbose] > │     let v24 : UH1 = method17(v23, v22, v13)                                  │
00:02:30 #20369 [Verbose] > │     let v25 : UH0 = UH0_1                                                    │
00:02:30 #20370 [Verbose] > │     let v26 : UH0 = method1(v14, v25, v24, v2)                               │
00:02:30 #20371 [Verbose] > │     v26                                                                      │
00:02:30 #20372 [Verbose] > │ and closure7 (v0 : float) (v1 : (UH0 -> UH1)) : (UH0 -> UH0) =               │
00:02:30 #20373 [Verbose] > │     closure8(v0, v1)                                                         │
00:02:30 #20374 [Verbose] > │ and closure6 () (v0 : float) : ((UH0 -> UH1) -> (UH0 -> UH0)) =              │
00:02:30 #20375 [Verbose] > │     closure7(v0)                                                             │
00:02:30 #20376 [Verbose] > │ and method19 (v0 : UH4, v1 : UH5) : UH5 =                                    │
00:02:30 #20377 [Verbose] > │     match v0 with                                                            │
00:02:30 #20378 [Verbose] > │     | UH4_0(v2, v3) -> (* Cons *)                                            │
00:02:30 #20379 [Verbose] > │         let v4 : UH5 = method19(v3, v1)                                      │
00:02:30 #20380 [Verbose] > │         let v18 : US0 =                                                      │
00:02:30 #20381 [Verbose] > │             match v2 with                                                    │
00:02:30 #20382 [Verbose] > │             | UH0_0(v5, v6, v7, v8, v9, v10, v11, v12, v13, v14) -> (* Cons  │
00:02:30 #20383 [Verbose] > │ *)                                                                           │
00:02:30 #20384 [Verbose] > │                 US0_1(v5, v6, v7, v8, v9, v10, v11, v12, v13)                │
00:02:30 #20385 [Verbose] > │             | UH0_1 -> (* Nil *)                                             │
00:02:30 #20386 [Verbose] > │                 US0_0                                                        │
00:02:30 #20387 [Verbose] > │         let struct (v46 : float, v47 : float, v48 : float, v49 : float, v50  │
00:02:30 #20388 [Verbose] > │ : float, v51 : float, v52 : float, v53 : float, v54 : float) =               │
00:02:30 #20389 [Verbose] > │             match v18 with                                                   │
00:02:30 #20390 [Verbose] > │             | US0_0 -> (* None *)                                            │
00:02:30 #20391 [Verbose] > │                 failwith<struct (float * float * float * float * float *     │
00:02:30 #20392 [Verbose] > │ float * float * float * float)> "Option does not have a value."              │
00:02:30 #20393 [Verbose] > │             | US0_1(v19, v20, v21, v22, v23, v24, v25, v26, v27) -> (* Some  │
00:02:30 #20394 [Verbose] > │ *)                                                                           │
00:02:30 #20395 [Verbose] > │                 struct (v19, v20, v21, v22, v23, v24, v25, v26, v27)         │
00:02:30 #20396 [Verbose] > │         let v55 : UH6 = UH6_1                                                │
00:02:30 #20397 [Verbose] > │         let v56 : UH6 = method13(v2, v55)                                    │
00:02:30 #20398 [Verbose] > │         let v57 : float = 0.0                                                │
00:02:30 #20399 [Verbose] > │         let v58 : float = method14(v56, v57)                                 │
00:02:30 #20400 [Verbose] > │         UH5_0(v51, v58, v4)                                                  │
00:02:30 #20401 [Verbose] > │     | UH4_1 -> (* Nil *)                                                     │
00:02:30 #20402 [Verbose] > │         v1                                                                   │
00:02:30 #20403 [Verbose] > │ and method21 (v0 : UH6, v1 : int32) : int32 =                                │
00:02:30 #20404 [Verbose] > │     match v0 with                                                            │
00:02:30 #20405 [Verbose] > │     | UH6_0(v2, v3) -> (* Cons *)                                            │
00:02:30 #20406 [Verbose] > │         let v4 : int32 = v1 + 1                                              │
00:02:30 #20407 [Verbose] > │         method21(v3, v4)                                                     │
00:02:30 #20408 [Verbose] > │     | UH6_1 -> (* Nil *)                                                     │
00:02:30 #20409 [Verbose] > │         v1                                                                   │
00:02:30 #20410 [Verbose] > │ and method22 (v0 : (float []), v1 : UH6, v2 : int32) : int32 =               │
00:02:30 #20411 [Verbose] > │     match v1 with                                                            │
00:02:30 #20412 [Verbose] > │     | UH6_0(v3, v4) -> (* Cons *)                                            │
00:02:30 #20413 [Verbose] > │         v0.[int v2] <- v3                                                    │
00:02:30 #20414 [Verbose] > │         let v5 : int32 = v2 + 1                                              │
00:02:30 #20415 [Verbose] > │         method22(v0, v4, v5)                                                 │
00:02:30 #20416 [Verbose] > │     | UH6_1 -> (* Nil *)                                                     │
00:02:30 #20417 [Verbose] > │         v2                                                                   │
00:02:30 #20418 [Verbose] > │ and method20 (v0 : UH6) : (float []) =                                       │
00:02:30 #20419 [Verbose] > │     let v1 : int32 = 0                                                       │
00:02:30 #20420 [Verbose] > │     let v2 : int32 = method21(v0, v1)                                        │
00:02:30 #20421 [Verbose] > │     let v3 : (float []) = Array.zeroCreate<float> (v2)                       │
00:02:30 #20422 [Verbose] > │     let v4 : int32 = 0                                                       │
00:02:30 #20423 [Verbose] > │     let v5 : int32 = method22(v3, v0, v4)                                    │
00:02:30 #20424 [Verbose] > │     v3                                                                       │
00:02:30 #20425 [Verbose] > │ and method23 (v0 : (struct (string * (float []) * (float [])) [])) : (struct │
00:02:30 #20426 [Verbose] > │ (string * (float []) * (float [])) []) =                                     │
00:02:30 #20427 [Verbose] > │     v0                                                                       │
00:02:30 #20428 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:02:30 #20429 [Verbose] > │ []) * (float [])) [])) =                                                     │
00:02:30 #20430 [Verbose] > │     let v0 : (float -> ((UH0 -> UH1) -> (UH0 -> UH0))) = closure0()          │
00:02:30 #20431 [Verbose] > │     let v1 : ((UH0 -> UH1) -> (UH0 -> UH0)) = v0 0.03                        │
00:02:30 #20432 [Verbose] > │     let v2 : (UH0 -> UH1) = closure3()                                       │
00:02:30 #20433 [Verbose] > │     let v3 : (UH0 -> UH0) = v1 v2                                            │
00:02:30 #20434 [Verbose] > │     let v4 : UH4 = UH4_1                                                     │
00:02:30 #20435 [Verbose] > │     let v5 : int32 = 0                                                       │
00:02:30 #20436 [Verbose] > │     let v6 : UH4 = method9(v3, v4, v5)                                       │
00:02:30 #20437 [Verbose] > │     let v7 : UH5 = UH5_1                                                     │
00:02:30 #20438 [Verbose] > │     let v8 : UH5 = method12(v6, v7)                                          │
00:02:30 #20439 [Verbose] > │     let v9 : UH6 = UH6_1                                                     │
00:02:30 #20440 [Verbose] > │     let v10 : UH6 = UH6_1                                                    │
00:02:30 #20441 [Verbose] > │     let struct (v11 : UH6, v12 : UH6) = method15(v8, v9, v10)                │
00:02:30 #20442 [Verbose] > │     let v13 : UH6 = UH6_1                                                    │
00:02:30 #20443 [Verbose] > │     let v14 : UH6 = method16(v11, v13)                                       │
00:02:30 #20444 [Verbose] > │     let v15 : UH6 = UH6_1                                                    │
00:02:30 #20445 [Verbose] > │     let v16 : UH6 = method16(v12, v15)                                       │
00:02:30 #20446 [Verbose] > │     let v17 : (float -> ((UH0 -> UH1) -> (UH0 -> UH0))) = closure6()         │
00:02:30 #20447 [Verbose] > │     let v18 : ((UH0 -> UH1) -> (UH0 -> UH0)) = v17 0.03                      │
00:02:30 #20448 [Verbose] > │     let v19 : (UH0 -> UH0) = v18 v2                                          │
00:02:30 #20449 [Verbose] > │     let v20 : UH4 = UH4_1                                                    │
00:02:30 #20450 [Verbose] > │     let v21 : int32 = 0                                                      │
00:02:30 #20451 [Verbose] > │     let v22 : UH4 = method9(v19, v20, v21)                                   │
00:02:30 #20452 [Verbose] > │     let v23 : UH5 = UH5_1                                                    │
00:02:30 #20453 [Verbose] > │     let v24 : UH5 = method19(v22, v23)                                       │
00:02:30 #20454 [Verbose] > │     let v25 : UH6 = UH6_1                                                    │
00:02:30 #20455 [Verbose] > │     let v26 : UH6 = UH6_1                                                    │
00:02:30 #20456 [Verbose] > │     let struct (v27 : UH6, v28 : UH6) = method15(v24, v25, v26)              │
00:02:30 #20457 [Verbose] > │     let v29 : UH6 = UH6_1                                                    │
00:02:30 #20458 [Verbose] > │     let v30 : UH6 = method16(v27, v29)                                       │
00:02:30 #20459 [Verbose] > │     let v31 : UH6 = UH6_1                                                    │
00:02:30 #20460 [Verbose] > │     let v32 : UH6 = method16(v28, v31)                                       │
00:02:30 #20461 [Verbose] > │     let v33 : (float []) = method20(v14)                                     │
00:02:30 #20462 [Verbose] > │     let v34 : (float []) = method20(v16)                                     │
00:02:30 #20463 [Verbose] > │     let v35 : (float []) = method20(v30)                                     │
00:02:30 #20464 [Verbose] > │     let v36 : (float []) = method20(v32)                                     │
00:02:30 #20465 [Verbose] > │     let v37 : string = "euler-cromer"                                        │
00:02:30 #20466 [Verbose] > │     let v38 : string = "runge-kutta 4"                                       │
00:02:30 #20467 [Verbose] > │     let v39 : (struct (string * (float []) * (float [])) []) = [|struct      │
00:02:30 #20468 [Verbose] > │ (v37, v33, v34); struct (v38, v35, v36)|]                                    │
00:02:30 #20469 [Verbose] > │     let v40 : (struct (string * (float []) * (float [])) []) = method23(v39) │
00:02:30 #20470 [Verbose] > │     let v41 : string = "system kinetic energy versus time"                   │
00:02:30 #20471 [Verbose] > │     let v42 : string = "time (s)"                                            │
00:02:30 #20472 [Verbose] > │     let v43 : string = "system kinetic energy (j)"                           │
00:02:30 #20473 [Verbose] > │     struct (v41, v42, v43, v40)                                              │
00:02:30 #20474 [Verbose] > │ method0()                                                                    │
00:02:30 #20475 [Verbose] > │                                                                              │
00:02:30 #20476 [Verbose] > │                                                                              │
00:02:30 #20477 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:30 #20478 [Verbose] >
00:02:30 #20479 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:30 #20480 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:30 #20481 [Verbose] > │ ### wave 1                                                                   │
00:02:30 #20482 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:30 #20483 [Verbose] >
00:02:30 #20484 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:30 #20485 [Verbose] > // // test
00:02:30 #20486 [Verbose] >
00:02:30 #20487 [Verbose] > inl linear_spring k re (particle_state st1) (particle_state st2) =
00:02:30 #20488 [Verbose] >     inl r1 = st1.pos_vec
00:02:30 #20489 [Verbose] >     inl r2 = st2.pos_vec
00:02:30 #20490 [Verbose] >     inl r21 = r2 ^-^ r1
00:02:30 #20491 [Verbose] >     inl r21mag = magnitude r21
00:02:30 #20492 [Verbose] >     -k * (r21mag - re) *^ r21 ^/ r21mag
00:02:30 #20493 [Verbose] >
00:02:30 #20494 [Verbose] > inl fixed_linear_spring k re r1 =
00:02:30 #20495 [Verbose] >     inl (particle_state default_particle_state') = default_particle_state ()
00:02:30 #20496 [Verbose] >     linear_spring k re (particle_state { default_particle_state' with pos_vec =
00:02:30 #20497 [Verbose] > r1 })
00:02:30 #20498 [Verbose] >
00:02:30 #20499 [Verbose] > inl forces_string () =
00:02:30 #20500 [Verbose] >     [[
00:02:30 #20501 [Verbose] >         ExternalForce (0, fixed_linear_spring 5384 0 (zero_vec ()))
00:02:30 #20502 [Verbose] >         ExternalForce (63, fixed_linear_spring 5384 0 (0.65 *^ i_hat ()))
00:02:30 #20503 [Verbose] >     ]] /@ (
00:02:30 #20504 [Verbose] >         listm'.init_series 0 59 1
00:02:30 #20505 [Verbose] >         |> listm.map (fun n => InternalForce (n, n + 1, linear_spring 5384 0))
00:02:30 #20506 [Verbose] >     )
00:02:30 #20507 [Verbose] >
00:02:30 #20508 [Verbose] > inl string_update dt =
00:02:30 #20509 [Verbose] >     update_mps (runge_kutta_4 dt) (forces_string ())
00:02:30 #20510 [Verbose] >
00:02:30 #20511 [Verbose] > inl string_initial_overtone n =
00:02:30 #20512 [Verbose] >     inl ball_mass = 0.0008293 * 0.65 / 64
00:02:30 #20513 [Verbose] >     inl (particle_state default_particle_state') = default_particle_state ()
00:02:30 #20514 [Verbose] >     listm'.init_series 0.01 0.64 0.01
00:02:30 #20515 [Verbose] >     |> listm.map (fun x =>
00:02:30 #20516 [Verbose] >         inl y = 0.005 * sin (conv n * pi * x / 0.65)
00:02:30 #20517 [Verbose] >         particle_state {
00:02:30 #20518 [Verbose] >             default_particle_state' with
00:02:30 #20519 [Verbose] >                 mass = ball_mass
00:02:30 #20520 [Verbose] >                 pos_vec = x *^ i_hat () ^+^ y *^ j_hat ()
00:02:30 #20521 [Verbose] >                 velocity = zero_vec ()
00:02:30 #20522 [Verbose] >         }
00:02:30 #20523 [Verbose] >     )
00:02:30 #20524 [Verbose] >     |> multi_particle_state
00:02:30 #20525 [Verbose] >
00:02:30 #20526 [Verbose] > inl string_initial_pluck () =
00:02:30 #20527 [Verbose] >     inl ball_mass = 0.0008293 * 0.65 / 64
00:02:30 #20528 [Verbose] >     inl (particle_state default_particle_state') = default_particle_state ()
00:02:30 #20529 [Verbose] >     listm'.init_series 0.01 0.64 0.01
00:02:30 #20530 [Verbose] >     |> listm.map (fun x =>
00:02:30 #20531 [Verbose] >         inl y =
00:02:30 #20532 [Verbose] >             inl n = if x <= 0.51 then 0 else 0.65
00:02:30 #20533 [Verbose] >             0.005 / (0.51 - n) * (x - n)
00:02:30 #20534 [Verbose] >         particle_state {
00:02:30 #20535 [Verbose] >             default_particle_state' with
00:02:30 #20536 [Verbose] >                 mass = ball_mass
00:02:30 #20537 [Verbose] >                 pos_vec = x *^ i_hat () ^+^ y *^ j_hat ()
00:02:30 #20538 [Verbose] >                 velocity = zero_vec ()
00:02:30 #20539 [Verbose] >         }
00:02:30 #20540 [Verbose] >     )
00:02:30 #20541 [Verbose] >     |> multi_particle_state
00:02:30 #20542 [Verbose] >
00:02:30 #20543 [Verbose] > let main () =
00:02:30 #20544 [Verbose] >     inl ~frames = listm'.init_series 0 9 1f64
00:02:30 #20545 [Verbose] >     inl initial_state = string_initial_overtone 3i32
00:02:30 #20546 [Verbose] >     inl frames =
00:02:30 #20547 [Verbose] >         frames
00:02:30 #20548 [Verbose] >         |> listm.map (fun n =>
00:02:30 #20549 [Verbose] >             inl (multi_particle_state sts) =
00:02:30 #20550 [Verbose] >                 seq.iterate' (string_update 0.000025) initial_state |> fun f =>
00:02:30 #20551 [Verbose] > f 0f64
00:02:30 #20552 [Verbose] >             inl rs =
00:02:30 #20553 [Verbose] >                 [[ zero_vec () ]]
00:02:30 #20554 [Verbose] >                 /@ (sts |> listm.map (fun (particle_state st) => st.pos_vec))
00:02:30 #20555 [Verbose] >                 /@ [[ 0.65 *^ i_hat () ]]
00:02:30 #20556 [Verbose] >             inl x, y =
00:02:30 #20557 [Verbose] >                 rs
00:02:30 #20558 [Verbose] >                 |> listm.map (fun r => r.x, r.y)
00:02:30 #20559 [Verbose] >                 |> listm'.unzip
00:02:30 #20560 [Verbose] >             inl x : a i32 _ = x |> listm.toArray
00:02:30 #20561 [Verbose] >             inl y : a i32 _ = y |> listm.toArray
00:02:30 #20562 [Verbose] >             x, y
00:02:30 #20563 [Verbose] >         )
00:02:30 #20564 [Verbose] >         |> listm.toArray : a i32 _
00:02:30 #20565 [Verbose] >
00:02:30 #20566 [Verbose] >     inl n = 0i32
00:02:30 #20567 [Verbose] >
00:02:30 #20568 [Verbose] >     inl x, y = index frames n
00:02:30 #20569 [Verbose] >
00:02:30 #20570 [Verbose] >     "wave",
00:02:30 #20571 [Verbose] >     "position (m)",
00:02:30 #20572 [Verbose] >     "displacement (m)",
00:02:30 #20573 [Verbose] >     ;[[
00:02:30 #20574 [Verbose] >         ($"$\"{!n}\"" : string), x, y
00:02:30 #20575 [Verbose] >     ]]
00:02:30 #20576 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-5917-1775-14f62c8ded21/main.spi
00:02:30 #20577 [Verbose] >
00:02:30 #20578 [Verbose] > ╭─[ 279.13ms - return value ]──────────────────────────────────────────────────╮
00:02:30 #20579 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480"                          │
00:02:30 #20580 [Verbose] > │ xmlns="http://www.w3.org/2000/svg">                                          │
00:02:30 #20581 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414"        │
00:02:30 #20582 [Verbose] > │ stroke="none"/>                                                              │
00:02:30 #20583 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle"                        │
00:02:30 #20584 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1"            │
00:02:30 #20585 [Verbose] > │ fill="#FFFFFF">                                                              │
00:02:30 #20586 [Verbose] > │ wave                                                                         │
00:02:30 #20587 [Verbose] > │ </text>                                                                      │
00:02:30 #20588 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="62" y1="424" x2="62" │
00:02:30 #20589 [Verbose] > │ y2="75"/>                                                                    │
00:02:30 #20590 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:02:30 #20591 [Verbose] > │ y2="75"/>                                                                    │
00:02:30 #20592 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="77" y1="424" x2="77" │
00:02:30 #20593 [Verbose] > │ y2="75"/>                                                                    │
00:02:30 #20594 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="85" y1="424" x2="85" │
00:02:30 #20595 [Verbose] > │ y2="75"/>                                                                    │
00:02:30 #20596 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="93" y1="424" x2="93" │
00:02:30 #20597 [Verbose] > │ y2...                                                                        │
00:02:30 #20598 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:30 #20599 [Verbose] >
00:02:30 #20600 [Verbose] > ╭─[ 282.23ms - stdout ]────────────────────────────────────────────────────────╮
00:02:30 #20601 [Verbose] > │ type UH0 =                                                                   │
00:02:30 #20602 [Verbose] > │     | UH0_0 of float * UH0                                                   │
00:02:30 #20603 [Verbose] > │     | UH0_1                                                                  │
00:02:30 #20604 [Verbose] > │ and UH1 =                                                                    │
00:02:30 #20605 [Verbose] > │     | UH1_0 of (float []) * (float []) * UH1                                 │
00:02:30 #20606 [Verbose] > │     | UH1_1                                                                  │
00:02:30 #20607 [Verbose] > │ let rec method3 (v0 : UH0, v1 : int32) : int32 =                             │
00:02:30 #20608 [Verbose] > │     match v0 with                                                            │
00:02:30 #20609 [Verbose] > │     | UH0_0(v2, v3) -> (* Cons *)                                            │
00:02:30 #20610 [Verbose] > │         let v4 : int32 = v1 + 1                                              │
00:02:30 #20611 [Verbose] > │         method3(v3, v4)                                                      │
00:02:30 #20612 [Verbose] > │     | UH0_1 -> (* Nil *)                                                     │
00:02:30 #20613 [Verbose] > │         v1                                                                   │
00:02:30 #20614 [Verbose] > │ and method4 (v0 : (float []), v1 : UH0, v2 : int32) : int32 =                │
00:02:30 #20615 [Verbose] > │     match v1 with                                                            │
00:02:30 #20616 [Verbose] > │     | UH0_0(v3, v4) -> (* Cons *)                                            │
00:02:30 #20617 [Verbose] > │         v0.[int v2] <- v3                                                    │
00:02:30 #20618 [Verbose] > │         let v5 : int32 = v2 + 1                                              │
00:02:30 #20619 [Verbose] > │         method4(v0, v4, v5)                                                  │
00:02:30 #20620 [Verbose] > │     | UH0_1 -> (* Nil *)                                                     │
00:02:30 #20621 [Verbose] > │         v2                                                                   │
00:02:30 #20622 [Verbose] > │ and method2 (v0 : UH0) : (float []) =                                        │
00:02:30 #20623 [Verbose] > │     let v1 : int32 = 0                                                       │
00:02:30 #20624 [Verbose] > │     let v2 : int32 = method3(v0, v1)                                         │
00:02:30 #20625 [Verbose] > │     let v3 : (float []) = Array.zeroCreate<float> (v2)                       │
00:02:30 #20626 [Verbose] > │     let v4 : int32 = 0                                                       │
00:02:30 #20627 [Verbose] > │     let v5 : int32 = method4(v3, v0, v4)                                     │
00:02:30 #20628 [Verbose] > │     v3                                                                       │
00:02:30 #20629 [Verbose] > │ and method1 (v0 : UH0, v1 : UH1) : UH1 =                                     │
00:02:30 #20630 [Verbose] > │     match v0 with                                                            │
00:02:30 #20631 [Verbose] > │     | UH0_0(v2, v3) -> (* Cons *)                                            │
00:02:30 #20632 [Verbose] > │         let v4 : UH1 = method1(v3, v1)                                       │
00:02:30 #20633 [Verbose] > │         let v5 : float = 0.0                                                 │
00:02:30 #20634 [Verbose] > │         let v6 : float = 0.01                                                │
00:02:30 #20635 [Verbose] > │         let v7 : float = 0.02                                                │
00:02:30 #20636 [Verbose] > │         let v8 : float = 0.03                                                │
00:02:30 #20637 [Verbose] > │         let v9 : float = 0.04                                                │
00:02:30 #20638 [Verbose] > │         let v10 : float = 0.05                                               │
00:02:30 #20639 [Verbose] > │         let v11 : float = 0.060000000000000005                               │
00:02:30 #20640 [Verbose] > │         let v12 : float = 0.06999999999999999                                │
00:02:30 #20641 [Verbose] > │         let v13 : float = 0.08                                               │
00:02:30 #20642 [Verbose] > │         let v14 : float = 0.09                                               │
00:02:30 #20643 [Verbose] > │         let v15 : float = 0.09999999999999999                                │
00:02:30 #20644 [Verbose] > │         let v16 : float = 0.11                                               │
00:02:30 #20645 [Verbose] > │         let v17 : float = 0.12                                               │
00:02:30 #20646 [Verbose] > │         let v18 : float = 0.13                                               │
00:02:30 #20647 [Verbose] > │         let v19 : float = 0.14                                               │
00:02:30 #20648 [Verbose] > │         let v20 : float = 0.15000000000000002                                │
00:02:30 #20649 [Verbose] > │         let v21 : float = 0.16                                               │
00:02:30 #20650 [Verbose] > │         let v22 : float = 0.17                                               │
00:02:30 #20651 [Verbose] > │         let v23 : float = 0.18000000000000002                                │
00:02:30 #20652 [Verbose] > │         let v24 : float = 0.19                                               │
00:02:30 #20653 [Verbose] > │         let v25 : float = 0.2                                                │
00:02:30 #20654 [Verbose] > │         let v26 : float = 0.21000000000000002                                │
00:02:30 #20655 [Verbose] > │         let v27 : float = 0.22                                               │
00:02:30 #20656 [Verbose] > │         let v28 : float = 0.23                                               │
00:02:30 #20657 [Verbose] > │         let v29 : float = 0.24000000000000002                                │
00:02:30 #20658 [Verbose] > │         let v30 : float = 0.25                                               │
00:02:30 #20659 [Verbose] > │         let v31 : float = 0.26                                               │
00:02:30 #20660 [Verbose] > │         let v32 : float = 0.27                                               │
00:02:30 #20661 [Verbose] > │         let v33 : float = 0.28                                               │
00:02:30 #20662 [Verbose] > │         let v34 : float = 0.29000000000000004                                │
00:02:30 #20663 [Verbose] > │         let v35 : float = 0.3                                                │
00:02:30 #20664 [Verbose] > │         let v36 : float = 0.31                                               │
00:02:30 #20665 [Verbose] > │         let v37 : float = 0.32                                               │
00:02:30 #20666 [Verbose] > │         let v38 : float = 0.33                                               │
00:02:30 #20667 [Verbose] > │         let v39 : float = 0.34                                               │
00:02:30 #20668 [Verbose] > │         let v40 : float = 0.35000000000000003                                │
00:02:30 #20669 [Verbose] > │         let v41 : float = 0.36000000000000004                                │
00:02:30 #20670 [Verbose] > │         let v42 : float = 0.37                                               │
00:02:30 #20671 [Verbose] > │         let v43 : float = 0.38                                               │
00:02:30 #20672 [Verbose] > │         let v44 : float = 0.39                                               │
00:02:30 #20673 [Verbose] > │         let v45 : float = 0.4                                                │
00:02:30 #20674 [Verbose] > │         let v46 : float = 0.41000000000000003                                │
00:02:30 #20675 [Verbose] > │         let v47 : float = 0.42000000000000004                                │
00:02:30 #20676 [Verbose] > │         let v48 : float = 0.43                                               │
00:02:30 #20677 [Verbose] > │         let v49 : float = 0.44                                               │
00:02:30 #20678 [Verbose] > │         let v50 : float = 0.45                                               │
00:02:30 #20679 [Verbose] > │         let v51 : float = 0.46                                               │
00:02:30 #20680 [Verbose] > │         let v52 : float = 0.47000000000000003                                │
00:02:30 #20681 [Verbose] > │         let v53 : float = 0.48000000000000004                                │
00:02:30 #20682 [Verbose] > │         let v54 : float = 0.49                                               │
00:02:30 #20683 [Verbose] > │         let v55 : float = 0.5                                                │
00:02:30 #20684 [Verbose] > │         let v56 : float = 0.51                                               │
00:02:30 #20685 [Verbose] > │         let v57 : float = 0.52                                               │
00:02:30 #20686 [Verbose] > │         let v58 : float = 0.53                                               │
00:02:30 #20687 [Verbose] > │         let v59 : float = 0.54                                               │
00:02:30 #20688 [Verbose] > │         let v60 : float = 0.55                                               │
00:02:30 #20689 [Verbose] > │         let v61 : float = 0.56                                               │
00:02:30 #20690 [Verbose] > │         let v62 : float = 0.5700000000000001                                 │
00:02:30 #20691 [Verbose] > │         let v63 : float = 0.5800000000000001                                 │
00:02:30 #20692 [Verbose] > │         let v64 : float = 0.59                                               │
00:02:30 #20693 [Verbose] > │         let v65 : float = 0.6                                                │
00:02:30 #20694 [Verbose] > │         let v66 : float = 0.61                                               │
00:02:30 #20695 [Verbose] > │         let v67 : float = 0.62                                               │
00:02:30 #20696 [Verbose] > │         let v68 : float = 0.63                                               │
00:02:30 #20697 [Verbose] > │         let v69 : float = 0.64                                               │
00:02:30 #20698 [Verbose] > │         let v70 : float = 0.65                                               │
00:02:30 #20699 [Verbose] > │         let v71 : UH0 = UH0_1                                                │
00:02:30 #20700 [Verbose] > │         let v72 : UH0 = UH0_0(v70, v71)                                      │
00:02:30 #20701 [Verbose] > │         let v73 : UH0 = UH0_0(v69, v72)                                      │
00:02:30 #20702 [Verbose] > │         let v74 : UH0 = UH0_0(v68, v73)                                      │
00:02:30 #20703 [Verbose] > │         let v75 : UH0 = UH0_0(v67, v74)                                      │
00:02:30 #20704 [Verbose] > │         let v76 : UH0 = UH0_0(v66, v75)                                      │
00:02:30 #20705 [Verbose] > │         let v77 : UH0 = UH0_0(v65, v76)                                      │
00:02:30 #20706 [Verbose] > │         let v78 : UH0 = UH0_0(v64, v77)                                      │
00:02:30 #20707 [Verbose] > │         let v79 : UH0 = UH0_0(v63, v78)                                      │
00:02:30 #20708 [Verbose] > │         let v80 : UH0 = UH0_0(v62, v79)                                      │
00:02:30 #20709 [Verbose] > │         let v81 : UH0 = UH0_0(v61, v80)                                      │
00:02:30 #20710 [Verbose] > │         let v82 : UH0 = UH0_0(v60, v81)                                      │
00:02:30 #20711 [Verbose] > │         let v83 : UH0 = UH0_0(v59, v82)                                      │
00:02:30 #20712 [Verbose] > │         let v84 : UH0 = UH0_0(v58, v83)                                      │
00:02:30 #20713 [Verbose] > │         let v85 : UH0 = UH0_0(v57, v84)                                      │
00:02:30 #20714 [Verbose] > │         let v86 : UH0 = UH0_0(v56, v85)                                      │
00:02:30 #20715 [Verbose] > │         let v87 : UH0 = UH0_0(v55, v86)                                      │
00:02:30 #20716 [Verbose] > │         let v88 : UH0 = UH0_0(v54, v87)                                      │
00:02:30 #20717 [Verbose] > │         let v89 : UH0 = UH0_0(v53, v88)                                      │
00:02:30 #20718 [Verbose] > │         let v90 : UH0 = UH0_0(v52, v89)                                      │
00:02:30 #20719 [Verbose] > │         let v91 : UH0 = UH0_0(v51, v90)                                      │
00:02:30 #20720 [Verbose] > │         let v92 : UH0 = UH0_0(v50, v91)                                      │
00:02:30 #20721 [Verbose] > │         let v93 : UH0 = UH0_0(v49, v92)                                      │
00:02:30 #20722 [Verbose] > │         let v94 : UH0 = UH0_0(v48, v93)                                      │
00:02:30 #20723 [Verbose] > │         let v95 : UH0 = UH0_0(v47, v94)                                      │
00:02:30 #20724 [Verbose] > │         let v96 : UH0 = UH0_0(v46, v95)                                      │
00:02:30 #20725 [Verbose] > │         let v97 : UH0 = UH0_0(v45, v96)                                      │
00:02:30 #20726 [Verbose] > │         let v98 : UH0 = UH0_0(v44, v97)                                      │
00:02:30 #20727 [Verbose] > │         let v99 : UH0 = UH0_0(v43, v98)                                      │
00:02:30 #20728 [Verbose] > │         let v100 : UH0 = UH0_0(v42, v99)                                     │
00:02:30 #20729 [Verbose] > │         let v101 : UH0 = UH0_0(v41, v100)                                    │
00:02:30 #20730 [Verbose] > │         let v102 : UH0 = UH0_0(v40, v101)                                    │
00:02:30 #20731 [Verbose] > │         let v103 : UH0 = UH0_0(v39, v102)                                    │
00:02:30 #20732 [Verbose] > │         let v104 : UH0 = UH0_0(v38, v103)                                    │
00:02:30 #20733 [Verbose] > │         let v105 : UH0 = UH0_0(v37, v104)                                    │
00:02:30 #20734 [Verbose] > │         let v106 : UH0 = UH0_0(v36, v105)                                    │
00:02:30 #20735 [Verbose] > │         let v107 : UH0 = UH0_0(v35, v106)                                    │
00:02:30 #20736 [Verbose] > │         let v108 : UH0 = UH0_0(v34, v107)                                    │
00:02:30 #20737 [Verbose] > │         let v109 : UH0 = UH0_0(v33, v108)                                    │
00:02:30 #20738 [Verbose] > │         let v110 : UH0 = UH0_0(v32, v109)                                    │
00:02:30 #20739 [Verbose] > │         let v111 : UH0 = UH0_0(v31, v110)                                    │
00:02:30 #20740 [Verbose] > │         let v112 : UH0 = UH0_0(v30, v111)                                    │
00:02:30 #20741 [Verbose] > │         let v113 : UH0 = UH0_0(v29, v112)                                    │
00:02:30 #20742 [Verbose] > │         let v114 : UH0 = UH0_0(v28, v113)                                    │
00:02:30 #20743 [Verbose] > │         let v115 : UH0 = UH0_0(v27, v114)                                    │
00:02:30 #20744 [Verbose] > │         let v116 : UH0 = UH0_0(v26, v115)                                    │
00:02:30 #20745 [Verbose] > │         let v117 : UH0 = UH0_0(v25, v116)                                    │
00:02:30 #20746 [Verbose] > │         let v118 : UH0 = UH0_0(v24, v117)                                    │
00:02:30 #20747 [Verbose] > │         let v119 : UH0 = UH0_0(v23, v118)                                    │
00:02:30 #20748 [Verbose] > │         let v120 : UH0 = UH0_0(v22, v119)                                    │
00:02:30 #20749 [Verbose] > │         let v121 : UH0 = UH0_0(v21, v120)                                    │
00:02:30 #20750 [Verbose] > │         let v122 : UH0 = UH0_0(v20, v121)                                    │
00:02:30 #20751 [Verbose] > │         let v123 : UH0 = UH0_0(v19, v122)                                    │
00:02:30 #20752 [Verbose] > │         let v124 : UH0 = UH0_0(v18, v123)                                    │
00:02:30 #20753 [Verbose] > │         let v125 : UH0 = UH0_0(v17, v124)                                    │
00:02:30 #20754 [Verbose] > │         let v126 : UH0 = UH0_0(v16, v125)                                    │
00:02:30 #20755 [Verbose] > │         let v127 : UH0 = UH0_0(v15, v126)                                    │
00:02:30 #20756 [Verbose] > │         let v128 : UH0 = UH0_0(v14, v127)                                    │
00:02:30 #20757 [Verbose] > │         let v129 : UH0 = UH0_0(v13, v128)                                    │
00:02:30 #20758 [Verbose] > │         let v130 : UH0 = UH0_0(v12, v129)                                    │
00:02:30 #20759 [Verbose] > │         let v131 : UH0 = UH0_0(v11, v130)                                    │
00:02:30 #20760 [Verbose] > │         let v132 : UH0 = UH0_0(v10, v131)                                    │
00:02:30 #20761 [Verbose] > │         let v133 : UH0 = UH0_0(v9, v132)                                     │
00:02:30 #20762 [Verbose] > │         let v134 : UH0 = UH0_0(v8, v133)                                     │
00:02:30 #20763 [Verbose] > │         let v135 : UH0 = UH0_0(v7, v134)                                     │
00:02:30 #20764 [Verbose] > │         let v136 : UH0 = UH0_0(v6, v135)                                     │
00:02:30 #20765 [Verbose] > │         let v137 : UH0 = UH0_0(v5, v136)                                     │
00:02:30 #20766 [Verbose] > │         let v138 : (float []) = method2(v137)                                │
00:02:30 #20767 [Verbose] > │         let v139 : float = 0.0                                               │
00:02:30 #20768 [Verbose] > │         let v140 : float = 0.0007224452478461068                             │
00:02:30 #20769 [Verbose] > │         let v141 : float = 0.0014297283919934465                             │
00:02:30 #20770 [Verbose] > │         let v142 : float = 0.0021070055388626454                             │
00:02:30 #20771 [Verbose] > │         let v143 : float = 0.00274006253677335                               │
00:02:30 #20772 [Verbose] > │         let v144 : float = 0.0033156132912039757                             │
00:02:30 #20773 [Verbose] > │         let v145 : float = 0.0038215786027292415                             │
00:02:30 #20774 [Verbose] > │         let v146 : float = 0.004247339675607605                              │
00:02:30 #20775 [Verbose] > │         let v147 : float = 0.004583960976582912                              │
00:02:30 #20776 [Verbose] > │         let v148 : float = 0.004824377766717757                              │
00:02:30 #20777 [Verbose] > │         let v149 : float = 0.00496354437049027                               │
00:02:30 #20778 [Verbose] > │         let v150 : float = 0.004998540070400965                              │
00:02:30 #20779 [Verbose] > │         let v151 : float = 0.004928630404658255                              │
00:02:30 #20780 [Verbose] > │         let v152 : float = 0.004755282581475768                              │
00:02:30 #20781 [Verbose] > │         let v153 : float = 0.004482134686478519                              │
00:02:30 #20782 [Verbose] > │         let v154 : float = 0.0041149193294682815                             │
00:02:30 #20783 [Verbose] > │         let v155 : float = 0.0036613433329888666                             │
00:02:30 #20784 [Verbose] > │         let v156 : float = 0.0031309259876915697                             │
00:02:30 #20785 [Verbose] > │         let v157 : float = 0.002534799269067951                              │
00:02:30 #20786 [Verbose] > │         let v158 : float = 0.0018854742084416015                             │
00:02:30 #20787 [Verbose] > │         let v159 : float = 0.0011965783214377905                             │
00:02:30 #20788 [Verbose] > │         let v160 : float = 0.00048256960457257535                            │
00:02:30 #20789 [Verbose] > │         let v161 : float = -0.00024156689762753317                           │
00:02:30 #20790 [Verbose] > │         let v162 : float = -0.0009606335867685418                            │
00:02:30 #20791 [Verbose] > │         let v163 : float = -0.001659539265642642                             │
00:02:30 #20792 [Verbose] > │         let v164 : float = -0.002323615860218842                             │
00:02:30 #20793 [Verbose] > │         let v165 : float = -0.0029389262614623636                            │
00:02:30 #20794 [Verbose] > │         let v166 : float = -0.003492556826244686                             │
00:02:30 #20795 [Verbose] > │         let v167 : float = -0.003972888398568771                             │
00:02:30 #20796 [Verbose] > │         let v168 : float = -0.00436984016313259                              │
00:02:30 #20797 [Verbose] > │         let v169 : float = -0.004675081213427074                             │
00:02:30 #20798 [Verbose] > │         let v170 : float = -0.004882205394146359                             │
00:02:30 #20799 [Verbose] > │         let v171 : float = -0.004986865748457456                             │
00:02:30 #20800 [Verbose] > │         let v172 : float = -0.004986865748457456                             │
00:02:30 #20801 [Verbose] > │         let v173 : float = -0.004882205394146361                             │
00:02:30 #20802 [Verbose] > │         let v174 : float = -0.004675081213427074                             │
00:02:30 #20803 [Verbose] > │         let v175 : float = -0.004369840163132589                             │
00:02:30 #20804 [Verbose] > │         let v176 : float = -0.003972888398568774                             │
00:02:30 #20805 [Verbose] > │         let v177 : float = -0.0034925568262446837                            │
00:02:30 #20806 [Verbose] > │         let v178 : float = -0.002938926261462367                             │
00:02:30 #20807 [Verbose] > │         let v179 : float = -0.002323615860218846                             │
00:02:30 #20808 [Verbose] > │         let v180 : float = -0.0016595392656426435                            │
00:02:30 #20809 [Verbose] > │         let v181 : float = -0.0009606335867685414                            │
00:02:30 #20810 [Verbose] > │         let v182 : float = -0.00024156689762753724                           │
00:02:30 #20811 [Verbose] > │         let v183 : float = 0.0004825696045725713                             │
00:02:30 #20812 [Verbose] > │         let v184 : float = 0.0011965783214377866                             │
00:02:30 #20813 [Verbose] > │         let v185 : float = 0.0018854742084416021                             │
00:02:30 #20814 [Verbose] > │         let v186 : float = 0.002534799269067954                              │
00:02:30 #20815 [Verbose] > │         let v187 : float = 0.003130925987691568                              │
00:02:30 #20816 [Verbose] > │         let v188 : float = 0.0036613433329888622                             │
00:02:30 #20817 [Verbose] > │         let v189 : float = 0.0041149193294682815                             │
00:02:30 #20818 [Verbose] > │         let v190 : float = 0.0044821346864785195                             │
00:02:30 #20819 [Verbose] > │         let v191 : float = 0.004755282581475766                              │
00:02:30 #20820 [Verbose] > │         let v192 : float = 0.004928630404658255                              │
00:02:30 #20821 [Verbose] > │         let v193 : float = 0.004998540070400965                              │
00:02:30 #20822 [Verbose] > │         let v194 : float = 0.004963544370490271                              │
00:02:30 #20823 [Verbose] > │         let v195 : float = 0.004824377766717758                              │
00:02:30 #20824 [Verbose] > │         let v196 : float = 0.004583960976582912                              │
00:02:30 #20825 [Verbose] > │         let v197 : float = 0.004247339675607605                              │
00:02:30 #20826 [Verbose] > │         let v198 : float = 0.003821578602729245                              │
00:02:30 #20827 [Verbose] > │         let v199 : float = 0.0033156132912039783                             │
00:02:30 #20828 [Verbose] > │         let v200 : float = 0.0027400625367733585                             │
00:02:30 #20829 [Verbose] > │         let v201 : float = 0.0021070055388626528                             │
00:02:30 #20830 [Verbose] > │         let v202 : float = 0.001429728391993452                              │
00:02:30 #20831 [Verbose] > │         let v203 : float = 0.0007224452478461016                             │
00:02:30 #20832 [Verbose] > │         let v204 : float = 0.0                                               │
00:02:30 #20833 [Verbose] > │         let v205 : UH0 = UH0_1                                               │
00:02:30 #20834 [Verbose] > │         let v206 : UH0 = UH0_0(v204, v205)                                   │
00:02:30 #20835 [Verbose] > │         let v207 : UH0 = UH0_0(v203, v206)                                   │
00:02:30 #20836 [Verbose] > │         let v208 : UH0 = UH0_0(v202, v207)                                   │
00:02:30 #20837 [Verbose] > │         let v209 : UH0 = UH0_0(v201, v208)                                   │
00:02:30 #20838 [Verbose] > │         let v210 : UH0 = UH0_0(v200, v209)                                   │
00:02:30 #20839 [Verbose] > │         let v211 : UH0 = UH0_0(v199, v210)                                   │
00:02:30 #20840 [Verbose] > │         let v212 : UH0 = UH0_0(v198, v211)                                   │
00:02:30 #20841 [Verbose] > │         let v213 : UH0 = UH0_0(v197, v212)                                   │
00:02:30 #20842 [Verbose] > │         let v214 : UH0 = UH0_0(v196, v213)                                   │
00:02:30 #20843 [Verbose] > │         let v215 : UH0 = UH0_0(v195, v214)                                   │
00:02:30 #20844 [Verbose] > │         let v216 : UH0 = UH0_0(v194, v215)                                   │
00:02:30 #20845 [Verbose] > │         let v217 : UH0 = UH0_0(v193, v216)                                   │
00:02:30 #20846 [Verbose] > │         let v218 : UH0 = UH0_0(v192, v217)                                   │
00:02:30 #20847 [Verbose] > │         let v219 : UH0 = UH0_0(v191, v218)                                   │
00:02:30 #20848 [Verbose] > │         let v220 : UH0 = UH0_0(v190, v219)                                   │
00:02:30 #20849 [Verbose] > │         let v221 : UH0 = UH0_0(v189, v220)                                   │
00:02:30 #20850 [Verbose] > │         let v222 : UH0 = UH0_0(v188, v221)                                   │
00:02:30 #20851 [Verbose] > │         let v223 : UH0 = UH0_0(v187, v222)                                   │
00:02:30 #20852 [Verbose] > │         let v224 : UH0 = UH0_0(v186, v223)                                   │
00:02:30 #20853 [Verbose] > │         let v225 : UH0 = UH0_0(v185, v224)                                   │
00:02:30 #20854 [Verbose] > │         let v226 : UH0 = UH0_0(v184, v225)                                   │
00:02:30 #20855 [Verbose] > │         let v227 : UH0 = UH0_0(v183, v226)                                   │
00:02:30 #20856 [Verbose] > │         let v228 : UH0 = UH0_0(v182, v227)                                   │
00:02:30 #20857 [Verbose] > │         let v229 : UH0 = UH0_0(v181, v228)                                   │
00:02:30 #20858 [Verbose] > │         let v230 : UH0 = UH0_0(v180, v229)                                   │
00:02:30 #20859 [Verbose] > │         let v231 : UH0 = UH0_0(v179, v230)                                   │
00:02:30 #20860 [Verbose] > │         let v232 : UH0 = UH0_0(v178, v231)                                   │
00:02:30 #20861 [Verbose] > │         let v233 : UH0 = UH0_0(v177, v232)                                   │
00:02:30 #20862 [Verbose] > │         let v234 : UH0 = UH0_0(v176, v233)                                   │
00:02:30 #20863 [Verbose] > │         let v235 : UH0 = UH0_0(v175, v234)                                   │
00:02:30 #20864 [Verbose] > │         let v236 : UH0 = UH0_0(v174, v235)                                   │
00:02:30 #20865 [Verbose] > │         let v237 : UH0 = UH0_0(v173, v236)                                   │
00:02:30 #20866 [Verbose] > │         let v238 : UH0 = UH0_0(v172, v237)                                   │
00:02:30 #20867 [Verbose] > │         let v239 : UH0 = UH0_0(v171, v238)                                   │
00:02:30 #20868 [Verbose] > │         let v240 : UH0 = UH0_0(v170, v239)                                   │
00:02:30 #20869 [Verbose] > │         let v241 : UH0 = UH0_0(v169, v240)                                   │
00:02:30 #20870 [Verbose] > │         let v242 : UH0 = UH0_0(v168, v241)                                   │
00:02:30 #20871 [Verbose] > │         let v243 : UH0 = UH0_0(v167, v242)                                   │
00:02:30 #20872 [Verbose] > │         let v244 : UH0 = UH0_0(v166, v243)                                   │
00:02:30 #20873 [Verbose] > │         let v245 : UH0 = UH0_0(v165, v244)                                   │
00:02:30 #20874 [Verbose] > │         let v246 : UH0 = UH0_0(v164, v245)                                   │
00:02:30 #20875 [Verbose] > │         let v247 : UH0 = UH0_0(v163, v246)                                   │
00:02:30 #20876 [Verbose] > │         let v248 : UH0 = UH0_0(v162, v247)                                   │
00:02:30 #20877 [Verbose] > │         let v249 : UH0 = UH0_0(v161, v248)                                   │
00:02:30 #20878 [Verbose] > │         let v250 : UH0 = UH0_0(v160, v249)                                   │
00:02:30 #20879 [Verbose] > │         let v251 : UH0 = UH0_0(v159, v250)                                   │
00:02:30 #20880 [Verbose] > │         let v252 : UH0 = UH0_0(v158, v251)                                   │
00:02:30 #20881 [Verbose] > │         let v253 : UH0 = UH0_0(v157, v252)                                   │
00:02:30 #20882 [Verbose] > │         let v254 : UH0 = UH0_0(v156, v253)                                   │
00:02:30 #20883 [Verbose] > │         let v255 : UH0 = UH0_0(v155, v254)                                   │
00:02:30 #20884 [Verbose] > │         let v256 : UH0 = UH0_0(v154, v255)                                   │
00:02:30 #20885 [Verbose] > │         let v257 : UH0 = UH0_0(v153, v256)                                   │
00:02:30 #20886 [Verbose] > │         let v258 : UH0 = UH0_0(v152, v257)                                   │
00:02:30 #20887 [Verbose] > │         let v259 : UH0 = UH0_0(v151, v258)                                   │
00:02:30 #20888 [Verbose] > │         let v260 : UH0 = UH0_0(v150, v259)                                   │
00:02:30 #20889 [Verbose] > │         let v261 : UH0 = UH0_0(v149, v260)                                   │
00:02:30 #20890 [Verbose] > │         let v262 : UH0 = UH0_0(v148, v261)                                   │
00:02:30 #20891 [Verbose] > │         let v263 : UH0 = UH0_0(v147, v262)                                   │
00:02:30 #20892 [Verbose] > │         let v264 : UH0 = UH0_0(v146, v263)                                   │
00:02:30 #20893 [Verbose] > │         let v265 : UH0 = UH0_0(v145, v264)                                   │
00:02:30 #20894 [Verbose] > │         let v266 : UH0 = UH0_0(v144, v265)                                   │
00:02:30 #20895 [Verbose] > │         let v267 : UH0 = UH0_0(v143, v266)                                   │
00:02:30 #20896 [Verbose] > │         let v268 : UH0 = UH0_0(v142, v267)                                   │
00:02:30 #20897 [Verbose] > │         let v269 : UH0 = UH0_0(v141, v268)                                   │
00:02:30 #20898 [Verbose] > │         let v270 : UH0 = UH0_0(v140, v269)                                   │
00:02:30 #20899 [Verbose] > │         let v271 : UH0 = UH0_0(v139, v270)                                   │
00:02:30 #20900 [Verbose] > │         let v272 : (float []) = method2(v271)                                │
00:02:30 #20901 [Verbose] > │         UH1_0(v138, v272, v4)                                                │
00:02:30 #20902 [Verbose] > │     | UH0_1 -> (* Nil *)                                                     │
00:02:30 #20903 [Verbose] > │         v1                                                                   │
00:02:30 #20904 [Verbose] > │ and method6 (v0 : UH1, v1 : int32) : int32 =                                 │
00:02:30 #20905 [Verbose] > │     match v0 with                                                            │
00:02:30 #20906 [Verbose] > │     | UH1_0(v2, v3, v4) -> (* Cons *)                                        │
00:02:30 #20907 [Verbose] > │         let v5 : int32 = v1 + 1                                              │
00:02:30 #20908 [Verbose] > │         method6(v4, v5)                                                      │
00:02:30 #20909 [Verbose] > │     | UH1_1 -> (* Nil *)                                                     │
00:02:30 #20910 [Verbose] > │         v1                                                                   │
00:02:30 #20911 [Verbose] > │ and method7 (v0 : (struct ((float []) * (float [])) []), v1 : UH1, v2 :      │
00:02:30 #20912 [Verbose] > │ int32) : int32 =                                                             │
00:02:30 #20913 [Verbose] > │     match v1 with                                                            │
00:02:30 #20914 [Verbose] > │     | UH1_0(v3, v4, v5) -> (* Cons *)                                        │
00:02:30 #20915 [Verbose] > │         v0.[int v2] <- struct (v3, v4)                                       │
00:02:30 #20916 [Verbose] > │         let v6 : int32 = v2 + 1                                              │
00:02:30 #20917 [Verbose] > │         method7(v0, v5, v6)                                                  │
00:02:30 #20918 [Verbose] > │     | UH1_1 -> (* Nil *)                                                     │
00:02:30 #20919 [Verbose] > │         v2                                                                   │
00:02:30 #20920 [Verbose] > │ and method5 (v0 : UH1) : (struct ((float []) * (float [])) []) =             │
00:02:30 #20921 [Verbose] > │     let v1 : int32 = 0                                                       │
00:02:30 #20922 [Verbose] > │     let v2 : int32 = method6(v0, v1)                                         │
00:02:30 #20923 [Verbose] > │     let v3 : (struct ((float []) * (float [])) []) = Array.zeroCreate<struct │
00:02:30 #20924 [Verbose] > │ ((float []) * (float []))> (v2)                                              │
00:02:30 #20925 [Verbose] > │     let v4 : int32 = 0                                                       │
00:02:30 #20926 [Verbose] > │     let v5 : int32 = method7(v3, v0, v4)                                     │
00:02:30 #20927 [Verbose] > │     v3                                                                       │
00:02:30 #20928 [Verbose] > │ and method8 (v0 : (struct (string * (float []) * (float [])) [])) : (struct  │
00:02:30 #20929 [Verbose] > │ (string * (float []) * (float [])) []) =                                     │
00:02:30 #20930 [Verbose] > │     v0                                                                       │
00:02:30 #20931 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:02:30 #20932 [Verbose] > │ []) * (float [])) [])) =                                                     │
00:02:30 #20933 [Verbose] > │     let v0 : float = 0.0                                                     │
00:02:30 #20934 [Verbose] > │     let v1 : float = 1.0                                                     │
00:02:30 #20935 [Verbose] > │     let v2 : float = 2.0                                                     │
00:02:30 #20936 [Verbose] > │     let v3 : float = 3.0                                                     │
00:02:30 #20937 [Verbose] > │     let v4 : float = 4.0                                                     │
00:02:30 #20938 [Verbose] > │     let v5 : float = 5.0                                                     │
00:02:30 #20939 [Verbose] > │     let v6 : float = 6.0                                                     │
00:02:30 #20940 [Verbose] > │     let v7 : float = 7.0                                                     │
00:02:30 #20941 [Verbose] > │     let v8 : float = 8.0                                                     │
00:02:30 #20942 [Verbose] > │     let v9 : float = 9.0                                                     │
00:02:30 #20943 [Verbose] > │     let v10 : UH0 = UH0_1                                                    │
00:02:30 #20944 [Verbose] > │     let v11 : UH0 = UH0_0(v9, v10)                                           │
00:02:30 #20945 [Verbose] > │     let v12 : UH0 = UH0_0(v8, v11)                                           │
00:02:30 #20946 [Verbose] > │     let v13 : UH0 = UH0_0(v7, v12)                                           │
00:02:30 #20947 [Verbose] > │     let v14 : UH0 = UH0_0(v6, v13)                                           │
00:02:30 #20948 [Verbose] > │     let v15 : UH0 = UH0_0(v5, v14)                                           │
00:02:30 #20949 [Verbose] > │     let v16 : UH0 = UH0_0(v4, v15)                                           │
00:02:30 #20950 [Verbose] > │     let v17 : UH0 = UH0_0(v3, v16)                                           │
00:02:30 #20951 [Verbose] > │     let v18 : UH0 = UH0_0(v2, v17)                                           │
00:02:30 #20952 [Verbose] > │     let v19 : UH0 = UH0_0(v1, v18)                                           │
00:02:30 #20953 [Verbose] > │     let v20 : UH0 = UH0_0(v0, v19)                                           │
00:02:30 #20954 [Verbose] > │     let v21 : UH1 = UH1_1                                                    │
00:02:30 #20955 [Verbose] > │     let v22 : UH1 = method1(v20, v21)                                        │
00:02:30 #20956 [Verbose] > │     let v23 : (struct ((float []) * (float [])) []) = method5(v22)           │
00:02:30 #20957 [Verbose] > │     let struct (v24 : (float []), v25 : (float [])) = v23.[int 0]            │
00:02:30 #20958 [Verbose] > │     let v26 : string = $"{0}"                                                │
00:02:30 #20959 [Verbose] > │     let v27 : (struct (string * (float []) * (float [])) []) = [|struct      │
00:02:30 #20960 [Verbose] > │ (v26, v24, v25)|]                                                            │
00:02:30 #20961 [Verbose] > │     let v28 : (struct (string * (float []) * (float [])) []) = method8(v27)  │
00:02:30 #20962 [Verbose] > │     let v29 : string = "wave"                                                │
00:02:30 #20963 [Verbose] > │     let v30 : string = "position (m)"                                        │
00:02:30 #20964 [Verbose] > │     let v31 : string = "displacement (m)"                                    │
00:02:30 #20965 [Verbose] > │     struct (v29, v30, v31, v28)                                              │
00:02:30 #20966 [Verbose] > │ method0()                                                                    │
00:02:30 #20967 [Verbose] > │                                                                              │
00:02:30 #20968 [Verbose] > │                                                                              │
00:02:30 #20969 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:30 #20970 [Verbose] >
00:02:30 #20971 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:30 #20972 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:30 #20973 [Verbose] > │ ### system kinetic energy versus time 2                                      │
00:02:30 #20974 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:30 #20975 [Verbose] >
00:02:30 #20976 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:30 #20977 [Verbose] > // // test
00:02:30 #20978 [Verbose] >
00:02:30 #20979 [Verbose] > inl central_force f (particle_state st1) (particle_state st2) =
00:02:30 #20980 [Verbose] >     inl r1 = st1.pos_vec
00:02:30 #20981 [Verbose] >     inl r2 = st2.pos_vec
00:02:30 #20982 [Verbose] >     inl r21 = r2 ^-^ r1
00:02:30 #20983 [Verbose] >     inl r21mag = magnitude r21
00:02:30 #20984 [Verbose] >     f r21mag *^ r21 ^/ r21mag
00:02:30 #20985 [Verbose] >
00:02:30 #20986 [Verbose] > inl billiard_force k re =
00:02:30 #20987 [Verbose] >     inl f r =
00:02:30 #20988 [Verbose] >         if r >= re
00:02:30 #20989 [Verbose] >         then 0
00:02:30 #20990 [Verbose] >         else -k * (r - re)
00:02:30 #20991 [Verbose] >     central_force f
00:02:30 #20992 [Verbose] >
00:02:30 #20993 [Verbose] > type force_vector = vec
00:02:30 #20994 [Verbose] > type two_body_force = particle_state -> particle_state -> force_vector
00:02:30 #20995 [Verbose] >
00:02:30 #20996 [Verbose] > union force t =
00:02:30 #20997 [Verbose] >     | ExternalForce : t * one_body_force
00:02:30 #20998 [Verbose] >     | InternalForce : t * t * two_body_force
00:02:30 #20999 [Verbose] >
00:02:30 #21000 [Verbose] > nominal multi_particle_state = stream.stream particle_state
00:02:30 #21001 [Verbose] >
00:02:30 #21002 [Verbose] > nominal d_multi_particle_state = stream.stream d_particle_state
00:02:30 #21003 [Verbose] >
00:02:30 #21004 [Verbose] > inl force_on n s force =
00:02:30 #21005 [Verbose] >     match force with
00:02:30 #21006 [Verbose] >     | ExternalForce (n0, f_one_body) =>
00:02:30 #21007 [Verbose] >         if n = n0
00:02:30 #21008 [Verbose] >         then f_one_body
00:02:30 #21009 [Verbose] >         else fun _ => zero_vec ()
00:02:30 #21010 [Verbose] >     | InternalForce (n0, n1, f_two_body) =>
00:02:30 #21011 [Verbose] >         if n = n0
00:02:30 #21012 [Verbose] >         then s |> stream.try_item n1 |> optionm.map f_two_body
00:02:30 #21013 [Verbose] >         elif n = n1
00:02:30 #21014 [Verbose] >         then s |> stream.try_item n0 |> optionm.map f_two_body
00:02:30 #21015 [Verbose] >         else None
00:02:30 #21016 [Verbose] >         |> optionm'.default_value (fun _ => zero_vec ())
00:02:30 #21017 [Verbose] >
00:02:30 #21018 [Verbose] > inl forces_on n (multi_particle_state sts) fs =
00:02:30 #21019 [Verbose] >     fs
00:02:30 #21020 [Verbose] >     |> listm.map (force_on n sts)
00:02:30 #21021 [Verbose] >
00:02:30 #21022 [Verbose] > inl newton_second_mps fs ((multi_particle_state sts) as mpst) =
00:02:30 #21023 [Verbose] >     inl deriv (n, st) =
00:02:30 #21024 [Verbose] >         newton_second_ps (forces_on n mpst fs) st
00:02:30 #21025 [Verbose] >     sts |> stream.indexed |> stream.map deriv |> d_multi_particle_state
00:02:30 #21026 [Verbose] >
00:02:30 #21027 [Verbose] > instance (+++) d_multi_particle_state =
00:02:30 #21028 [Verbose] >     fun (d_multi_particle_state dsts1) (d_multi_particle_state dsts2) =>
00:02:30 #21029 [Verbose] >         (dsts1, dsts2)
00:02:30 #21030 [Verbose] >         ||> stream.zip_with (+++)
00:02:30 #21031 [Verbose] >         |> d_multi_particle_state
00:02:30 #21032 [Verbose] >
00:02:30 #21033 [Verbose] > instance scale d_multi_particle_state = fun w (d_multi_particle_state dsts) =>
00:02:30 #21034 [Verbose] >     dsts
00:02:30 #21035 [Verbose] >     |> stream.map (scale w)
00:02:30 #21036 [Verbose] >     |> d_multi_particle_state
00:02:30 #21037 [Verbose] >
00:02:30 #21038 [Verbose] > instance shift multi_particle_state = fun dt dsts (multi_particle_state sts) =>
00:02:30 #21039 [Verbose] >     inl (d_multi_particle_state dsts) =
00:02:30 #21040 [Verbose] >         real
00:02:30 #21041 [Verbose] >             match dsts with
00:02:30 #21042 [Verbose] >             | d_multi_particle_state _ => dsts
00:02:30 #21043 [Verbose] >     (dsts, sts)
00:02:30 #21044 [Verbose] >     ||> stream.zip_with (shift dt)
00:02:30 #21045 [Verbose] >     |> stream.memoize
00:02:30 #21046 [Verbose] >     |> fun x => x ()
00:02:30 #21047 [Verbose] >     |> multi_particle_state
00:02:30 #21048 [Verbose] >
00:02:30 #21049 [Verbose] > inl euler_cromer_mps dt : numerical_method multi_particle_state
00:02:30 #21050 [Verbose] > d_multi_particle_state =
00:02:30 #21051 [Verbose] >     fun deriv ((multi_particle_state sts0) as mpst0) =>
00:02:30 #21052 [Verbose] >         inl (multi_particle_state sts1) = euler dt deriv mpst0
00:02:30 #21053 [Verbose] >         (sts0, sts1)
00:02:30 #21054 [Verbose] >         ||> stream.zip
00:02:30 #21055 [Verbose] >         |> stream.map (fun ((particle_state st0), (particle_state st1)) =>
00:02:30 #21056 [Verbose] >             particle_state {
00:02:30 #21057 [Verbose] >                 st1 with
00:02:30 #21058 [Verbose] >                     pos_vec = st0.pos_vec ^+^ st1.velocity ^* dt
00:02:30 #21059 [Verbose] >             }
00:02:30 #21060 [Verbose] >         )
00:02:30 #21061 [Verbose] >         |> multi_particle_state
00:02:30 #21062 [Verbose] >
00:02:30 #21063 [Verbose] > inl update_mps (method : numerical_method multi_particle_state
00:02:30 #21064 [Verbose] > d_multi_particle_state) =
00:02:30 #21065 [Verbose] >     newton_second_mps >> method
00:02:30 #21066 [Verbose] >
00:02:30 #21067 [Verbose] > inl states_mps (method : numerical_method multi_particle_state
00:02:30 #21068 [Verbose] > d_multi_particle_state) =
00:02:30 #21069 [Verbose] >     newton_second_mps
00:02:30 #21070 [Verbose] >     >> method
00:02:30 #21071 [Verbose] >     >> (fun x (multi_particle_state y) =>
00:02:30 #21072 [Verbose] >         y
00:02:30 #21073 [Verbose] >         |> stream.memoize
00:02:30 #21074 [Verbose] >         |> (fun x => x ())
00:02:30 #21075 [Verbose] >         |> multi_particle_state |> x
00:02:30 #21076 [Verbose] >     )
00:02:30 #21077 [Verbose] >     // >> stream.iterate
00:02:30 #21078 [Verbose] >     >> seq.iterate'
00:02:30 #21079 [Verbose] >
00:02:30 #21080 [Verbose] > inl kinetic_energy (particle_state st) =
00:02:30 #21081 [Verbose] >     inl m = st.mass
00:02:30 #21082 [Verbose] >     inl v = magnitude st.velocity
00:02:30 #21083 [Verbose] >     0.5 * m * v ** 2
00:02:30 #21084 [Verbose] >
00:02:30 #21085 [Verbose] > inl system_ke (multi_particle_state sts) =
00:02:30 #21086 [Verbose] >     sts
00:02:30 #21087 [Verbose] >     |> stream.map kinetic_energy
00:02:30 #21088 [Verbose] >     |> stream.sum
00:02:30 #21089 [Verbose] >
00:02:30 #21090 [Verbose] > inl linear_spring_pe k re (particle_state st1) (particle_state st2) =
00:02:30 #21091 [Verbose] >     inl r1 = st1.pos_vec
00:02:30 #21092 [Verbose] >     inl r2 = st2.pos_vec
00:02:30 #21093 [Verbose] >     inl r21 = r2 ^-^ r1
00:02:30 #21094 [Verbose] >     inl r21mag = magnitude r21
00:02:30 #21095 [Verbose] >     k * (r21mag - re) ** 2 / 2
00:02:30 #21096 [Verbose] >
00:02:30 #21097 [Verbose] > inl earth_surface_gravity_pe (particle_state st) =
00:02:30 #21098 [Verbose] >     inl g = 9.80665
00:02:30 #21099 [Verbose] >     inl m = st.mass
00:02:30 #21100 [Verbose] >     inl z = st.pos_vec.z
00:02:30 #21101 [Verbose] >     m * g * z
00:02:30 #21102 [Verbose] >
00:02:30 #21103 [Verbose] > inl ball_radius () = 0.03
00:02:30 #21104 [Verbose] >
00:02:30 #21105 [Verbose] > inl billiard_forces k =
00:02:30 #21106 [Verbose] >     [[ InternalForce (0i32, 1, billiard_force k (2 * ball_radius ())) ]]
00:02:30 #21107 [Verbose] >
00:02:30 #21108 [Verbose] > inl billiard_initial () =
00:02:30 #21109 [Verbose] >     inl ball_mass = 0.160
00:02:30 #21110 [Verbose] >     inl (particle_state default_particle_state') = default_particle_state ()
00:02:30 #21111 [Verbose] >     [[
00:02:30 #21112 [Verbose] >         particle_state {
00:02:30 #21113 [Verbose] >             default_particle_state' with
00:02:30 #21114 [Verbose] >                 mass = ball_mass
00:02:30 #21115 [Verbose] >                 pos_vec = zero_vec ()
00:02:30 #21116 [Verbose] >                 velocity = 0.2 *^ i_hat ()
00:02:30 #21117 [Verbose] >         }
00:02:30 #21118 [Verbose] >         particle_state {
00:02:30 #21119 [Verbose] >             default_particle_state' with
00:02:30 #21120 [Verbose] >                 mass = ball_mass
00:02:30 #21121 [Verbose] >                 pos_vec = i_hat () ^+^ 0.02 *^ j_hat ()
00:02:30 #21122 [Verbose] >                 velocity = zero_vec ()
00:02:30 #21123 [Verbose] >         }
00:02:30 #21124 [Verbose] >     ]]
00:02:30 #21125 [Verbose] >     |> stream.from_list
00:02:30 #21126 [Verbose] >     |> multi_particle_state
00:02:30 #21127 [Verbose] >
00:02:30 #21128 [Verbose] > inl billiard_states ~n_method k dt =
00:02:30 #21129 [Verbose] >     states_mps (n_method dt) (billiard_forces k) (billiard_initial ())
00:02:30 #21130 [Verbose] >
00:02:30 #21131 [Verbose] > inl billiard_states_finite n_method k dt =
00:02:30 #21132 [Verbose] >     billiard_states n_method k dt
00:02:30 #21133 [Verbose] >     >> Some
00:02:30 #21134 [Verbose] >     |> seq.take_while_ (fun (multi_particle_state mpst) (_ : i32) =>
00:02:30 #21135 [Verbose] >         match mpst |> stream.try_item 0i32 with
00:02:30 #21136 [Verbose] >         | Some st =>
00:02:30 #21137 [Verbose] >             st.time <= 10
00:02:30 #21138 [Verbose] >         | None => false
00:02:30 #21139 [Verbose] >     )
00:02:30 #21140 [Verbose] >
00:02:30 #21141 [Verbose] > inl momentum (particle_state st) =
00:02:30 #21142 [Verbose] >     inl m = st.mass
00:02:30 #21143 [Verbose] >     inl v = st.velocity
00:02:30 #21144 [Verbose] >     m *^ v
00:02:30 #21145 [Verbose] >
00:02:30 #21146 [Verbose] > inl system_p (multi_particle_state sts) =
00:02:30 #21147 [Verbose] >     sts
00:02:30 #21148 [Verbose] >     |> stream.map momentum
00:02:30 #21149 [Verbose] >     |> stream.fold (^+^) (zero_vec ())
00:02:30 #21150 [Verbose] >
00:02:30 #21151 [Verbose] > inl time_ke_ec_x, time_ke_ec_y =
00:02:30 #21152 [Verbose] >     billiard_states_finite euler_cromer_mps 30 0.03
00:02:30 #21153 [Verbose] >     |> listm.map (fun (multi_particle_state mpst) =>
00:02:30 #21154 [Verbose] >         mpst |> stream.try_item 0i32
00:02:30 #21155 [Verbose] >         |> optionm.map (fun st =>
00:02:30 #21156 [Verbose] >             st.time, system_ke (multi_particle_state mpst)
00:02:30 #21157 [Verbose] >         )
00:02:30 #21158 [Verbose] >     )
00:02:30 #21159 [Verbose] >     // |> stream.to_list
00:02:30 #21160 [Verbose] >     |> listm'.choose id
00:02:30 #21161 [Verbose] >     |> listm'.unzip
00:02:30 #21162 [Verbose] >
00:02:30 #21163 [Verbose] > inl time_ke_rk4_x, time_ke_rk4_y =
00:02:30 #21164 [Verbose] >     billiard_states_finite runge_kutta_4 30 0.03
00:02:30 #21165 [Verbose] >     |> listm.map (fun (multi_particle_state mpst) =>
00:02:30 #21166 [Verbose] >         mpst |> stream.try_item 0i32
00:02:30 #21167 [Verbose] >         |> optionm.map (fun st =>
00:02:30 #21168 [Verbose] >             st.time, system_ke (multi_particle_state mpst)
00:02:30 #21169 [Verbose] >         )
00:02:30 #21170 [Verbose] >     )
00:02:30 #21171 [Verbose] >     // |> stream.to_list
00:02:30 #21172 [Verbose] >     |> listm'.choose id
00:02:30 #21173 [Verbose] >     |> listm'.unzip
00:02:30 #21174 [Verbose] >
00:02:30 #21175 [Verbose] > inl time_ke_ec_x : a i32 _ = time_ke_ec_x |> listm.toArray
00:02:30 #21176 [Verbose] > inl time_ke_ec_y : a i32 _ = time_ke_ec_y |> listm.toArray
00:02:30 #21177 [Verbose] >
00:02:30 #21178 [Verbose] > inl time_ke_rk4_x : a i32 _ = time_ke_rk4_x |> listm.toArray
00:02:30 #21179 [Verbose] > inl time_ke_rk4_y : a i32 _ = time_ke_rk4_y |> listm.toArray
00:02:30 #21180 [Verbose] >
00:02:30 #21181 [Verbose] > "system kinetic energy versus time",
00:02:30 #21182 [Verbose] > "time (s)",
00:02:30 #21183 [Verbose] > "system kinetic energy (j)",
00:02:30 #21184 [Verbose] > ;[[
00:02:30 #21185 [Verbose] >     "euler-cromer", time_ke_ec_x, time_ke_ec_y
00:02:30 #21186 [Verbose] >     "runge-kutta 4", time_ke_rk4_x, time_ke_rk4_y
00:02:30 #21187 [Verbose] > ]]
00:02:30 #21188 [Verbose] > Building /tmp/dotnet-repl/20240329-2208-5946-4677-4d3f4acc1052/main.spi
00:02:32 #21189 [Verbose] >
00:02:32 #21190 [Verbose] > ╭─[ 1.69s - return value ]─────────────────────────────────────────────────────╮
00:02:32 #21191 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480"                          │
00:02:32 #21192 [Verbose] > │ xmlns="http://www.w3.org/2000/svg">                                          │
00:02:32 #21193 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414"        │
00:02:32 #21194 [Verbose] > │ stroke="none"/>                                                              │
00:02:32 #21195 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle"                        │
00:02:32 #21196 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1"            │
00:02:32 #21197 [Verbose] > │ fill="#FFFFFF">                                                              │
00:02:32 #21198 [Verbose] > │ system kinetic energy versus time                                            │
00:02:32 #21199 [Verbose] > │ </text>                                                                      │
00:02:32 #21200 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="59" y1="424" x2="59" │
00:02:32 #21201 [Verbose] > │ y2="75"/>                                                                    │
00:02:32 #21202 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:02:32 #21203 [Verbose] > │ y2="75"/>                                                                    │
00:02:32 #21204 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="79" y1="424" x2="79" │
00:02:32 #21205 [Verbose] > │ y2="75"/>                                                                    │
00:02:32 #21206 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="89" y1="424" x2="89" │
00:02:32 #21207 [Verbose] > │ y2="75"/>                                                                    │
00:02:32 #21208 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1...                        │
00:02:32 #21209 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:32 #21210 [Verbose] >
00:02:32 #21211 [Verbose] > ╭─[ 1.70s - stdout ]───────────────────────────────────────────────────────────╮
00:02:32 #21212 [Verbose] > │ type UH0 =                                                                   │
00:02:32 #21213 [Verbose] > │     | UH0_0 of float * float * float * float * float * float * float * float │
00:02:32 #21214 [Verbose] > │ * float * (unit -> UH0)                                                      │
00:02:32 #21215 [Verbose] > │     | UH0_1                                                                  │
00:02:32 #21216 [Verbose] > │ and UH1 =                                                                    │
00:02:32 #21217 [Verbose] > │     | UH1_0 of float * float * float * float * float * float * float * float │
00:02:32 #21218 [Verbose] > │ * float * (unit -> UH1)                                                      │
00:02:32 #21219 [Verbose] > │     | UH1_1                                                                  │
00:02:32 #21220 [Verbose] > │ and [<Struct>] US0 =                                                         │
00:02:32 #21221 [Verbose] > │     | US0_0 of f0_0 : UH0                                                    │
00:02:32 #21222 [Verbose] > │     | US0_1 of f1_0 : (unit -> UH0)                                          │
00:02:32 #21223 [Verbose] > │ and Mut0 = {mutable l0 : US0}                                                │
00:02:32 #21224 [Verbose] > │ and UH2 =                                                                    │
00:02:32 #21225 [Verbose] > │     | UH2_0 of float * float * float * float * float * float * float * float │
00:02:32 #21226 [Verbose] > │ * float * float * float * float * float * float * float * float * float *    │
00:02:32 #21227 [Verbose] > │ float * (unit -> UH2)                                                        │
00:02:32 #21228 [Verbose] > │     | UH2_1                                                                  │
00:02:32 #21229 [Verbose] > │ and UH3 =                                                                    │
00:02:32 #21230 [Verbose] > │     | UH3_0 of int32 * float * float * float * float * float * float * float │
00:02:32 #21231 [Verbose] > │ * float * float * (unit -> UH3)                                              │
00:02:32 #21232 [Verbose] > │     | UH3_1                                                                  │
00:02:32 #21233 [Verbose] > │ and [<Struct>] US1 =                                                         │
00:02:32 #21234 [Verbose] > │     | US1_0                                                                  │
00:02:32 #21235 [Verbose] > │     | US1_1 of f1_0 : (struct (float * float * float * float * float * float │
00:02:32 #21236 [Verbose] > │ * float * float * float) -> struct (float * float * float))                  │
00:02:32 #21237 [Verbose] > │ and [<Struct>] US2 =                                                         │
00:02:32 #21238 [Verbose] > │     | US2_0                                                                  │
00:02:32 #21239 [Verbose] > │     | US2_1 of f1_0 : float * f1_1 : float * f1_2 : float * f1_3 : float *   │
00:02:32 #21240 [Verbose] > │ f1_4 : float * f1_5 : float * f1_6 : float * f1_7 : float * f1_8 : float     │
00:02:32 #21241 [Verbose] > │ and UH4 =                                                                    │
00:02:32 #21242 [Verbose] > │     | UH4_0 of UH0 * UH4                                                     │
00:02:32 #21243 [Verbose] > │     | UH4_1                                                                  │
00:02:32 #21244 [Verbose] > │ and UH5 =                                                                    │
00:02:32 #21245 [Verbose] > │     | UH5_0 of int32 * UH5                                                   │
00:02:32 #21246 [Verbose] > │     | UH5_1                                                                  │
00:02:32 #21247 [Verbose] > │ and [<Struct>] US3 =                                                         │
00:02:32 #21248 [Verbose] > │     | US3_0                                                                  │
00:02:32 #21249 [Verbose] > │     | US3_1 of f1_0 : float * f1_1 : float                                   │
00:02:32 #21250 [Verbose] > │ and UH6 =                                                                    │
00:02:32 #21251 [Verbose] > │     | UH6_0 of US3 * UH6                                                     │
00:02:32 #21252 [Verbose] > │     | UH6_1                                                                  │
00:02:32 #21253 [Verbose] > │ and UH7 =                                                                    │
00:02:32 #21254 [Verbose] > │     | UH7_0 of float * (unit -> UH7)                                         │
00:02:32 #21255 [Verbose] > │     | UH7_1                                                                  │
00:02:32 #21256 [Verbose] > │ and UH8 =                                                                    │
00:02:32 #21257 [Verbose] > │     | UH8_0 of float * float * UH8                                           │
00:02:32 #21258 [Verbose] > │     | UH8_1                                                                  │
00:02:32 #21259 [Verbose] > │ and UH9 =                                                                    │
00:02:32 #21260 [Verbose] > │     | UH9_0 of float * UH9                                                   │
00:02:32 #21261 [Verbose] > │     | UH9_1                                                                  │
00:02:32 #21262 [Verbose] > │ let rec closure3 (v0 : float, v1 : (unit -> UH0), v2 : (unit -> UH1)) () :   │
00:02:32 #21263 [Verbose] > │ UH0 =                                                                        │
00:02:32 #21264 [Verbose] > │     let v3 : UH1 = v2 ()                                                     │
00:02:32 #21265 [Verbose] > │     let v4 : UH0 = v1 ()                                                     │
00:02:32 #21266 [Verbose] > │     match v3 with                                                            │
00:02:32 #21267 [Verbose] > │     | UH1_0(v5, v6, v7, v8, v9, v10, v11, v12, v13, v14) -> (* StreamCons *) │
00:02:32 #21268 [Verbose] > │         match v4 with                                                        │
00:02:32 #21269 [Verbose] > │         | UH0_0(v15, v16, v17, v18, v19, v20, v21, v22, v23, v24) -> (*      │
00:02:32 #21270 [Verbose] > │ StreamCons *)                                                                │
00:02:32 #21271 [Verbose] > │             let v25 : float = v10 * v0                                       │
00:02:32 #21272 [Verbose] > │             let v26 : float = v20 + v25                                      │
00:02:32 #21273 [Verbose] > │             let v27 : float = v0 * v7                                        │
00:02:32 #21274 [Verbose] > │             let v28 : float = v0 * v8                                        │
00:02:32 #21275 [Verbose] > │             let v29 : float = v0 * v9                                        │
00:02:32 #21276 [Verbose] > │             let v30 : float = v17 + v27                                      │
00:02:32 #21277 [Verbose] > │             let v31 : float = v18 + v28                                      │
00:02:32 #21278 [Verbose] > │             let v32 : float = v19 + v29                                      │
00:02:32 #21279 [Verbose] > │             let v33 : float = v0 * v11                                       │
00:02:32 #21280 [Verbose] > │             let v34 : float = v0 * v12                                       │
00:02:32 #21281 [Verbose] > │             let v35 : float = v0 * v13                                       │
00:02:32 #21282 [Verbose] > │             let v36 : float = v21 + v33                                      │
00:02:32 #21283 [Verbose] > │             let v37 : float = v22 + v34                                      │
00:02:32 #21284 [Verbose] > │             let v38 : float = v23 + v35                                      │
00:02:32 #21285 [Verbose] > │             let v39 : (unit -> UH0) = closure3(v0, v24, v14)                 │
00:02:32 #21286 [Verbose] > │             UH0_0(v15, v16, v30, v31, v32, v26, v36, v37, v38, v39)          │
00:02:32 #21287 [Verbose] > │         | UH0_1 -> (* StreamNil *)                                           │
00:02:32 #21288 [Verbose] > │             UH0_1                                                            │
00:02:32 #21289 [Verbose] > │     | UH1_1 -> (* StreamNil *)                                               │
00:02:32 #21290 [Verbose] > │         UH0_1                                                                │
00:02:32 #21291 [Verbose] > │ and closure4 (v0 : UH0) () : UH0 =                                           │
00:02:32 #21292 [Verbose] > │     v0                                                                       │
00:02:32 #21293 [Verbose] > │ and closure5 (v0 : UH0, v1 : Mut0) () : UH0 =                                │
00:02:32 #21294 [Verbose] > │     let v2 : US0 = v1.l0                                                     │
00:02:32 #21295 [Verbose] > │     match v2 with                                                            │
00:02:32 #21296 [Verbose] > │     | US0_0(v3) -> (* Computed *)                                            │
00:02:32 #21297 [Verbose] > │         v3                                                                   │
00:02:32 #21298 [Verbose] > │     | US0_1(v4) -> (* NotComputed *)                                         │
00:02:32 #21299 [Verbose] > │         let v5 : UH0 = v4 ()                                                 │
00:02:32 #21300 [Verbose] > │         let v20 : UH0 =                                                      │
00:02:32 #21301 [Verbose] > │             match v5 with                                                    │
00:02:32 #21302 [Verbose] > │             | UH0_0(v7, v8, v9, v10, v11, v12, v13, v14, v15, v16) -> (*     │
00:02:32 #21303 [Verbose] > │ StreamCons *)                                                                │
00:02:32 #21304 [Verbose] > │                 let v17 : (unit -> UH0) = method1(v0, v16)                   │
00:02:32 #21305 [Verbose] > │                 UH0_0(v7, v8, v9, v10, v11, v12, v13, v14, v15, v17)         │
00:02:32 #21306 [Verbose] > │             | UH0_1 -> (* StreamNil *)                                       │
00:02:32 #21307 [Verbose] > │                 UH0_1                                                        │
00:02:32 #21308 [Verbose] > │         let v21 : US0 = US0_0(v20)                                           │
00:02:32 #21309 [Verbose] > │         v1.l0 <- v21                                                         │
00:02:32 #21310 [Verbose] > │         v20                                                                  │
00:02:32 #21311 [Verbose] > │ and method1 (v0 : UH0, v1 : (unit -> UH0)) : (unit -> UH0) =                 │
00:02:32 #21312 [Verbose] > │     let v2 : US0 = US0_1(v1)                                                 │
00:02:32 #21313 [Verbose] > │     let v3 : Mut0 = {l0 = v2} : Mut0                                         │
00:02:32 #21314 [Verbose] > │     closure5(v0, v3)                                                         │
00:02:32 #21315 [Verbose] > │ and closure6 (v0 : (unit -> UH0), v1 : (unit -> UH0)) () : UH2 =             │
00:02:32 #21316 [Verbose] > │     let v2 : UH0 = v1 ()                                                     │
00:02:32 #21317 [Verbose] > │     let v3 : UH0 = v0 ()                                                     │
00:02:32 #21318 [Verbose] > │     match v2 with                                                            │
00:02:32 #21319 [Verbose] > │     | UH0_0(v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) -> (* StreamCons *)  │
00:02:32 #21320 [Verbose] > │         match v3 with                                                        │
00:02:32 #21321 [Verbose] > │         | UH0_0(v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) -> (*      │
00:02:32 #21322 [Verbose] > │ StreamCons *)                                                                │
00:02:32 #21323 [Verbose] > │             let v24 : (unit -> UH2) = closure6(v23, v13)                     │
00:02:32 #21324 [Verbose] > │             UH2_0(v4, v5, v6, v7, v8, v9, v10, v11, v12, v14, v15, v16, v17, │
00:02:32 #21325 [Verbose] > │ v18, v19, v20, v21, v22, v24)                                                │
00:02:32 #21326 [Verbose] > │         | UH0_1 -> (* StreamNil *)                                           │
00:02:32 #21327 [Verbose] > │             UH2_1                                                            │
00:02:32 #21328 [Verbose] > │     | UH0_1 -> (* StreamNil *)                                               │
00:02:32 #21329 [Verbose] > │         UH2_1                                                                │
00:02:32 #21330 [Verbose] > │ and closure7 (v0 : UH0) () : UH0 =                                           │
00:02:32 #21331 [Verbose] > │     v0                                                                       │
00:02:32 #21332 [Verbose] > │ and method2 (v0 : float, v1 : UH2, v2 : UH0) : UH0 =                         │
00:02:32 #21333 [Verbose] > │     match v1 with                                                            │
00:02:32 #21334 [Verbose] > │     | UH2_0(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16,   │
00:02:32 #21335 [Verbose] > │ v17, v18, v19, v20, v21) -> (* StreamCons *)                                 │
00:02:32 #21336 [Verbose] > │         let v22 : UH2 = v21 ()                                               │
00:02:32 #21337 [Verbose] > │         let v23 : UH0 = method2(v0, v22, v2)                                 │
00:02:32 #21338 [Verbose] > │         let v24 : float = v0 * v18                                           │
00:02:32 #21339 [Verbose] > │         let v25 : float = v0 * v19                                           │
00:02:32 #21340 [Verbose] > │         let v26 : float = v0 * v20                                           │
00:02:32 #21341 [Verbose] > │         let v27 : float = v5 + v24                                           │
00:02:32 #21342 [Verbose] > │         let v28 : float = v6 + v25                                           │
00:02:32 #21343 [Verbose] > │         let v29 : float = v7 + v26                                           │
00:02:32 #21344 [Verbose] > │         let v30 : (unit -> UH0) = closure7(v23)                              │
00:02:32 #21345 [Verbose] > │         UH0_0(v12, v13, v27, v28, v29, v17, v18, v19, v20, v30)              │
00:02:32 #21346 [Verbose] > │     | UH2_1 -> (* StreamNil *)                                               │
00:02:32 #21347 [Verbose] > │         v2                                                                   │
00:02:32 #21348 [Verbose] > │ and closure2 (v0 : float, v1 : (UH0 -> UH1)) (v2 : UH0) : UH0 =              │
00:02:32 #21349 [Verbose] > │     let v3 : UH1 = v1 v2                                                     │
00:02:32 #21350 [Verbose] > │     let v45 : UH0 =                                                          │
00:02:32 #21351 [Verbose] > │         match v3 with                                                        │
00:02:32 #21352 [Verbose] > │         | UH1_0(v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) -> (* StreamCons │
00:02:32 #21353 [Verbose] > │ *)                                                                           │
00:02:32 #21354 [Verbose] > │             match v2 with                                                    │
00:02:32 #21355 [Verbose] > │             | UH0_0(v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) -> (*  │
00:02:32 #21356 [Verbose] > │ StreamCons *)                                                                │
00:02:32 #21357 [Verbose] > │                 let v24 : float = v9 * v0                                    │
00:02:32 #21358 [Verbose] > │                 let v25 : float = v19 + v24                                  │
00:02:32 #21359 [Verbose] > │                 let v26 : float = v0 * v6                                    │
00:02:32 #21360 [Verbose] > │                 let v27 : float = v0 * v7                                    │
00:02:32 #21361 [Verbose] > │                 let v28 : float = v0 * v8                                    │
00:02:32 #21362 [Verbose] > │                 let v29 : float = v16 + v26                                  │
00:02:32 #21363 [Verbose] > │                 let v30 : float = v17 + v27                                  │
00:02:32 #21364 [Verbose] > │                 let v31 : float = v18 + v28                                  │
00:02:32 #21365 [Verbose] > │                 let v32 : float = v0 * v10                                   │
00:02:32 #21366 [Verbose] > │                 let v33 : float = v0 * v11                                   │
00:02:32 #21367 [Verbose] > │                 let v34 : float = v0 * v12                                   │
00:02:32 #21368 [Verbose] > │                 let v35 : float = v20 + v32                                  │
00:02:32 #21369 [Verbose] > │                 let v36 : float = v21 + v33                                  │
00:02:32 #21370 [Verbose] > │                 let v37 : float = v22 + v34                                  │
00:02:32 #21371 [Verbose] > │                 let v38 : (unit -> UH0) = closure3(v0, v23, v13)             │
00:02:32 #21372 [Verbose] > │                 UH0_0(v14, v15, v29, v30, v31, v25, v35, v36, v37, v38)      │
00:02:32 #21373 [Verbose] > │             | UH0_1 -> (* StreamNil *)                                       │
00:02:32 #21374 [Verbose] > │                 UH0_1                                                        │
00:02:32 #21375 [Verbose] > │         | UH1_1 -> (* StreamNil *)                                           │
00:02:32 #21376 [Verbose] > │             UH0_1                                                            │
00:02:32 #21377 [Verbose] > │     let v46 : (unit -> UH0) = closure4(v45)                                  │
00:02:32 #21378 [Verbose] > │     let v47 : (unit -> UH0) = method1(v45, v46)                              │
00:02:32 #21379 [Verbose] > │     let v48 : UH0 = v47 ()                                                   │
00:02:32 #21380 [Verbose] > │     let v76 : UH2 =                                                          │
00:02:32 #21381 [Verbose] > │         match v2 with                                                        │
00:02:32 #21382 [Verbose] > │         | UH0_0(v49, v50, v51, v52, v53, v54, v55, v56, v57, v58) -> (*      │
00:02:32 #21383 [Verbose] > │ StreamCons *)                                                                │
00:02:32 #21384 [Verbose] > │             match v48 with                                                   │
00:02:32 #21385 [Verbose] > │             | UH0_0(v59, v60, v61, v62, v63, v64, v65, v66, v67, v68) -> (*  │
00:02:32 #21386 [Verbose] > │ StreamCons *)                                                                │
00:02:32 #21387 [Verbose] > │                 let v69 : (unit -> UH2) = closure6(v68, v58)                 │
00:02:32 #21388 [Verbose] > │                 UH2_0(v49, v50, v51, v52, v53, v54, v55, v56, v57, v59, v60, │
00:02:32 #21389 [Verbose] > │ v61, v62, v63, v64, v65, v66, v67, v69)                                      │
00:02:32 #21390 [Verbose] > │             | UH0_1 -> (* StreamNil *)                                       │
00:02:32 #21391 [Verbose] > │                 UH2_1                                                        │
00:02:32 #21392 [Verbose] > │         | UH0_1 -> (* StreamNil *)                                           │
00:02:32 #21393 [Verbose] > │             UH2_1                                                            │
00:02:32 #21394 [Verbose] > │     let v77 : UH0 = UH0_1                                                    │
00:02:32 #21395 [Verbose] > │     let v78 : UH0 = method2(v0, v76, v77)                                    │
00:02:32 #21396 [Verbose] > │     v78                                                                      │
00:02:32 #21397 [Verbose] > │ and closure1 (v0 : float) (v1 : (UH0 -> UH1)) : (UH0 -> UH0) =               │
00:02:32 #21398 [Verbose] > │     closure2(v0, v1)                                                         │
00:02:32 #21399 [Verbose] > │ and closure0 () (v0 : float) : ((UH0 -> UH1) -> (UH0 -> UH0)) =              │
00:02:32 #21400 [Verbose] > │     closure1(v0)                                                             │
00:02:32 #21401 [Verbose] > │ and closure9 (v0 : UH3) () : UH3 =                                           │
00:02:32 #21402 [Verbose] > │     v0                                                                       │
00:02:32 #21403 [Verbose] > │ and method3 (v0 : UH0, v1 : UH3, v2 : int32) : struct (UH3 * int32) =        │
00:02:32 #21404 [Verbose] > │     match v0 with                                                            │
00:02:32 #21405 [Verbose] > │     | UH0_0(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) -> (* StreamCons *)   │
00:02:32 #21406 [Verbose] > │         let v13 : int32 = v2 + 1                                             │
00:02:32 #21407 [Verbose] > │         let v14 : UH0 = v12 ()                                               │
00:02:32 #21408 [Verbose] > │         let v15 : (unit -> UH3) = closure9(v1)                               │
00:02:32 #21409 [Verbose] > │         let v16 : UH3 = UH3_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v15) │
00:02:32 #21410 [Verbose] > │         method3(v14, v16, v13)                                               │
00:02:32 #21411 [Verbose] > │     | UH0_1 -> (* StreamNil *)                                               │
00:02:32 #21412 [Verbose] > │         struct (v1, v2)                                                      │
00:02:32 #21413 [Verbose] > │ and closure10 (v0 : UH3) () : UH3 =                                          │
00:02:32 #21414 [Verbose] > │     v0                                                                       │
00:02:32 #21415 [Verbose] > │ and method4 (v0 : UH3, v1 : UH3) : UH3 =                                     │
00:02:32 #21416 [Verbose] > │     match v0 with                                                            │
00:02:32 #21417 [Verbose] > │     | UH3_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) -> (* StreamCons  │
00:02:32 #21418 [Verbose] > │ *)                                                                           │
00:02:32 #21419 [Verbose] > │         let v13 : UH3 = v12 ()                                               │
00:02:32 #21420 [Verbose] > │         let v14 : (unit -> UH3) = closure10(v1)                              │
00:02:32 #21421 [Verbose] > │         let v15 : UH3 = UH3_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v14) │
00:02:32 #21422 [Verbose] > │         method4(v13, v15)                                                    │
00:02:32 #21423 [Verbose] > │     | UH3_1 -> (* StreamNil *)                                               │
00:02:32 #21424 [Verbose] > │         v1                                                                   │
00:02:32 #21425 [Verbose] > │ and method6 (v0 : int32, v1 : UH0) : US2 =                                   │
00:02:32 #21426 [Verbose] > │     match v1 with                                                            │
00:02:32 #21427 [Verbose] > │     | UH0_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* StreamCons *)    │
00:02:32 #21428 [Verbose] > │         let v12 : bool = v0 <= 0                                             │
00:02:32 #21429 [Verbose] > │         if v12 then                                                          │
00:02:32 #21430 [Verbose] > │             US2_1(v2, v3, v4, v5, v6, v7, v8, v9, v10)                       │
00:02:32 #21431 [Verbose] > │         else                                                                 │
00:02:32 #21432 [Verbose] > │             let v14 : int32 = v0 - 1                                         │
00:02:32 #21433 [Verbose] > │             let v15 : UH0 = v11 ()                                           │
00:02:32 #21434 [Verbose] > │             method6(v14, v15)                                                │
00:02:32 #21435 [Verbose] > │     | UH0_1 -> (* StreamNil *)                                               │
00:02:32 #21436 [Verbose] > │         US2_0                                                                │
00:02:32 #21437 [Verbose] > │ and closure11 (v0 : float, v1 : float, v2 : float, v3 : float, v4 : float,   │
00:02:32 #21438 [Verbose] > │ v5 : float, v6 : float, v7 : float, v8 : float) struct (v9 : float, v10 :    │
00:02:32 #21439 [Verbose] > │ float, v11 : float, v12 : float, v13 : float, v14 : float, v15 : float, v16  │
00:02:32 #21440 [Verbose] > │ : float, v17 : float) : struct (float * float * float) =                     │
00:02:32 #21441 [Verbose] > │     let v18 : float = -1.0 * v2                                              │
00:02:32 #21442 [Verbose] > │     let v19 : float = -1.0 * v3                                              │
00:02:32 #21443 [Verbose] > │     let v20 : float = -1.0 * v4                                              │
00:02:32 #21444 [Verbose] > │     let v21 : float = v11 + v18                                              │
00:02:32 #21445 [Verbose] > │     let v22 : float = v12 + v19                                              │
00:02:32 #21446 [Verbose] > │     let v23 : float = v13 + v20                                              │
00:02:32 #21447 [Verbose] > │     let v24 : float = v21 * v21                                              │
00:02:32 #21448 [Verbose] > │     let v25 : float = v22 * v22                                              │
00:02:32 #21449 [Verbose] > │     let v26 : float = v24 + v25                                              │
00:02:32 #21450 [Verbose] > │     let v27 : float = v23 * v23                                              │
00:02:32 #21451 [Verbose] > │     let v28 : float = v26 + v27                                              │
00:02:32 #21452 [Verbose] > │     let v29 : float = sqrt v28                                               │
00:02:32 #21453 [Verbose] > │     let v30 : bool = v29 >= 0.06                                             │
00:02:32 #21454 [Verbose] > │     let v33 : float =                                                        │
00:02:32 #21455 [Verbose] > │         if v30 then                                                          │
00:02:32 #21456 [Verbose] > │             0.0                                                              │
00:02:32 #21457 [Verbose] > │         else                                                                 │
00:02:32 #21458 [Verbose] > │             let v31 : float = v29 - 0.06                                     │
00:02:32 #21459 [Verbose] > │             let v32 : float = -30.0 * v31                                    │
00:02:32 #21460 [Verbose] > │             v32                                                              │
00:02:32 #21461 [Verbose] > │     let v34 : float = v33 * v21                                              │
00:02:32 #21462 [Verbose] > │     let v35 : float = v33 * v22                                              │
00:02:32 #21463 [Verbose] > │     let v36 : float = v33 * v23                                              │
00:02:32 #21464 [Verbose] > │     let v37 : float = v34 / v29                                              │
00:02:32 #21465 [Verbose] > │     let v38 : float = v35 / v29                                              │
00:02:32 #21466 [Verbose] > │     let v39 : float = v36 / v29                                              │
00:02:32 #21467 [Verbose] > │     struct (v37, v38, v39)                                                   │
00:02:32 #21468 [Verbose] > │ and closure12 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4  │
00:02:32 #21469 [Verbose] > │ : float, v5 : float, v6 : float, v7 : float, v8 : float) : struct (float *   │
00:02:32 #21470 [Verbose] > │ float * float) =                                                             │
00:02:32 #21471 [Verbose] > │     struct (0.0, 0.0, 0.0)                                                   │
00:02:32 #21472 [Verbose] > │ and closure13 (v0 : UH1) () : UH1 =                                          │
00:02:32 #21473 [Verbose] > │     v0                                                                       │
00:02:32 #21474 [Verbose] > │ and method5 (v0 : UH0, v1 : UH3, v2 : UH1) : UH1 =                           │
00:02:32 #21475 [Verbose] > │     match v1 with                                                            │
00:02:32 #21476 [Verbose] > │     | UH3_0(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) -> (* StreamCons │
00:02:32 #21477 [Verbose] > │ *)                                                                           │
00:02:32 #21478 [Verbose] > │         let v14 : UH3 = v13 ()                                               │
00:02:32 #21479 [Verbose] > │         let v15 : UH1 = method5(v0, v14, v2)                                 │
00:02:32 #21480 [Verbose] > │         let v16 : bool = v3 = 0                                              │
00:02:32 #21481 [Verbose] > │         let v52 : US1 =                                                      │
00:02:32 #21482 [Verbose] > │             if v16 then                                                      │
00:02:32 #21483 [Verbose] > │                 let v17 : int32 = 1                                          │
00:02:32 #21484 [Verbose] > │                 let v18 : US2 = method6(v17, v0)                             │
00:02:32 #21485 [Verbose] > │                 match v18 with                                               │
00:02:32 #21486 [Verbose] > │                 | US2_0 -> (* None *)                                        │
00:02:32 #21487 [Verbose] > │                     US1_0                                                    │
00:02:32 #21488 [Verbose] > │                 | US2_1(v19, v20, v21, v22, v23, v24, v25, v26, v27) -> (*   │
00:02:32 #21489 [Verbose] > │ Some *)                                                                      │
00:02:32 #21490 [Verbose] > │                     let v28 : (struct (float * float * float * float * float │
00:02:32 #21491 [Verbose] > │ * float * float * float * float) -> struct (float * float * float)) =        │
00:02:32 #21492 [Verbose] > │ closure11(v19, v20, v21, v22, v23, v24, v25, v26, v27)                       │
00:02:32 #21493 [Verbose] > │                     US1_1(v28)                                               │
00:02:32 #21494 [Verbose] > │             else                                                             │
00:02:32 #21495 [Verbose] > │                 let v33 : bool = v3 = 1                                      │
00:02:32 #21496 [Verbose] > │                 if v33 then                                                  │
00:02:32 #21497 [Verbose] > │                     let v34 : int32 = 0                                      │
00:02:32 #21498 [Verbose] > │                     let v35 : US2 = method6(v34, v0)                         │
00:02:32 #21499 [Verbose] > │                     match v35 with                                           │
00:02:32 #21500 [Verbose] > │                     | US2_0 -> (* None *)                                    │
00:02:32 #21501 [Verbose] > │                         US1_0                                                │
00:02:32 #21502 [Verbose] > │                     | US2_1(v36, v37, v38, v39, v40, v41, v42, v43, v44) ->  │
00:02:32 #21503 [Verbose] > │ (* Some *)                                                                   │
00:02:32 #21504 [Verbose] > │                         let v45 : (struct (float * float * float * float *   │
00:02:32 #21505 [Verbose] > │ float * float * float * float * float) -> struct (float * float * float)) =  │
00:02:32 #21506 [Verbose] > │ closure11(v36, v37, v38, v39, v40, v41, v42, v43, v44)                       │
00:02:32 #21507 [Verbose] > │                         US1_1(v45)                                           │
00:02:32 #21508 [Verbose] > │                 else                                                         │
00:02:32 #21509 [Verbose] > │                     US1_0                                                    │
00:02:32 #21510 [Verbose] > │         let v56 : (struct (float * float * float * float * float * float *   │
00:02:32 #21511 [Verbose] > │ float * float * float) -> struct (float * float * float)) =                  │
00:02:32 #21512 [Verbose] > │             match v52 with                                                   │
00:02:32 #21513 [Verbose] > │             | US1_0 -> (* None *)                                            │
00:02:32 #21514 [Verbose] > │                 closure12()                                                  │
00:02:32 #21515 [Verbose] > │             | US1_1(v53) -> (* Some *)                                       │
00:02:32 #21516 [Verbose] > │                 v53                                                          │
00:02:32 #21517 [Verbose] > │         let struct (v57 : float, v58 : float, v59 : float) = v56 struct (v4, │
00:02:32 #21518 [Verbose] > │ v5, v6, v7, v8, v9, v10, v11, v12)                                           │
00:02:32 #21519 [Verbose] > │         let v60 : float = v57 / v5                                           │
00:02:32 #21520 [Verbose] > │         let v61 : float = v58 / v5                                           │
00:02:32 #21521 [Verbose] > │         let v62 : float = v59 / v5                                           │
00:02:32 #21522 [Verbose] > │         let v63 : (unit -> UH1) = closure13(v15)                             │
00:02:32 #21523 [Verbose] > │         UH1_0(0.0, 0.0, v10, v11, v12, 1.0, v60, v61, v62, v63)              │
00:02:32 #21524 [Verbose] > │     | UH3_1 -> (* StreamNil *)                                               │
00:02:32 #21525 [Verbose] > │         v2                                                                   │
00:02:32 #21526 [Verbose] > │ and closure8 () (v0 : UH0) : UH1 =                                           │
00:02:32 #21527 [Verbose] > │     let v1 : UH3 = UH3_1                                                     │
00:02:32 #21528 [Verbose] > │     let v2 : int32 = 0                                                       │
00:02:32 #21529 [Verbose] > │     let struct (v3 : UH3, v4 : int32) = method3(v0, v1, v2)                  │
00:02:32 #21530 [Verbose] > │     let v5 : UH3 = UH3_1                                                     │
00:02:32 #21531 [Verbose] > │     let v6 : UH3 = method4(v3, v5)                                           │
00:02:32 #21532 [Verbose] > │     let v7 : UH1 = UH1_1                                                     │
00:02:32 #21533 [Verbose] > │     let v8 : UH1 = method5(v0, v6, v7)                                       │
00:02:32 #21534 [Verbose] > │     v8                                                                       │
00:02:32 #21535 [Verbose] > │ and method8 (v0 : int32, v1 : int32) : UH5 =                                 │
00:02:32 #21536 [Verbose] > │     let v2 : bool = v1 < v0                                                  │
00:02:32 #21537 [Verbose] > │     if v2 then                                                               │
00:02:32 #21538 [Verbose] > │         let v3 : int32 = v1 + 1                                              │
00:02:32 #21539 [Verbose] > │         let v4 : UH5 = method8(v0, v3)                                       │
00:02:32 #21540 [Verbose] > │         UH5_0(v1, v4)                                                        │
00:02:32 #21541 [Verbose] > │     else                                                                     │
00:02:32 #21542 [Verbose] > │         UH5_1                                                                │
00:02:32 #21543 [Verbose] > │ and closure15 () () : UH0 =                                                  │
00:02:32 #21544 [Verbose] > │     UH0_1                                                                    │
00:02:32 #21545 [Verbose] > │ and closure14 () () : UH0 =                                                  │
00:02:32 #21546 [Verbose] > │     let v0 : (unit -> UH0) = closure15()                                     │
00:02:32 #21547 [Verbose] > │     UH0_0(0.0, 0.16, 1.0, 0.02, 0.0, 0.0, 0.0, 0.0, 0.0, v0)                 │
00:02:32 #21548 [Verbose] > │ and method9 (v0 : (UH0 -> UH0), v1 : UH5, v2 : UH0) : UH0 =                  │
00:02:32 #21549 [Verbose] > │     match v1 with                                                            │
00:02:32 #21550 [Verbose] > │     | UH5_0(v3, v4) -> (* Cons *)                                            │
00:02:32 #21551 [Verbose] > │         let v5 : (unit -> UH0) = closure4(v2)                                │
00:02:32 #21552 [Verbose] > │         let v6 : (unit -> UH0) = method1(v2, v5)                             │
00:02:32 #21553 [Verbose] > │         let v7 : UH0 = v6 ()                                                 │
00:02:32 #21554 [Verbose] > │         let v8 : UH0 = v0 v7                                                 │
00:02:32 #21555 [Verbose] > │         method9(v0, v4, v8)                                                  │
00:02:32 #21556 [Verbose] > │     | UH5_1 -> (* Nil *)                                                     │
00:02:32 #21557 [Verbose] > │         v2                                                                   │
00:02:32 #21558 [Verbose] > │ and method10 (v0 : UH4, v1 : UH4) : UH4 =                                    │
00:02:32 #21559 [Verbose] > │     match v0 with                                                            │
00:02:32 #21560 [Verbose] > │     | UH4_0(v2, v3) -> (* Cons *)                                            │
00:02:32 #21561 [Verbose] > │         let v4 : UH4 = UH4_0(v2, v1)                                         │
00:02:32 #21562 [Verbose] > │         method10(v3, v4)                                                     │
00:02:32 #21563 [Verbose] > │     | UH4_1 -> (* Nil *)                                                     │
00:02:32 #21564 [Verbose] > │         v1                                                                   │
00:02:32 #21565 [Verbose] > │ and method7 (v0 : (UH0 -> UH0), v1 : UH4, v2 : int32) : UH4 =                │
00:02:32 #21566 [Verbose] > │     let v3 : int32 = 0                                                       │
00:02:32 #21567 [Verbose] > │     let v4 : UH5 = method8(v2, v3)                                           │
00:02:32 #21568 [Verbose] > │     let v5 : float = 0.0                                                     │
00:02:32 #21569 [Verbose] > │     let v6 : float = 0.16                                                    │
00:02:32 #21570 [Verbose] > │     let v7 : float = 0.0                                                     │
00:02:32 #21571 [Verbose] > │     let v8 : float = 0.0                                                     │
00:02:32 #21572 [Verbose] > │     let v9 : float = 0.0                                                     │
00:02:32 #21573 [Verbose] > │     let v10 : float = 0.0                                                    │
00:02:32 #21574 [Verbose] > │     let v11 : float = 0.2                                                    │
00:02:32 #21575 [Verbose] > │     let v12 : float = 0.0                                                    │
00:02:32 #21576 [Verbose] > │     let v13 : float = 0.0                                                    │
00:02:32 #21577 [Verbose] > │     let v14 : (unit -> UH0) = closure14()                                    │
00:02:32 #21578 [Verbose] > │     let v15 : UH0 = UH0_0(v5, v6, v7, v8, v9, v10, v11, v12, v13, v14)       │
00:02:32 #21579 [Verbose] > │     let v16 : UH0 = method9(v0, v4, v15)                                     │
00:02:32 #21580 [Verbose] > │     let v17 : int32 = 0                                                      │
00:02:32 #21581 [Verbose] > │     let v18 : US2 = method6(v17, v16)                                        │
00:02:32 #21582 [Verbose] > │     let v30 : bool =                                                         │
00:02:32 #21583 [Verbose] > │         match v18 with                                                       │
00:02:32 #21584 [Verbose] > │         | US2_0 -> (* None *)                                                │
00:02:32 #21585 [Verbose] > │             false                                                            │
00:02:32 #21586 [Verbose] > │         | US2_1(v19, v20, v21, v22, v23, v24, v25, v26, v27) -> (* Some *)   │
00:02:32 #21587 [Verbose] > │             let v28 : bool = v24 <= 10.0                                     │
00:02:32 #21588 [Verbose] > │             v28                                                              │
00:02:32 #21589 [Verbose] > │     if v30 then                                                              │
00:02:32 #21590 [Verbose] > │         let v31 : UH4 = UH4_0(v16, v1)                                       │
00:02:32 #21591 [Verbose] > │         let v32 : int32 = v2 + 1                                             │
00:02:32 #21592 [Verbose] > │         method7(v0, v31, v32)                                                │
00:02:32 #21593 [Verbose] > │     else                                                                     │
00:02:32 #21594 [Verbose] > │         let v34 : UH4 = UH4_1                                                │
00:02:32 #21595 [Verbose] > │         method10(v1, v34)                                                    │
00:02:32 #21596 [Verbose] > │ and closure16 (v0 : UH7) () : UH7 =                                          │
00:02:32 #21597 [Verbose] > │     v0                                                                       │
00:02:32 #21598 [Verbose] > │ and method12 (v0 : UH0, v1 : UH7) : UH7 =                                    │
00:02:32 #21599 [Verbose] > │     match v0 with                                                            │
00:02:32 #21600 [Verbose] > │     | UH0_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* StreamCons *)    │
00:02:32 #21601 [Verbose] > │         let v12 : UH0 = v11 ()                                               │
00:02:32 #21602 [Verbose] > │         let v13 : UH7 = method12(v12, v1)                                    │
00:02:32 #21603 [Verbose] > │         let v14 : float = v8 * v8                                            │
00:02:32 #21604 [Verbose] > │         let v15 : float = v9 * v9                                            │
00:02:32 #21605 [Verbose] > │         let v16 : float = v14 + v15                                          │
00:02:32 #21606 [Verbose] > │         let v17 : float = v10 * v10                                          │
00:02:32 #21607 [Verbose] > │         let v18 : float = v16 + v17                                          │
00:02:32 #21608 [Verbose] > │         let v19 : float = sqrt v18                                           │
00:02:32 #21609 [Verbose] > │         let v20 : float = 0.5 * v3                                           │
00:02:32 #21610 [Verbose] > │         let v21 : float = v19 ** 2.0                                         │
00:02:32 #21611 [Verbose] > │         let v22 : float = v20 * v21                                          │
00:02:32 #21612 [Verbose] > │         let v23 : (unit -> UH7) = closure16(v13)                             │
00:02:32 #21613 [Verbose] > │         UH7_0(v22, v23)                                                      │
00:02:32 #21614 [Verbose] > │     | UH0_1 -> (* StreamNil *)                                               │
00:02:32 #21615 [Verbose] > │         v1                                                                   │
00:02:32 #21616 [Verbose] > │ and method13 (v0 : UH7, v1 : float) : float =                                │
00:02:32 #21617 [Verbose] > │     match v0 with                                                            │
00:02:32 #21618 [Verbose] > │     | UH7_0(v2, v3) -> (* StreamCons *)                                      │
00:02:32 #21619 [Verbose] > │         let v4 : float = v1 + v2                                             │
00:02:32 #21620 [Verbose] > │         let v5 : UH7 = v3 ()                                                 │
00:02:32 #21621 [Verbose] > │         method13(v5, v4)                                                     │
00:02:32 #21622 [Verbose] > │     | UH7_1 -> (* StreamNil *)                                               │
00:02:32 #21623 [Verbose] > │         v1                                                                   │
00:02:32 #21624 [Verbose] > │ and method11 (v0 : UH4, v1 : UH6) : UH6 =                                    │
00:02:32 #21625 [Verbose] > │     match v0 with                                                            │
00:02:32 #21626 [Verbose] > │     | UH4_0(v2, v3) -> (* Cons *)                                            │
00:02:32 #21627 [Verbose] > │         let v4 : UH6 = method11(v3, v1)                                      │
00:02:32 #21628 [Verbose] > │         let v5 : int32 = 0                                                   │
00:02:32 #21629 [Verbose] > │         let v6 : US2 = method6(v5, v2)                                       │
00:02:32 #21630 [Verbose] > │         let v23 : US3 =                                                      │
00:02:32 #21631 [Verbose] > │             match v6 with                                                    │
00:02:32 #21632 [Verbose] > │             | US2_0 -> (* None *)                                            │
00:02:32 #21633 [Verbose] > │                 US3_0                                                        │
00:02:32 #21634 [Verbose] > │             | US2_1(v7, v8, v9, v10, v11, v12, v13, v14, v15) -> (* Some *)  │
00:02:32 #21635 [Verbose] > │                 let v16 : UH7 = UH7_1                                        │
00:02:32 #21636 [Verbose] > │                 let v17 : UH7 = method12(v2, v16)                            │
00:02:32 #21637 [Verbose] > │                 let v18 : float = 0.0                                        │
00:02:32 #21638 [Verbose] > │                 let v19 : float = method13(v17, v18)                         │
00:02:32 #21639 [Verbose] > │                 US3_1(v12, v19)                                              │
00:02:32 #21640 [Verbose] > │         UH6_0(v23, v4)                                                       │
00:02:32 #21641 [Verbose] > │     | UH4_1 -> (* Nil *)                                                     │
00:02:32 #21642 [Verbose] > │         v1                                                                   │
00:02:32 #21643 [Verbose] > │ and method14 (v0 : UH6, v1 : UH8) : UH8 =                                    │
00:02:32 #21644 [Verbose] > │     match v0 with                                                            │
00:02:32 #21645 [Verbose] > │     | UH6_0(v2, v3) -> (* Cons *)                                            │
00:02:32 #21646 [Verbose] > │         let v4 : UH8 = method14(v3, v1)                                      │
00:02:32 #21647 [Verbose] > │         match v2 with                                                        │
00:02:32 #21648 [Verbose] > │         | US3_0 -> (* None *)                                                │
00:02:32 #21649 [Verbose] > │             v4                                                               │
00:02:32 #21650 [Verbose] > │         | US3_1(v5, v6) -> (* Some *)                                        │
00:02:32 #21651 [Verbose] > │             UH8_0(v5, v6, v4)                                                │
00:02:32 #21652 [Verbose] > │     | UH6_1 -> (* Nil *)                                                     │
00:02:32 #21653 [Verbose] > │         v1                                                                   │
00:02:32 #21654 [Verbose] > │ and method15 (v0 : UH8, v1 : UH9, v2 : UH9) : struct (UH9 * UH9) =           │
00:02:32 #21655 [Verbose] > │     match v0 with                                                            │
00:02:32 #21656 [Verbose] > │     | UH8_0(v3, v4, v5) -> (* Cons *)                                        │
00:02:32 #21657 [Verbose] > │         let v6 : UH9 = UH9_0(v3, v1)                                         │
00:02:32 #21658 [Verbose] > │         let v7 : UH9 = UH9_0(v4, v2)                                         │
00:02:32 #21659 [Verbose] > │         method15(v5, v6, v7)                                                 │
00:02:32 #21660 [Verbose] > │     | UH8_1 -> (* Nil *)                                                     │
00:02:32 #21661 [Verbose] > │         struct (v1, v2)                                                      │
00:02:32 #21662 [Verbose] > │ and method16 (v0 : UH9, v1 : UH9) : UH9 =                                    │
00:02:32 #21663 [Verbose] > │     match v0 with                                                            │
00:02:32 #21664 [Verbose] > │     | UH9_0(v2, v3) -> (* Cons *)                                            │
00:02:32 #21665 [Verbose] > │         let v4 : UH9 = UH9_0(v2, v1)                                         │
00:02:32 #21666 [Verbose] > │         method16(v3, v4)                                                     │
00:02:32 #21667 [Verbose] > │     | UH9_1 -> (* Nil *)                                                     │
00:02:32 #21668 [Verbose] > │         v1                                                                   │
00:02:32 #21669 [Verbose] > │ and closure20 (v0 : (unit -> UH1), v1 : (unit -> UH1)) () : UH1 =            │
00:02:32 #21670 [Verbose] > │     let v2 : UH1 = v1 ()                                                     │
00:02:32 #21671 [Verbose] > │     let v3 : UH1 = v0 ()                                                     │
00:02:32 #21672 [Verbose] > │     match v2 with                                                            │
00:02:32 #21673 [Verbose] > │     | UH1_0(v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) -> (* StreamCons *)  │
00:02:32 #21674 [Verbose] > │         match v3 with                                                        │
00:02:32 #21675 [Verbose] > │         | UH1_0(v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) -> (*      │
00:02:32 #21676 [Verbose] > │ StreamCons *)                                                                │
00:02:32 #21677 [Verbose] > │             let v24 : float = v4 + v14                                       │
00:02:32 #21678 [Verbose] > │             let v25 : float = v5 + v15                                       │
00:02:32 #21679 [Verbose] > │             let v26 : float = v9 + v19                                       │
00:02:32 #21680 [Verbose] > │             let v27 : float = v6 + v16                                       │
00:02:32 #21681 [Verbose] > │             let v28 : float = v7 + v17                                       │
00:02:32 #21682 [Verbose] > │             let v29 : float = v8 + v18                                       │
00:02:32 #21683 [Verbose] > │             let v30 : float = v10 + v20                                      │
00:02:32 #21684 [Verbose] > │             let v31 : float = v11 + v21                                      │
00:02:32 #21685 [Verbose] > │             let v32 : float = v12 + v22                                      │
00:02:32 #21686 [Verbose] > │             let v33 : (unit -> UH1) = closure20(v23, v13)                    │
00:02:32 #21687 [Verbose] > │             UH1_0(v24, v25, v27, v28, v29, v26, v30, v31, v32, v33)          │
00:02:32 #21688 [Verbose] > │         | UH1_1 -> (* StreamNil *)                                           │
00:02:32 #21689 [Verbose] > │             UH1_1                                                            │
00:02:32 #21690 [Verbose] > │     | UH1_1 -> (* StreamNil *)                                               │
00:02:32 #21691 [Verbose] > │         UH1_1                                                                │
00:02:32 #21692 [Verbose] > │ and closure19 (v0 : float, v1 : (UH0 -> UH1)) (v2 : UH0) : UH0 =             │
00:02:32 #21693 [Verbose] > │     let v3 : UH1 = v1 v2                                                     │
00:02:32 #21694 [Verbose] > │     let v4 : float = v0 / 2.0                                                │
00:02:32 #21695 [Verbose] > │     let v46 : UH0 =                                                          │
00:02:32 #21696 [Verbose] > │         match v3 with                                                        │
00:02:32 #21697 [Verbose] > │         | UH1_0(v5, v6, v7, v8, v9, v10, v11, v12, v13, v14) -> (*           │
00:02:32 #21698 [Verbose] > │ StreamCons *)                                                                │
00:02:32 #21699 [Verbose] > │             match v2 with                                                    │
00:02:32 #21700 [Verbose] > │             | UH0_0(v15, v16, v17, v18, v19, v20, v21, v22, v23, v24) -> (*  │
00:02:32 #21701 [Verbose] > │ StreamCons *)                                                                │
00:02:32 #21702 [Verbose] > │                 let v25 : float = v10 * v4                                   │
00:02:32 #21703 [Verbose] > │                 let v26 : float = v20 + v25                                  │
00:02:32 #21704 [Verbose] > │                 let v27 : float = v4 * v7                                    │
00:02:32 #21705 [Verbose] > │                 let v28 : float = v4 * v8                                    │
00:02:32 #21706 [Verbose] > │                 let v29 : float = v4 * v9                                    │
00:02:32 #21707 [Verbose] > │                 let v30 : float = v17 + v27                                  │
00:02:32 #21708 [Verbose] > │                 let v31 : float = v18 + v28                                  │
00:02:32 #21709 [Verbose] > │                 let v32 : float = v19 + v29                                  │
00:02:32 #21710 [Verbose] > │                 let v33 : float = v4 * v11                                   │
00:02:32 #21711 [Verbose] > │                 let v34 : float = v4 * v12                                   │
00:02:32 #21712 [Verbose] > │                 let v35 : float = v4 * v13                                   │
00:02:32 #21713 [Verbose] > │                 let v36 : float = v21 + v33                                  │
00:02:32 #21714 [Verbose] > │                 let v37 : float = v22 + v34                                  │
00:02:32 #21715 [Verbose] > │                 let v38 : float = v23 + v35                                  │
00:02:32 #21716 [Verbose] > │                 let v39 : (unit -> UH0) = closure3(v4, v24, v14)             │
00:02:32 #21717 [Verbose] > │                 UH0_0(v15, v16, v30, v31, v32, v26, v36, v37, v38, v39)      │
00:02:32 #21718 [Verbose] > │             | UH0_1 -> (* StreamNil *)                                       │
00:02:32 #21719 [Verbose] > │                 UH0_1                                                        │
00:02:32 #21720 [Verbose] > │         | UH1_1 -> (* StreamNil *)                                           │
00:02:32 #21721 [Verbose] > │             UH0_1                                                            │
00:02:32 #21722 [Verbose] > │     let v47 : (unit -> UH0) = closure4(v46)                                  │
00:02:32 #21723 [Verbose] > │     let v48 : (unit -> UH0) = method1(v46, v47)                              │
00:02:32 #21724 [Verbose] > │     let v49 : UH0 = v48 ()                                                   │
00:02:32 #21725 [Verbose] > │     let v50 : UH1 = v1 v49                                                   │
00:02:32 #21726 [Verbose] > │     let v92 : UH0 =                                                          │
00:02:32 #21727 [Verbose] > │         match v50 with                                                       │
00:02:32 #21728 [Verbose] > │         | UH1_0(v51, v52, v53, v54, v55, v56, v57, v58, v59, v60) -> (*      │
00:02:32 #21729 [Verbose] > │ StreamCons *)                                                                │
00:02:32 #21730 [Verbose] > │             match v2 with                                                    │
00:02:32 #21731 [Verbose] > │             | UH0_0(v61, v62, v63, v64, v65, v66, v67, v68, v69, v70) -> (*  │
00:02:32 #21732 [Verbose] > │ StreamCons *)                                                                │
00:02:32 #21733 [Verbose] > │                 let v71 : float = v56 * v4                                   │
00:02:32 #21734 [Verbose] > │                 let v72 : float = v66 + v71                                  │
00:02:32 #21735 [Verbose] > │                 let v73 : float = v4 * v53                                   │
00:02:32 #21736 [Verbose] > │                 let v74 : float = v4 * v54                                   │
00:02:32 #21737 [Verbose] > │                 let v75 : float = v4 * v55                                   │
00:02:32 #21738 [Verbose] > │                 let v76 : float = v63 + v73                                  │
00:02:32 #21739 [Verbose] > │                 let v77 : float = v64 + v74                                  │
00:02:32 #21740 [Verbose] > │                 let v78 : float = v65 + v75                                  │
00:02:32 #21741 [Verbose] > │                 let v79 : float = v4 * v57                                   │
00:02:32 #21742 [Verbose] > │                 let v80 : float = v4 * v58                                   │
00:02:32 #21743 [Verbose] > │                 let v81 : float = v4 * v59                                   │
00:02:32 #21744 [Verbose] > │                 let v82 : float = v67 + v79                                  │
00:02:32 #21745 [Verbose] > │                 let v83 : float = v68 + v80                                  │
00:02:32 #21746 [Verbose] > │                 let v84 : float = v69 + v81                                  │
00:02:32 #21747 [Verbose] > │                 let v85 : (unit -> UH0) = closure3(v4, v70, v60)             │
00:02:32 #21748 [Verbose] > │                 UH0_0(v61, v62, v76, v77, v78, v72, v82, v83, v84, v85)      │
00:02:32 #21749 [Verbose] > │             | UH0_1 -> (* StreamNil *)                                       │
00:02:32 #21750 [Verbose] > │                 UH0_1                                                        │
00:02:32 #21751 [Verbose] > │         | UH1_1 -> (* StreamNil *)                                           │
00:02:32 #21752 [Verbose] > │             UH0_1                                                            │
00:02:32 #21753 [Verbose] > │     let v93 : (unit -> UH0) = closure4(v92)                                  │
00:02:32 #21754 [Verbose] > │     let v94 : (unit -> UH0) = method1(v92, v93)                              │
00:02:32 #21755 [Verbose] > │     let v95 : UH0 = v94 ()                                                   │
00:02:32 #21756 [Verbose] > │     let v96 : UH1 = v1 v95                                                   │
00:02:32 #21757 [Verbose] > │     let v138 : UH0 =                                                         │
00:02:32 #21758 [Verbose] > │         match v96 with                                                       │
00:02:32 #21759 [Verbose] > │         | UH1_0(v97, v98, v99, v100, v101, v102, v103, v104, v105, v106) ->  │
00:02:32 #21760 [Verbose] > │ (* StreamCons *)                                                             │
00:02:32 #21761 [Verbose] > │             match v2 with                                                    │
00:02:32 #21762 [Verbose] > │             | UH0_0(v107, v108, v109, v110, v111, v112, v113, v114, v115,    │
00:02:32 #21763 [Verbose] > │ v116) -> (* StreamCons *)                                                    │
00:02:32 #21764 [Verbose] > │                 let v117 : float = v102 * v0                                 │
00:02:32 #21765 [Verbose] > │                 let v118 : float = v112 + v117                               │
00:02:32 #21766 [Verbose] > │                 let v119 : float = v0 * v99                                  │
00:02:32 #21767 [Verbose] > │                 let v120 : float = v0 * v100                                 │
00:02:32 #21768 [Verbose] > │                 let v121 : float = v0 * v101                                 │
00:02:32 #21769 [Verbose] > │                 let v122 : float = v109 + v119                               │
00:02:32 #21770 [Verbose] > │                 let v123 : float = v110 + v120                               │
00:02:32 #21771 [Verbose] > │                 let v124 : float = v111 + v121                               │
00:02:32 #21772 [Verbose] > │                 let v125 : float = v0 * v103                                 │
00:02:32 #21773 [Verbose] > │                 let v126 : float = v0 * v104                                 │
00:02:32 #21774 [Verbose] > │                 let v127 : float = v0 * v105                                 │
00:02:32 #21775 [Verbose] > │                 let v128 : float = v113 + v125                               │
00:02:32 #21776 [Verbose] > │                 let v129 : float = v114 + v126                               │
00:02:32 #21777 [Verbose] > │                 let v130 : float = v115 + v127                               │
00:02:32 #21778 [Verbose] > │                 let v131 : (unit -> UH0) = closure3(v0, v116, v106)          │
00:02:32 #21779 [Verbose] > │                 UH0_0(v107, v108, v122, v123, v124, v118, v128, v129, v130,  │
00:02:32 #21780 [Verbose] > │ v131)                                                                        │
00:02:32 #21781 [Verbose] > │             | UH0_1 -> (* StreamNil *)                                       │
00:02:32 #21782 [Verbose] > │                 UH0_1                                                        │
00:02:32 #21783 [Verbose] > │         | UH1_1 -> (* StreamNil *)                                           │
00:02:32 #21784 [Verbose] > │             UH0_1                                                            │
00:02:32 #21785 [Verbose] > │     let v139 : (unit -> UH0) = closure4(v138)                                │
00:02:32 #21786 [Verbose] > │     let v140 : (unit -> UH0) = method1(v138, v139)                           │
00:02:32 #21787 [Verbose] > │     let v141 : UH0 = v140 ()                                                 │
00:02:32 #21788 [Verbose] > │     let v142 : UH1 = v1 v141                                                 │
00:02:32 #21789 [Verbose] > │     let v143 : float = v0 / 6.0                                              │
00:02:32 #21790 [Verbose] > │     let v180 : UH1 =                                                         │
00:02:32 #21791 [Verbose] > │         match v3 with                                                        │
00:02:32 #21792 [Verbose] > │         | UH1_0(v144, v145, v146, v147, v148, v149, v150, v151, v152, v153)  │
00:02:32 #21793 [Verbose] > │ -> (* StreamCons *)                                                          │
00:02:32 #21794 [Verbose] > │             match v50 with                                                   │
00:02:32 #21795 [Verbose] > │             | UH1_0(v154, v155, v156, v157, v158, v159, v160, v161, v162,    │
00:02:32 #21796 [Verbose] > │ v163) -> (* StreamCons *)                                                    │
00:02:32 #21797 [Verbose] > │                 let v164 : float = v144 + v154                               │
00:02:32 #21798 [Verbose] > │                 let v165 : float = v145 + v155                               │
00:02:32 #21799 [Verbose] > │                 let v166 : float = v149 + v159                               │
00:02:32 #21800 [Verbose] > │                 let v167 : float = v146 + v156                               │
00:02:32 #21801 [Verbose] > │                 let v168 : float = v147 + v157                               │
00:02:32 #21802 [Verbose] > │                 let v169 : float = v148 + v158                               │
00:02:32 #21803 [Verbose] > │                 let v170 : float = v150 + v160                               │
00:02:32 #21804 [Verbose] > │                 let v171 : float = v151 + v161                               │
00:02:32 #21805 [Verbose] > │                 let v172 : float = v152 + v162                               │
00:02:32 #21806 [Verbose] > │                 let v173 : (unit -> UH1) = closure20(v163, v153)             │
00:02:32 #21807 [Verbose] > │                 UH1_0(v164, v165, v167, v168, v169, v166, v170, v171, v172,  │
00:02:32 #21808 [Verbose] > │ v173)                                                                        │
00:02:32 #21809 [Verbose] > │             | UH1_1 -> (* StreamNil *)                                       │
00:02:32 #21810 [Verbose] > │                 UH1_1                                                        │
00:02:32 #21811 [Verbose] > │         | UH1_1 -> (* StreamNil *)                                           │
00:02:32 #21812 [Verbose] > │             UH1_1                                                            │
00:02:32 #21813 [Verbose] > │     let v217 : UH1 =                                                         │
00:02:32 #21814 [Verbose] > │         match v180 with                                                      │
00:02:32 #21815 [Verbose] > │         | UH1_0(v181, v182, v183, v184, v185, v186, v187, v188, v189, v190)  │
00:02:32 #21816 [Verbose] > │ -> (* StreamCons *)                                                          │
00:02:32 #21817 [Verbose] > │             match v50 with                                                   │
00:02:32 #21818 [Verbose] > │             | UH1_0(v191, v192, v193, v194, v195, v196, v197, v198, v199,    │
00:02:32 #21819 [Verbose] > │ v200) -> (* StreamCons *)                                                    │
00:02:32 #21820 [Verbose] > │                 let v201 : float = v181 + v191                               │
00:02:32 #21821 [Verbose] > │                 let v202 : float = v182 + v192                               │
00:02:32 #21822 [Verbose] > │                 let v203 : float = v186 + v196                               │
00:02:32 #21823 [Verbose] > │                 let v204 : float = v183 + v193                               │
00:02:32 #21824 [Verbose] > │                 let v205 : float = v184 + v194                               │
00:02:32 #21825 [Verbose] > │                 let v206 : float = v185 + v195                               │
00:02:32 #21826 [Verbose] > │                 let v207 : float = v187 + v197                               │
00:02:32 #21827 [Verbose] > │                 let v208 : float = v188 + v198                               │
00:02:32 #21828 [Verbose] > │                 let v209 : float = v189 + v199                               │
00:02:32 #21829 [Verbose] > │                 let v210 : (unit -> UH1) = closure20(v200, v190)             │
00:02:32 #21830 [Verbose] > │                 UH1_0(v201, v202, v204, v205, v206, v203, v207, v208, v209,  │
00:02:32 #21831 [Verbose] > │ v210)                                                                        │
00:02:32 #21832 [Verbose] > │             | UH1_1 -> (* StreamNil *)                                       │
00:02:32 #21833 [Verbose] > │                 UH1_1                                                        │
00:02:32 #21834 [Verbose] > │         | UH1_1 -> (* StreamNil *)                                           │
00:02:32 #21835 [Verbose] > │             UH1_1                                                            │
00:02:32 #21836 [Verbose] > │     let v254 : UH1 =                                                         │
00:02:32 #21837 [Verbose] > │         match v217 with                                                      │
00:02:32 #21838 [Verbose] > │         | UH1_0(v218, v219, v220, v221, v222, v223, v224, v225, v226, v227)  │
00:02:32 #21839 [Verbose] > │ -> (* StreamCons *)                                                          │
00:02:32 #21840 [Verbose] > │             match v96 with                                                   │
00:02:32 #21841 [Verbose] > │             | UH1_0(v228, v229, v230, v231, v232, v233, v234, v235, v236,    │
00:02:32 #21842 [Verbose] > │ v237) -> (* StreamCons *)                                                    │
00:02:32 #21843 [Verbose] > │                 let v238 : float = v218 + v228                               │
00:02:32 #21844 [Verbose] > │                 let v239 : float = v219 + v229                               │
00:02:32 #21845 [Verbose] > │                 let v240 : float = v223 + v233                               │
00:02:32 #21846 [Verbose] > │                 let v241 : float = v220 + v230                               │
00:02:32 #21847 [Verbose] > │                 let v242 : float = v221 + v231                               │
00:02:32 #21848 [Verbose] > │                 let v243 : float = v222 + v232                               │
00:02:32 #21849 [Verbose] > │                 let v244 : float = v224 + v234                               │
00:02:32 #21850 [Verbose] > │                 let v245 : float = v225 + v235                               │
00:02:32 #21851 [Verbose] > │                 let v246 : float = v226 + v236                               │
00:02:32 #21852 [Verbose] > │                 let v247 : (unit -> UH1) = closure20(v237, v227)             │
00:02:32 #21853 [Verbose] > │                 UH1_0(v238, v239, v241, v242, v243, v240, v244, v245, v246,  │
00:02:32 #21854 [Verbose] > │ v247)                                                                        │
00:02:32 #21855 [Verbose] > │             | UH1_1 -> (* StreamNil *)                                       │
00:02:32 #21856 [Verbose] > │                 UH1_1                                                        │
00:02:32 #21857 [Verbose] > │         | UH1_1 -> (* StreamNil *)                                           │
00:02:32 #21858 [Verbose] > │             UH1_1                                                            │
00:02:32 #21859 [Verbose] > │     let v291 : UH1 =                                                         │
00:02:32 #21860 [Verbose] > │         match v254 with                                                      │
00:02:32 #21861 [Verbose] > │         | UH1_0(v255, v256, v257, v258, v259, v260, v261, v262, v263, v264)  │
00:02:32 #21862 [Verbose] > │ -> (* StreamCons *)                                                          │
00:02:32 #21863 [Verbose] > │             match v96 with                                                   │
00:02:32 #21864 [Verbose] > │             | UH1_0(v265, v266, v267, v268, v269, v270, v271, v272, v273,    │
00:02:32 #21865 [Verbose] > │ v274) -> (* StreamCons *)                                                    │
00:02:32 #21866 [Verbose] > │                 let v275 : float = v255 + v265                               │
00:02:32 #21867 [Verbose] > │                 let v276 : float = v256 + v266                               │
00:02:32 #21868 [Verbose] > │                 let v277 : float = v260 + v270                               │
00:02:32 #21869 [Verbose] > │                 let v278 : float = v257 + v267                               │
00:02:32 #21870 [Verbose] > │                 let v279 : float = v258 + v268                               │
00:02:32 #21871 [Verbose] > │                 let v280 : float = v259 + v269                               │
00:02:32 #21872 [Verbose] > │                 let v281 : float = v261 + v271                               │
00:02:32 #21873 [Verbose] > │                 let v282 : float = v262 + v272                               │
00:02:32 #21874 [Verbose] > │                 let v283 : float = v263 + v273                               │
00:02:32 #21875 [Verbose] > │                 let v284 : (unit -> UH1) = closure20(v274, v264)             │
00:02:32 #21876 [Verbose] > │                 UH1_0(v275, v276, v278, v279, v280, v277, v281, v282, v283,  │
00:02:32 #21877 [Verbose] > │ v284)                                                                        │
00:02:32 #21878 [Verbose] > │             | UH1_1 -> (* StreamNil *)                                       │
00:02:32 #21879 [Verbose] > │                 UH1_1                                                        │
00:02:32 #21880 [Verbose] > │         | UH1_1 -> (* StreamNil *)                                           │
00:02:32 #21881 [Verbose] > │             UH1_1                                                            │
00:02:32 #21882 [Verbose] > │     let v328 : UH1 =                                                         │
00:02:32 #21883 [Verbose] > │         match v291 with                                                      │
00:02:32 #21884 [Verbose] > │         | UH1_0(v292, v293, v294, v295, v296, v297, v298, v299, v300, v301)  │
00:02:32 #21885 [Verbose] > │ -> (* StreamCons *)                                                          │
00:02:32 #21886 [Verbose] > │             match v142 with                                                  │
00:02:32 #21887 [Verbose] > │             | UH1_0(v302, v303, v304, v305, v306, v307, v308, v309, v310,    │
00:02:32 #21888 [Verbose] > │ v311) -> (* StreamCons *)                                                    │
00:02:32 #21889 [Verbose] > │                 let v312 : float = v292 + v302                               │
00:02:32 #21890 [Verbose] > │                 let v313 : float = v293 + v303                               │
00:02:32 #21891 [Verbose] > │                 let v314 : float = v297 + v307                               │
00:02:32 #21892 [Verbose] > │                 let v315 : float = v294 + v304                               │
00:02:32 #21893 [Verbose] > │                 let v316 : float = v295 + v305                               │
00:02:32 #21894 [Verbose] > │                 let v317 : float = v296 + v306                               │
00:02:32 #21895 [Verbose] > │                 let v318 : float = v298 + v308                               │
00:02:32 #21896 [Verbose] > │                 let v319 : float = v299 + v309                               │
00:02:32 #21897 [Verbose] > │                 let v320 : float = v300 + v310                               │
00:02:32 #21898 [Verbose] > │                 let v321 : (unit -> UH1) = closure20(v311, v301)             │
00:02:32 #21899 [Verbose] > │                 UH1_0(v312, v313, v315, v316, v317, v314, v318, v319, v320,  │
00:02:32 #21900 [Verbose] > │ v321)                                                                        │
00:02:32 #21901 [Verbose] > │             | UH1_1 -> (* StreamNil *)                                       │
00:02:32 #21902 [Verbose] > │                 UH1_1                                                        │
00:02:32 #21903 [Verbose] > │         | UH1_1 -> (* StreamNil *)                                           │
00:02:32 #21904 [Verbose] > │             UH1_1                                                            │
00:02:32 #21905 [Verbose] > │     let v370 : UH0 =                                                         │
00:02:32 #21906 [Verbose] > │         match v328 with                                                      │
00:02:32 #21907 [Verbose] > │         | UH1_0(v329, v330, v331, v332, v333, v334, v335, v336, v337, v338)  │
00:02:32 #21908 [Verbose] > │ -> (* StreamCons *)                                                          │
00:02:32 #21909 [Verbose] > │             match v2 with                                                    │
00:02:32 #21910 [Verbose] > │             | UH0_0(v339, v340, v341, v342, v343, v344, v345, v346, v347,    │
00:02:32 #21911 [Verbose] > │ v348) -> (* StreamCons *)                                                    │
00:02:32 #21912 [Verbose] > │                 let v349 : float = v334 * v143                               │
00:02:32 #21913 [Verbose] > │                 let v350 : float = v344 + v349                               │
00:02:32 #21914 [Verbose] > │                 let v351 : float = v143 * v331                               │
00:02:32 #21915 [Verbose] > │                 let v352 : float = v143 * v332                               │
00:02:32 #21916 [Verbose] > │                 let v353 : float = v143 * v333                               │
00:02:32 #21917 [Verbose] > │                 let v354 : float = v341 + v351                               │
00:02:32 #21918 [Verbose] > │                 let v355 : float = v342 + v352                               │
00:02:32 #21919 [Verbose] > │                 let v356 : float = v343 + v353                               │
00:02:32 #21920 [Verbose] > │                 let v357 : float = v143 * v335                               │
00:02:32 #21921 [Verbose] > │                 let v358 : float = v143 * v336                               │
00:02:32 #21922 [Verbose] > │                 let v359 : float = v143 * v337                               │
00:02:32 #21923 [Verbose] > │                 let v360 : float = v345 + v357                               │
00:02:32 #21924 [Verbose] > │                 let v361 : float = v346 + v358                               │
00:02:32 #21925 [Verbose] > │                 let v362 : float = v347 + v359                               │
00:02:32 #21926 [Verbose] > │                 let v363 : (unit -> UH0) = closure3(v143, v348, v338)        │
00:02:32 #21927 [Verbose] > │                 UH0_0(v339, v340, v354, v355, v356, v350, v360, v361, v362,  │
00:02:32 #21928 [Verbose] > │ v363)                                                                        │
00:02:32 #21929 [Verbose] > │             | UH0_1 -> (* StreamNil *)                                       │
00:02:32 #21930 [Verbose] > │                 UH0_1                                                        │
00:02:32 #21931 [Verbose] > │         | UH1_1 -> (* StreamNil *)                                           │
00:02:32 #21932 [Verbose] > │             UH0_1                                                            │
00:02:32 #21933 [Verbose] > │     let v371 : (unit -> UH0) = closure4(v370)                                │
00:02:32 #21934 [Verbose] > │     let v372 : (unit -> UH0) = method1(v370, v371)                           │
00:02:32 #21935 [Verbose] > │     let v373 : UH0 = v372 ()                                                 │
00:02:32 #21936 [Verbose] > │     v373                                                                     │
00:02:32 #21937 [Verbose] > │ and closure18 (v0 : float) (v1 : (UH0 -> UH1)) : (UH0 -> UH0) =              │
00:02:32 #21938 [Verbose] > │     closure19(v0, v1)                                                        │
00:02:32 #21939 [Verbose] > │ and closure17 () (v0 : float) : ((UH0 -> UH1) -> (UH0 -> UH0)) =             │
00:02:32 #21940 [Verbose] > │     closure18(v0)                                                            │
00:02:32 #21941 [Verbose] > │ and method17 (v0 : UH4, v1 : UH6) : UH6 =                                    │
00:02:32 #21942 [Verbose] > │     match v0 with                                                            │
00:02:32 #21943 [Verbose] > │     | UH4_0(v2, v3) -> (* Cons *)                                            │
00:02:32 #21944 [Verbose] > │         let v4 : UH6 = method17(v3, v1)                                      │
00:02:32 #21945 [Verbose] > │         let v5 : int32 = 0                                                   │
00:02:32 #21946 [Verbose] > │         let v6 : US2 = method6(v5, v2)                                       │
00:02:32 #21947 [Verbose] > │         let v23 : US3 =                                                      │
00:02:32 #21948 [Verbose] > │             match v6 with                                                    │
00:02:32 #21949 [Verbose] > │             | US2_0 -> (* None *)                                            │
00:02:32 #21950 [Verbose] > │                 US3_0                                                        │
00:02:32 #21951 [Verbose] > │             | US2_1(v7, v8, v9, v10, v11, v12, v13, v14, v15) -> (* Some *)  │
00:02:32 #21952 [Verbose] > │                 let v16 : UH7 = UH7_1                                        │
00:02:32 #21953 [Verbose] > │                 let v17 : UH7 = method12(v2, v16)                            │
00:02:32 #21954 [Verbose] > │                 let v18 : float = 0.0                                        │
00:02:32 #21955 [Verbose] > │                 let v19 : float = method13(v17, v18)                         │
00:02:32 #21956 [Verbose] > │                 US3_1(v12, v19)                                              │
00:02:32 #21957 [Verbose] > │         UH6_0(v23, v4)                                                       │
00:02:32 #21958 [Verbose] > │     | UH4_1 -> (* Nil *)                                                     │
00:02:32 #21959 [Verbose] > │         v1                                                                   │
00:02:32 #21960 [Verbose] > │ and method19 (v0 : UH9, v1 : int32) : int32 =                                │
00:02:32 #21961 [Verbose] > │     match v0 with                                                            │
00:02:32 #21962 [Verbose] > │     | UH9_0(v2, v3) -> (* Cons *)                                            │
00:02:32 #21963 [Verbose] > │         let v4 : int32 = v1 + 1                                              │
00:02:32 #21964 [Verbose] > │         method19(v3, v4)                                                     │
00:02:32 #21965 [Verbose] > │     | UH9_1 -> (* Nil *)                                                     │
00:02:32 #21966 [Verbose] > │         v1                                                                   │
00:02:32 #21967 [Verbose] > │ and method20 (v0 : (float []), v1 : UH9, v2 : int32) : int32 =               │
00:02:32 #21968 [Verbose] > │     match v1 with                                                            │
00:02:32 #21969 [Verbose] > │     | UH9_0(v3, v4) -> (* Cons *)                                            │
00:02:32 #21970 [Verbose] > │         v0.[int v2] <- v3                                                    │
00:02:32 #21971 [Verbose] > │         let v5 : int32 = v2 + 1                                              │
00:02:32 #21972 [Verbose] > │         method20(v0, v4, v5)                                                 │
00:02:32 #21973 [Verbose] > │     | UH9_1 -> (* Nil *)                                                     │
00:02:32 #21974 [Verbose] > │         v2                                                                   │
00:02:32 #21975 [Verbose] > │ and method18 (v0 : UH9) : (float []) =                                       │
00:02:32 #21976 [Verbose] > │     let v1 : int32 = 0                                                       │
00:02:32 #21977 [Verbose] > │     let v2 : int32 = method19(v0, v1)                                        │
00:02:32 #21978 [Verbose] > │     let v3 : (float []) = Array.zeroCreate<float> (v2)                       │
00:02:32 #21979 [Verbose] > │     let v4 : int32 = 0                                                       │
00:02:32 #21980 [Verbose] > │     let v5 : int32 = method20(v3, v0, v4)                                    │
00:02:32 #21981 [Verbose] > │     v3                                                                       │
00:02:32 #21982 [Verbose] > │ and method21 (v0 : (struct (string * (float []) * (float [])) [])) : (struct │
00:02:32 #21983 [Verbose] > │ (string * (float []) * (float [])) []) =                                     │
00:02:32 #21984 [Verbose] > │     v0                                                                       │
00:02:32 #21985 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:02:32 #21986 [Verbose] > │ []) * (float [])) [])) =                                                     │
00:02:32 #21987 [Verbose] > │     let v0 : (float -> ((UH0 -> UH1) -> (UH0 -> UH0))) = closure0()          │
00:02:32 #21988 [Verbose] > │     let v1 : ((UH0 -> UH1) -> (UH0 -> UH0)) = v0 0.03                        │
00:02:32 #21989 [Verbose] > │     let v2 : (UH0 -> UH1) = closure8()                                       │
00:02:32 #21990 [Verbose] > │     let v3 : (UH0 -> UH0) = v1 v2                                            │
00:02:32 #21991 [Verbose] > │     let v4 : UH4 = UH4_1                                                     │
00:02:32 #21992 [Verbose] > │     let v5 : int32 = 0                                                       │
00:02:32 #21993 [Verbose] > │     let v6 : UH4 = method7(v3, v4, v5)                                       │
00:02:32 #21994 [Verbose] > │     let v7 : UH6 = UH6_1                                                     │
00:02:32 #21995 [Verbose] > │     let v8 : UH6 = method11(v6, v7)                                          │
00:02:32 #21996 [Verbose] > │     let v9 : UH8 = UH8_1                                                     │
00:02:32 #21997 [Verbose] > │     let v10 : UH8 = method14(v8, v9)                                         │
00:02:32 #21998 [Verbose] > │     let v11 : UH9 = UH9_1                                                    │
00:02:32 #21999 [Verbose] > │     let v12 : UH9 = UH9_1                                                    │
00:02:32 #22000 [Verbose] > │     let struct (v13 : UH9, v14 : UH9) = method15(v10, v11, v12)              │
00:02:32 #22001 [Verbose] > │     let v15 : UH9 = UH9_1                                                    │
00:02:32 #22002 [Verbose] > │     let v16 : UH9 = method16(v13, v15)                                       │
00:02:32 #22003 [Verbose] > │     let v17 : UH9 = UH9_1                                                    │
00:02:32 #22004 [Verbose] > │     let v18 : UH9 = method16(v14, v17)                                       │
00:02:32 #22005 [Verbose] > │     let v19 : (float -> ((UH0 -> UH1) -> (UH0 -> UH0))) = closure17()        │
00:02:32 #22006 [Verbose] > │     let v20 : ((UH0 -> UH1) -> (UH0 -> UH0)) = v19 0.03                      │
00:02:32 #22007 [Verbose] > │     let v21 : (UH0 -> UH0) = v20 v2                                          │
00:02:32 #22008 [Verbose] > │     let v22 : UH4 = UH4_1                                                    │
00:02:32 #22009 [Verbose] > │     let v23 : int32 = 0                                                      │
00:02:32 #22010 [Verbose] > │     let v24 : UH4 = method7(v21, v22, v23)                                   │
00:02:32 #22011 [Verbose] > │     let v25 : UH6 = UH6_1                                                    │
00:02:32 #22012 [Verbose] > │     let v26 : UH6 = method17(v24, v25)                                       │
00:02:32 #22013 [Verbose] > │     let v27 : UH8 = UH8_1                                                    │
00:02:32 #22014 [Verbose] > │     let v28 : UH8 = method14(v26, v27)                                       │
00:02:32 #22015 [Verbose] > │     let v29 : UH9 = UH9_1                                                    │
00:02:32 #22016 [Verbose] > │     let v30 : UH9 = UH9_1                                                    │
00:02:32 #22017 [Verbose] > │     let struct (v31 : UH9, v32 : UH9) = method15(v28, v29, v30)              │
00:02:32 #22018 [Verbose] > │     let v33 : UH9 = UH9_1                                                    │
00:02:32 #22019 [Verbose] > │     let v34 : UH9 = method16(v31, v33)                                       │
00:02:32 #22020 [Verbose] > │     let v35 : UH9 = UH9_1                                                    │
00:02:32 #22021 [Verbose] > │     let v36 : UH9 = method16(v32, v35)                                       │
00:02:32 #22022 [Verbose] > │     let v37 : (float []) = method18(v16)                                     │
00:02:32 #22023 [Verbose] > │     let v38 : (float []) = method18(v18)                                     │
00:02:32 #22024 [Verbose] > │     let v39 : (float []) = method18(v34)                                     │
00:02:32 #22025 [Verbose] > │     let v40 : (float []) = method18(v36)                                     │
00:02:32 #22026 [Verbose] > │     let v41 : string = "euler-cromer"                                        │
00:02:32 #22027 [Verbose] > │     let v42 : string = "runge-kutta 4"                                       │
00:02:32 #22028 [Verbose] > │     let v43 : (struct (string * (float []) * (float [])) []) = [|struct      │
00:02:32 #22029 [Verbose] > │ (v41, v37, v38); struct (v42, v39, v40)|]                                    │
00:02:32 #22030 [Verbose] > │     let v44 : (struct (string * (float []) * (float [])) []) = method21(v43) │
00:02:32 #22031 [Verbose] > │     let v45 : string = "system kinetic energy versus time"                   │
00:02:32 #22032 [Verbose] > │     let v46 : string = "time (s)"                                            │
00:02:32 #22033 [Verbose] > │     let v47 : string = "system kinetic energy (j)"                           │
00:02:32 #22034 [Verbose] > │     struct (v45, v46, v47, v44)                                              │
00:02:32 #22035 [Verbose] > │ method0()                                                                    │
00:02:32 #22036 [Verbose] > │                                                                              │
00:02:32 #22037 [Verbose] > │                                                                              │
00:02:32 #22038 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:32 #22039 [Verbose] >
00:02:32 #22040 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:32 #22041 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:32 #22042 [Verbose] > │ ### wave 2                                                                   │
00:02:32 #22043 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:32 #22044 [Verbose] >
00:02:32 #22045 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:32 #22046 [Verbose] > // // test
00:02:32 #22047 [Verbose] >
00:02:32 #22048 [Verbose] > inl linear_spring k re (particle_state st1) (particle_state st2) =
00:02:32 #22049 [Verbose] >     inl r1 = st1.pos_vec
00:02:32 #22050 [Verbose] >     inl r2 = st2.pos_vec
00:02:32 #22051 [Verbose] >     inl r21 = r2 ^-^ r1
00:02:32 #22052 [Verbose] >     inl r21mag = magnitude r21
00:02:32 #22053 [Verbose] >     -k * (r21mag - re) *^ r21 ^/ r21mag
00:02:32 #22054 [Verbose] >
00:02:32 #22055 [Verbose] > inl fixed_linear_spring k re r1 =
00:02:32 #22056 [Verbose] >     inl (particle_state default_particle_state') = default_particle_state ()
00:02:32 #22057 [Verbose] >     linear_spring k re (particle_state { default_particle_state' with pos_vec =
00:02:32 #22058 [Verbose] > r1 })
00:02:32 #22059 [Verbose] >
00:02:32 #22060 [Verbose] > inl forces_string () =
00:02:32 #22061 [Verbose] >     [[
00:02:32 #22062 [Verbose] >         ExternalForce (0i32, fixed_linear_spring 5384 0 (zero_vec ()))
00:02:32 #22063 [Verbose] >         ExternalForce (63, fixed_linear_spring 5384 0 (0.65 *^ i_hat ()))
00:02:32 #22064 [Verbose] >     ]] /@ (
00:02:32 #22065 [Verbose] >         listm'.init_series 0 59 1
00:02:32 #22066 [Verbose] >         |> listm.map (fun n => InternalForce (n, n + 1, linear_spring 5384 0))
00:02:32 #22067 [Verbose] >     )
00:02:32 #22068 [Verbose] >
00:02:32 #22069 [Verbose] > inl string_update dt =
00:02:32 #22070 [Verbose] >     update_mps (join runge_kutta_4 dt) (join forces_string ())
00:02:32 #22071 [Verbose] >
00:02:32 #22072 [Verbose] > inl string_initial_overtone n =
00:02:32 #22073 [Verbose] >     inl ball_mass = 0.0008293 * 0.65 / 64
00:02:32 #22074 [Verbose] >     inl (particle_state default_particle_state') = default_particle_state ()
00:02:32 #22075 [Verbose] >     listm'.init_series 0.01 0.64 0.01
00:02:32 #22076 [Verbose] >     |> listm.map (fun x =>
00:02:32 #22077 [Verbose] >         inl y = 0.005 * sin (conv n * pi * x / 0.65)
00:02:32 #22078 [Verbose] >         particle_state {
00:02:32 #22079 [Verbose] >             default_particle_state' with
00:02:32 #22080 [Verbose] >                 mass = ball_mass
00:02:32 #22081 [Verbose] >                 pos_vec = x *^ i_hat () ^+^ y *^ j_hat ()
00:02:32 #22082 [Verbose] >                 velocity = zero_vec ()
00:02:32 #22083 [Verbose] >         }
00:02:32 #22084 [Verbose] >     )
00:02:32 #22085 [Verbose] >     |> stream.from_list
00:02:32 #22086 [Verbose] >     |> multi_particle_state
00:02:32 #22087 [Verbose] >
00:02:32 #22088 [Verbose] > let main () =
00:02:32 #22089 [Verbose] >     inl ~frames = listm'.init_series 0 65 1f64 |> stream.from_list
00:02:32 #22090 [Verbose] >     inl ~initial_state = string_initial_overtone 3i32
00:02:32 #22091 [Verbose] >     inl frames =
00:02:32 #22092 [Verbose] >         frames
00:02:32 #22093 [Verbose] >         |> stream.map (fun n =>
00:02:32 #22094 [Verbose] >             inl (multi_particle_state sts) =
00:02:32 #22095 [Verbose] >                 stream.iterate (string_update 0.000025) initial_state |>
00:02:32 #22096 [Verbose] > stream.item n
00:02:32 #22097 [Verbose] >             inl x, y =
00:02:32 #22098 [Verbose] >                 [[ zero_vec () ]]
00:02:32 #22099 [Verbose] >                 /@ (sts |> stream.map (fun (particle_state st) => st.pos_vec) |>
00:02:32 #22100 [Verbose] > stream.to_list)
00:02:32 #22101 [Verbose] >                 /@ [[ 0.65 *^ i_hat () ]]
00:02:32 #22102 [Verbose] >                 |> listm.map (fun r => r.x, r.y)
00:02:32 #22103 [Verbose] >                 |> stream.from_list
00:02:32 #22104 [Verbose] >                 |> stream.unzip
00:02:32 #22105 [Verbose] >             inl x : a i32 _ = x |> stream.to_list |> listm.toArray
00:02:32 #22106 [Verbose] >             inl y : a i32 _ = y |> stream.to_list |> listm.toArray
00:02:32 #22107 [Verbose] >             x, y
00:02:32 #22108 [Verbose] >         )
00:02:32 #22109 [Verbose] >
00:02:32 #22110 [Verbose] >     inl plots =
00:02:32 #22111 [Verbose] >         frames
00:02:32 #22112 [Verbose] >         |> stream.indexed
00:02:32 #22113 [Verbose] >         |> stream.map (fun ((n : i32), (x, y)) =>
00:02:32 #22114 [Verbose] >             "wave",
00:02:32 #22115 [Verbose] >             "position (m)",
00:02:32 #22116 [Verbose] >             "displacement (m)",
00:02:32 #22117 [Verbose] >             ;[[
00:02:32 #22118 [Verbose] >                 ($"$\"{!n}\"" : string), x, y
00:02:32 #22119 [Verbose] >             ]]
00:02:32 #22120 [Verbose] >         )
00:02:32 #22121 [Verbose] >
00:02:32 #22122 [Verbose] >     plots |> stream.to_list |> listm.toArray : a i32 _
00:02:32 #22123 [Verbose] > Building /tmp/dotnet-repl/20240329-2209-0121-2129-20365cac3f2c/main.spi
00:02:37 #22124 [Verbose] >
00:02:37 #22125 [Verbose] > ╭─[ 5.13s - return value ]─────────────────────────────────────────────────────╮
00:02:37 #22126 [Verbose] > │ <table><thead><tr><th><i>index</i></th><th>value</th></tr></thead><tbody><tr │
00:02:37 #22127 [Verbose] > │ ><td>0</td><td><svg width="640" height="480" viewBox="0 0 640 480"           │
00:02:37 #22128 [Verbose] > │ xmlns="http://www.w3.org/2000/svg">                                          │
00:02:37 #22129 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414"        │
00:02:37 #22130 [Verbose] > │ stroke="none"/>                                                              │
00:02:37 #22131 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle"                        │
00:02:37 #22132 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1"            │
00:02:37 #22133 [Verbose] > │ fill="#FFFFFF">                                                              │
00:02:37 #22134 [Verbose] > │ wave                                                                         │
00:02:37 #22135 [Verbose] > │ </text>                                                                      │
00:02:37 #22136 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="62" y1="424" x2="62" │
00:02:37 #22137 [Verbose] > │ y2="75"/>                                                                    │
00:02:37 #22138 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:02:37 #22139 [Verbose] > │ y2="75"/>                                                                    │
00:02:37 #22140 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="77" y1="424" x2="77" │
00:02:37 #22141 [Verbose] > │ y2="75"/>                                                                    │
00:02:37 #22142 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="85" y1="424"         │
00:02:37 #22143 [Verbose] > │ x2="85...                                                                    │
00:02:37 #22144 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:37 #22145 [Verbose] >
00:02:37 #22146 [Verbose] > ╭─[ 5.16s - stdout ]───────────────────────────────────────────────────────────╮
00:02:37 #22147 [Verbose] > │ type UH0 =                                                                   │
00:02:37 #22148 [Verbose] > │     | UH0_0 of float * (unit -> UH0)                                         │
00:02:37 #22149 [Verbose] > │     | UH0_1                                                                  │
00:02:37 #22150 [Verbose] > │ and UH1 =                                                                    │
00:02:37 #22151 [Verbose] > │     | UH1_0 of float * float * float * float * float * float * float * float │
00:02:37 #22152 [Verbose] > │ * float * (unit -> UH1)                                                      │
00:02:37 #22153 [Verbose] > │     | UH1_1                                                                  │
00:02:37 #22154 [Verbose] > │ and UH2 =                                                                    │
00:02:37 #22155 [Verbose] > │     | UH2_0 of (float []) * (float []) * (unit -> UH2)                       │
00:02:37 #22156 [Verbose] > │     | UH2_1                                                                  │
00:02:37 #22157 [Verbose] > │ and UH3 =                                                                    │
00:02:37 #22158 [Verbose] > │     | UH3_0 of float * float * float * float * float * float * float * float │
00:02:37 #22159 [Verbose] > │ * float * (unit -> UH3)                                                      │
00:02:37 #22160 [Verbose] > │     | UH3_1                                                                  │
00:02:37 #22161 [Verbose] > │ and [<Struct>] US0 =                                                         │
00:02:37 #22162 [Verbose] > │     | US0_0 of f0_0 : UH1                                                    │
00:02:37 #22163 [Verbose] > │     | US0_1 of f1_0 : (unit -> UH1)                                          │
00:02:37 #22164 [Verbose] > │ and Mut0 = {mutable l0 : US0}                                                │
00:02:37 #22165 [Verbose] > │ and [<Struct>] US1 =                                                         │
00:02:37 #22166 [Verbose] > │     | US1_0 of f0_0 : int32 * f0_1 : (struct (float * float * float * float  │
00:02:37 #22167 [Verbose] > │ * float * float * float * float * float) -> struct (float * float * float))  │
00:02:37 #22168 [Verbose] > │     | US1_1 of f1_0 : int32 * f1_1 : int32 * f1_2 : (struct (float * float * │
00:02:37 #22169 [Verbose] > │ float * float * float * float * float * float * float) -> (struct (float *   │
00:02:37 #22170 [Verbose] > │ float * float * float * float * float * float * float * float) -> struct     │
00:02:37 #22171 [Verbose] > │ (float * float * float)))                                                    │
00:02:37 #22172 [Verbose] > │ and UH4 =                                                                    │
00:02:37 #22173 [Verbose] > │     | UH4_0 of US1 * UH4                                                     │
00:02:37 #22174 [Verbose] > │     | UH4_1                                                                  │
00:02:37 #22175 [Verbose] > │ and UH5 =                                                                    │
00:02:37 #22176 [Verbose] > │     | UH5_0 of int32 * float * float * float * float * float * float * float │
00:02:37 #22177 [Verbose] > │ * float * float * (unit -> UH5)                                              │
00:02:37 #22178 [Verbose] > │     | UH5_1                                                                  │
00:02:37 #22179 [Verbose] > │ and UH6 =                                                                    │
00:02:37 #22180 [Verbose] > │     | UH6_0 of (struct (float * float * float * float * float * float *      │
00:02:37 #22181 [Verbose] > │ float * float * float) -> struct (float * float * float)) * UH6              │
00:02:37 #22182 [Verbose] > │     | UH6_1                                                                  │
00:02:37 #22183 [Verbose] > │ and [<Struct>] US2 =                                                         │
00:02:37 #22184 [Verbose] > │     | US2_0                                                                  │
00:02:37 #22185 [Verbose] > │     | US2_1 of f1_0 : (struct (float * float * float * float * float * float │
00:02:37 #22186 [Verbose] > │ * float * float * float) -> struct (float * float * float))                  │
00:02:37 #22187 [Verbose] > │ and [<Struct>] US3 =                                                         │
00:02:37 #22188 [Verbose] > │     | US3_0                                                                  │
00:02:37 #22189 [Verbose] > │     | US3_1 of f1_0 : float * f1_1 : float * f1_2 : float * f1_3 : float *   │
00:02:37 #22190 [Verbose] > │ f1_4 : float * f1_5 : float * f1_6 : float * f1_7 : float * f1_8 : float     │
00:02:37 #22191 [Verbose] > │ and UH7 =                                                                    │
00:02:37 #22192 [Verbose] > │     | UH7_0 of float * float * float * UH7                                   │
00:02:37 #22193 [Verbose] > │     | UH7_1                                                                  │
00:02:37 #22194 [Verbose] > │ and UH8 =                                                                    │
00:02:37 #22195 [Verbose] > │     | UH8_0 of UH1 * (unit -> UH8)                                           │
00:02:37 #22196 [Verbose] > │     | UH8_1                                                                  │
00:02:37 #22197 [Verbose] > │ and [<Struct>] US4 =                                                         │
00:02:37 #22198 [Verbose] > │     | US4_0                                                                  │
00:02:37 #22199 [Verbose] > │     | US4_1 of f1_0 : UH1                                                    │
00:02:37 #22200 [Verbose] > │ and UH9 =                                                                    │
00:02:37 #22201 [Verbose] > │     | UH9_0 of float * float * float * (unit -> UH9)                         │
00:02:37 #22202 [Verbose] > │     | UH9_1                                                                  │
00:02:37 #22203 [Verbose] > │ and UH10 =                                                                   │
00:02:37 #22204 [Verbose] > │     | UH10_0 of float * float * UH10                                         │
00:02:37 #22205 [Verbose] > │     | UH10_1                                                                 │
00:02:37 #22206 [Verbose] > │ and UH11 =                                                                   │
00:02:37 #22207 [Verbose] > │     | UH11_0 of float * float * (unit -> UH11)                               │
00:02:37 #22208 [Verbose] > │     | UH11_1                                                                 │
00:02:37 #22209 [Verbose] > │ and UH12 =                                                                   │
00:02:37 #22210 [Verbose] > │     | UH12_0 of float * UH12                                                 │
00:02:37 #22211 [Verbose] > │     | UH12_1                                                                 │
00:02:37 #22212 [Verbose] > │ and UH13 =                                                                   │
00:02:37 #22213 [Verbose] > │     | UH13_0 of int32 * (float []) * (float []) * (unit -> UH13)             │
00:02:37 #22214 [Verbose] > │     | UH13_1                                                                 │
00:02:37 #22215 [Verbose] > │ and UH14 =                                                                   │
00:02:37 #22216 [Verbose] > │     | UH14_0 of string * string * string * (struct (string * (float []) *    │
00:02:37 #22217 [Verbose] > │ (float [])) []) * (unit -> UH14)                                             │
00:02:37 #22218 [Verbose] > │     | UH14_1                                                                 │
00:02:37 #22219 [Verbose] > │ and UH15 =                                                                   │
00:02:37 #22220 [Verbose] > │     | UH15_0 of string * string * string * (struct (string * (float []) *    │
00:02:37 #22221 [Verbose] > │ (float [])) []) * UH15                                                       │
00:02:37 #22222 [Verbose] > │     | UH15_1                                                                 │
00:02:37 #22223 [Verbose] > │ let rec closure65 () () : UH0 =                                              │
00:02:37 #22224 [Verbose] > │     UH0_1                                                                    │
00:02:37 #22225 [Verbose] > │ and closure64 () () : UH0 =                                                  │
00:02:37 #22226 [Verbose] > │     let v0 : (unit -> UH0) = closure65()                                     │
00:02:37 #22227 [Verbose] > │     UH0_0(65.0, v0)                                                          │
00:02:37 #22228 [Verbose] > │ and closure63 () () : UH0 =                                                  │
00:02:37 #22229 [Verbose] > │     let v0 : (unit -> UH0) = closure64()                                     │
00:02:37 #22230 [Verbose] > │     UH0_0(64.0, v0)                                                          │
00:02:37 #22231 [Verbose] > │ and closure62 () () : UH0 =                                                  │
00:02:37 #22232 [Verbose] > │     let v0 : (unit -> UH0) = closure63()                                     │
00:02:37 #22233 [Verbose] > │     UH0_0(63.0, v0)                                                          │
00:02:37 #22234 [Verbose] > │ and closure61 () () : UH0 =                                                  │
00:02:37 #22235 [Verbose] > │     let v0 : (unit -> UH0) = closure62()                                     │
00:02:37 #22236 [Verbose] > │     UH0_0(62.0, v0)                                                          │
00:02:37 #22237 [Verbose] > │ and closure60 () () : UH0 =                                                  │
00:02:37 #22238 [Verbose] > │     let v0 : (unit -> UH0) = closure61()                                     │
00:02:37 #22239 [Verbose] > │     UH0_0(61.0, v0)                                                          │
00:02:37 #22240 [Verbose] > │ and closure59 () () : UH0 =                                                  │
00:02:37 #22241 [Verbose] > │     let v0 : (unit -> UH0) = closure60()                                     │
00:02:37 #22242 [Verbose] > │     UH0_0(60.0, v0)                                                          │
00:02:37 #22243 [Verbose] > │ and closure58 () () : UH0 =                                                  │
00:02:37 #22244 [Verbose] > │     let v0 : (unit -> UH0) = closure59()                                     │
00:02:37 #22245 [Verbose] > │     UH0_0(59.0, v0)                                                          │
00:02:37 #22246 [Verbose] > │ and closure57 () () : UH0 =                                                  │
00:02:37 #22247 [Verbose] > │     let v0 : (unit -> UH0) = closure58()                                     │
00:02:37 #22248 [Verbose] > │     UH0_0(58.0, v0)                                                          │
00:02:37 #22249 [Verbose] > │ and closure56 () () : UH0 =                                                  │
00:02:37 #22250 [Verbose] > │     let v0 : (unit -> UH0) = closure57()                                     │
00:02:37 #22251 [Verbose] > │     UH0_0(57.0, v0)                                                          │
00:02:37 #22252 [Verbose] > │ and closure55 () () : UH0 =                                                  │
00:02:37 #22253 [Verbose] > │     let v0 : (unit -> UH0) = closure56()                                     │
00:02:37 #22254 [Verbose] > │     UH0_0(56.0, v0)                                                          │
00:02:37 #22255 [Verbose] > │ and closure54 () () : UH0 =                                                  │
00:02:37 #22256 [Verbose] > │     let v0 : (unit -> UH0) = closure55()                                     │
00:02:37 #22257 [Verbose] > │     UH0_0(55.0, v0)                                                          │
00:02:37 #22258 [Verbose] > │ and closure53 () () : UH0 =                                                  │
00:02:37 #22259 [Verbose] > │     let v0 : (unit -> UH0) = closure54()                                     │
00:02:37 #22260 [Verbose] > │     UH0_0(54.0, v0)                                                          │
00:02:37 #22261 [Verbose] > │ and closure52 () () : UH0 =                                                  │
00:02:37 #22262 [Verbose] > │     let v0 : (unit -> UH0) = closure53()                                     │
00:02:37 #22263 [Verbose] > │     UH0_0(53.0, v0)                                                          │
00:02:37 #22264 [Verbose] > │ and closure51 () () : UH0 =                                                  │
00:02:37 #22265 [Verbose] > │     let v0 : (unit -> UH0) = closure52()                                     │
00:02:37 #22266 [Verbose] > │     UH0_0(52.0, v0)                                                          │
00:02:37 #22267 [Verbose] > │ and closure50 () () : UH0 =                                                  │
00:02:37 #22268 [Verbose] > │     let v0 : (unit -> UH0) = closure51()                                     │
00:02:37 #22269 [Verbose] > │     UH0_0(51.0, v0)                                                          │
00:02:37 #22270 [Verbose] > │ and closure49 () () : UH0 =                                                  │
00:02:37 #22271 [Verbose] > │     let v0 : (unit -> UH0) = closure50()                                     │
00:02:37 #22272 [Verbose] > │     UH0_0(50.0, v0)                                                          │
00:02:37 #22273 [Verbose] > │ and closure48 () () : UH0 =                                                  │
00:02:37 #22274 [Verbose] > │     let v0 : (unit -> UH0) = closure49()                                     │
00:02:37 #22275 [Verbose] > │     UH0_0(49.0, v0)                                                          │
00:02:37 #22276 [Verbose] > │ and closure47 () () : UH0 =                                                  │
00:02:37 #22277 [Verbose] > │     let v0 : (unit -> UH0) = closure48()                                     │
00:02:37 #22278 [Verbose] > │     UH0_0(48.0, v0)                                                          │
00:02:37 #22279 [Verbose] > │ and closure46 () () : UH0 =                                                  │
00:02:37 #22280 [Verbose] > │     let v0 : (unit -> UH0) = closure47()                                     │
00:02:37 #22281 [Verbose] > │     UH0_0(47.0, v0)                                                          │
00:02:37 #22282 [Verbose] > │ and closure45 () () : UH0 =                                                  │
00:02:37 #22283 [Verbose] > │     let v0 : (unit -> UH0) = closure46()                                     │
00:02:37 #22284 [Verbose] > │     UH0_0(46.0, v0)                                                          │
00:02:37 #22285 [Verbose] > │ and closure44 () () : UH0 =                                                  │
00:02:37 #22286 [Verbose] > │     let v0 : (unit -> UH0) = closure45()                                     │
00:02:37 #22287 [Verbose] > │     UH0_0(45.0, v0)                                                          │
00:02:37 #22288 [Verbose] > │ and closure43 () () : UH0 =                                                  │
00:02:37 #22289 [Verbose] > │     let v0 : (unit -> UH0) = closure44()                                     │
00:02:37 #22290 [Verbose] > │     UH0_0(44.0, v0)                                                          │
00:02:37 #22291 [Verbose] > │ and closure42 () () : UH0 =                                                  │
00:02:37 #22292 [Verbose] > │     let v0 : (unit -> UH0) = closure43()                                     │
00:02:37 #22293 [Verbose] > │     UH0_0(43.0, v0)                                                          │
00:02:37 #22294 [Verbose] > │ and closure41 () () : UH0 =                                                  │
00:02:37 #22295 [Verbose] > │     let v0 : (unit -> UH0) = closure42()                                     │
00:02:37 #22296 [Verbose] > │     UH0_0(42.0, v0)                                                          │
00:02:37 #22297 [Verbose] > │ and closure40 () () : UH0 =                                                  │
00:02:37 #22298 [Verbose] > │     let v0 : (unit -> UH0) = closure41()                                     │
00:02:37 #22299 [Verbose] > │     UH0_0(41.0, v0)                                                          │
00:02:37 #22300 [Verbose] > │ and closure39 () () : UH0 =                                                  │
00:02:37 #22301 [Verbose] > │     let v0 : (unit -> UH0) = closure40()                                     │
00:02:37 #22302 [Verbose] > │     UH0_0(40.0, v0)                                                          │
00:02:37 #22303 [Verbose] > │ and closure38 () () : UH0 =                                                  │
00:02:37 #22304 [Verbose] > │     let v0 : (unit -> UH0) = closure39()                                     │
00:02:37 #22305 [Verbose] > │     UH0_0(39.0, v0)                                                          │
00:02:37 #22306 [Verbose] > │ and closure37 () () : UH0 =                                                  │
00:02:37 #22307 [Verbose] > │     let v0 : (unit -> UH0) = closure38()                                     │
00:02:37 #22308 [Verbose] > │     UH0_0(38.0, v0)                                                          │
00:02:37 #22309 [Verbose] > │ and closure36 () () : UH0 =                                                  │
00:02:37 #22310 [Verbose] > │     let v0 : (unit -> UH0) = closure37()                                     │
00:02:37 #22311 [Verbose] > │     UH0_0(37.0, v0)                                                          │
00:02:37 #22312 [Verbose] > │ and closure35 () () : UH0 =                                                  │
00:02:37 #22313 [Verbose] > │     let v0 : (unit -> UH0) = closure36()                                     │
00:02:37 #22314 [Verbose] > │     UH0_0(36.0, v0)                                                          │
00:02:37 #22315 [Verbose] > │ and closure34 () () : UH0 =                                                  │
00:02:37 #22316 [Verbose] > │     let v0 : (unit -> UH0) = closure35()                                     │
00:02:37 #22317 [Verbose] > │     UH0_0(35.0, v0)                                                          │
00:02:37 #22318 [Verbose] > │ and closure33 () () : UH0 =                                                  │
00:02:37 #22319 [Verbose] > │     let v0 : (unit -> UH0) = closure34()                                     │
00:02:37 #22320 [Verbose] > │     UH0_0(34.0, v0)                                                          │
00:02:37 #22321 [Verbose] > │ and closure32 () () : UH0 =                                                  │
00:02:37 #22322 [Verbose] > │     let v0 : (unit -> UH0) = closure33()                                     │
00:02:37 #22323 [Verbose] > │     UH0_0(33.0, v0)                                                          │
00:02:37 #22324 [Verbose] > │ and closure31 () () : UH0 =                                                  │
00:02:37 #22325 [Verbose] > │     let v0 : (unit -> UH0) = closure32()                                     │
00:02:37 #22326 [Verbose] > │     UH0_0(32.0, v0)                                                          │
00:02:37 #22327 [Verbose] > │ and closure30 () () : UH0 =                                                  │
00:02:37 #22328 [Verbose] > │     let v0 : (unit -> UH0) = closure31()                                     │
00:02:37 #22329 [Verbose] > │     UH0_0(31.0, v0)                                                          │
00:02:37 #22330 [Verbose] > │ and closure29 () () : UH0 =                                                  │
00:02:37 #22331 [Verbose] > │     let v0 : (unit -> UH0) = closure30()                                     │
00:02:37 #22332 [Verbose] > │     UH0_0(30.0, v0)                                                          │
00:02:37 #22333 [Verbose] > │ and closure28 () () : UH0 =                                                  │
00:02:37 #22334 [Verbose] > │     let v0 : (unit -> UH0) = closure29()                                     │
00:02:37 #22335 [Verbose] > │     UH0_0(29.0, v0)                                                          │
00:02:37 #22336 [Verbose] > │ and closure27 () () : UH0 =                                                  │
00:02:37 #22337 [Verbose] > │     let v0 : (unit -> UH0) = closure28()                                     │
00:02:37 #22338 [Verbose] > │     UH0_0(28.0, v0)                                                          │
00:02:37 #22339 [Verbose] > │ and closure26 () () : UH0 =                                                  │
00:02:37 #22340 [Verbose] > │     let v0 : (unit -> UH0) = closure27()                                     │
00:02:37 #22341 [Verbose] > │     UH0_0(27.0, v0)                                                          │
00:02:37 #22342 [Verbose] > │ and closure25 () () : UH0 =                                                  │
00:02:37 #22343 [Verbose] > │     let v0 : (unit -> UH0) = closure26()                                     │
00:02:37 #22344 [Verbose] > │     UH0_0(26.0, v0)                                                          │
00:02:37 #22345 [Verbose] > │ and closure24 () () : UH0 =                                                  │
00:02:37 #22346 [Verbose] > │     let v0 : (unit -> UH0) = closure25()                                     │
00:02:37 #22347 [Verbose] > │     UH0_0(25.0, v0)                                                          │
00:02:37 #22348 [Verbose] > │ and closure23 () () : UH0 =                                                  │
00:02:37 #22349 [Verbose] > │     let v0 : (unit -> UH0) = closure24()                                     │
00:02:37 #22350 [Verbose] > │     UH0_0(24.0, v0)                                                          │
00:02:37 #22351 [Verbose] > │ and closure22 () () : UH0 =                                                  │
00:02:37 #22352 [Verbose] > │     let v0 : (unit -> UH0) = closure23()                                     │
00:02:37 #22353 [Verbose] > │     UH0_0(23.0, v0)                                                          │
00:02:37 #22354 [Verbose] > │ and closure21 () () : UH0 =                                                  │
00:02:37 #22355 [Verbose] > │     let v0 : (unit -> UH0) = closure22()                                     │
00:02:37 #22356 [Verbose] > │     UH0_0(22.0, v0)                                                          │
00:02:37 #22357 [Verbose] > │ and closure20 () () : UH0 =                                                  │
00:02:37 #22358 [Verbose] > │     let v0 : (unit -> UH0) = closure21()                                     │
00:02:37 #22359 [Verbose] > │     UH0_0(21.0, v0)                                                          │
00:02:37 #22360 [Verbose] > │ and closure19 () () : UH0 =                                                  │
00:02:37 #22361 [Verbose] > │     let v0 : (unit -> UH0) = closure20()                                     │
00:02:37 #22362 [Verbose] > │     UH0_0(20.0, v0)                                                          │
00:02:37 #22363 [Verbose] > │ and closure18 () () : UH0 =                                                  │
00:02:37 #22364 [Verbose] > │     let v0 : (unit -> UH0) = closure19()                                     │
00:02:37 #22365 [Verbose] > │     UH0_0(19.0, v0)                                                          │
00:02:37 #22366 [Verbose] > │ and closure17 () () : UH0 =                                                  │
00:02:37 #22367 [Verbose] > │     let v0 : (unit -> UH0) = closure18()                                     │
00:02:37 #22368 [Verbose] > │     UH0_0(18.0, v0)                                                          │
00:02:37 #22369 [Verbose] > │ and closure16 () () : UH0 =                                                  │
00:02:37 #22370 [Verbose] > │     let v0 : (unit -> UH0) = closure17()                                     │
00:02:37 #22371 [Verbose] > │     UH0_0(17.0, v0)                                                          │
00:02:37 #22372 [Verbose] > │ and closure15 () () : UH0 =                                                  │
00:02:37 #22373 [Verbose] > │     let v0 : (unit -> UH0) = closure16()                                     │
00:02:37 #22374 [Verbose] > │     UH0_0(16.0, v0)                                                          │
00:02:37 #22375 [Verbose] > │ and closure14 () () : UH0 =                                                  │
00:02:37 #22376 [Verbose] > │     let v0 : (unit -> UH0) = closure15()                                     │
00:02:37 #22377 [Verbose] > │     UH0_0(15.0, v0)                                                          │
00:02:37 #22378 [Verbose] > │ and closure13 () () : UH0 =                                                  │
00:02:37 #22379 [Verbose] > │     let v0 : (unit -> UH0) = closure14()                                     │
00:02:37 #22380 [Verbose] > │     UH0_0(14.0, v0)                                                          │
00:02:37 #22381 [Verbose] > │ and closure12 () () : UH0 =                                                  │
00:02:37 #22382 [Verbose] > │     let v0 : (unit -> UH0) = closure13()                                     │
00:02:37 #22383 [Verbose] > │     UH0_0(13.0, v0)                                                          │
00:02:37 #22384 [Verbose] > │ and closure11 () () : UH0 =                                                  │
00:02:37 #22385 [Verbose] > │     let v0 : (unit -> UH0) = closure12()                                     │
00:02:37 #22386 [Verbose] > │     UH0_0(12.0, v0)                                                          │
00:02:37 #22387 [Verbose] > │ and closure10 () () : UH0 =                                                  │
00:02:37 #22388 [Verbose] > │     let v0 : (unit -> UH0) = closure11()                                     │
00:02:37 #22389 [Verbose] > │     UH0_0(11.0, v0)                                                          │
00:02:37 #22390 [Verbose] > │ and closure9 () () : UH0 =                                                   │
00:02:37 #22391 [Verbose] > │     let v0 : (unit -> UH0) = closure10()                                     │
00:02:37 #22392 [Verbose] > │     UH0_0(10.0, v0)                                                          │
00:02:37 #22393 [Verbose] > │ and closure8 () () : UH0 =                                                   │
00:02:37 #22394 [Verbose] > │     let v0 : (unit -> UH0) = closure9()                                      │
00:02:37 #22395 [Verbose] > │     UH0_0(9.0, v0)                                                           │
00:02:37 #22396 [Verbose] > │ and closure7 () () : UH0 =                                                   │
00:02:37 #22397 [Verbose] > │     let v0 : (unit -> UH0) = closure8()                                      │
00:02:37 #22398 [Verbose] > │     UH0_0(8.0, v0)                                                           │
00:02:37 #22399 [Verbose] > │ and closure6 () () : UH0 =                                                   │
00:02:37 #22400 [Verbose] > │     let v0 : (unit -> UH0) = closure7()                                      │
00:02:37 #22401 [Verbose] > │     UH0_0(7.0, v0)                                                           │
00:02:37 #22402 [Verbose] > │ and closure5 () () : UH0 =                                                   │
00:02:37 #22403 [Verbose] > │     let v0 : (unit -> UH0) = closure6()                                      │
00:02:37 #22404 [Verbose] > │     UH0_0(6.0, v0)                                                           │
00:02:37 #22405 [Verbose] > │ and closure4 () () : UH0 =                                                   │
00:02:37 #22406 [Verbose] > │     let v0 : (unit -> UH0) = closure5()                                      │
00:02:37 #22407 [Verbose] > │     UH0_0(5.0, v0)                                                           │
00:02:37 #22408 [Verbose] > │ and closure3 () () : UH0 =                                                   │
00:02:37 #22409 [Verbose] > │     let v0 : (unit -> UH0) = closure4()                                      │
00:02:37 #22410 [Verbose] > │     UH0_0(4.0, v0)                                                           │
00:02:37 #22411 [Verbose] > │ and closure2 () () : UH0 =                                                   │
00:02:37 #22412 [Verbose] > │     let v0 : (unit -> UH0) = closure3()                                      │
00:02:37 #22413 [Verbose] > │     UH0_0(3.0, v0)                                                           │
00:02:37 #22414 [Verbose] > │ and closure1 () () : UH0 =                                                   │
00:02:37 #22415 [Verbose] > │     let v0 : (unit -> UH0) = closure2()                                      │
00:02:37 #22416 [Verbose] > │     UH0_0(2.0, v0)                                                           │
00:02:37 #22417 [Verbose] > │ and closure0 () () : UH0 =                                                   │
00:02:37 #22418 [Verbose] > │     let v0 : (unit -> UH0) = closure1()                                      │
00:02:37 #22419 [Verbose] > │     UH0_0(1.0, v0)                                                           │
00:02:37 #22420 [Verbose] > │ and closure129 () () : UH1 =                                                 │
00:02:37 #22421 [Verbose] > │     UH1_1                                                                    │
00:02:37 #22422 [Verbose] > │ and closure128 () () : UH1 =                                                 │
00:02:37 #22423 [Verbose] > │     let v0 : (unit -> UH1) = closure129()                                    │
00:02:37 #22424 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.64, 0.0007224452478461016, 0.0, 0.0, 0.0,  │
00:02:37 #22425 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22426 [Verbose] > │ and closure127 () () : UH1 =                                                 │
00:02:37 #22427 [Verbose] > │     let v0 : (unit -> UH1) = closure128()                                    │
00:02:37 #22428 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.63, 0.001429728391993452, 0.0, 0.0, 0.0,   │
00:02:37 #22429 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22430 [Verbose] > │ and closure126 () () : UH1 =                                                 │
00:02:37 #22431 [Verbose] > │     let v0 : (unit -> UH1) = closure127()                                    │
00:02:37 #22432 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.62, 0.0021070055388626528, 0.0, 0.0, 0.0,  │
00:02:37 #22433 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22434 [Verbose] > │ and closure125 () () : UH1 =                                                 │
00:02:37 #22435 [Verbose] > │     let v0 : (unit -> UH1) = closure126()                                    │
00:02:37 #22436 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.61, 0.0027400625367733585, 0.0, 0.0, 0.0,  │
00:02:37 #22437 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22438 [Verbose] > │ and closure124 () () : UH1 =                                                 │
00:02:37 #22439 [Verbose] > │     let v0 : (unit -> UH1) = closure125()                                    │
00:02:37 #22440 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.6, 0.0033156132912039783, 0.0, 0.0, 0.0,   │
00:02:37 #22441 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22442 [Verbose] > │ and closure123 () () : UH1 =                                                 │
00:02:37 #22443 [Verbose] > │     let v0 : (unit -> UH1) = closure124()                                    │
00:02:37 #22444 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.59, 0.003821578602729245, 0.0, 0.0, 0.0,   │
00:02:37 #22445 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22446 [Verbose] > │ and closure122 () () : UH1 =                                                 │
00:02:37 #22447 [Verbose] > │     let v0 : (unit -> UH1) = closure123()                                    │
00:02:37 #22448 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.5800000000000001, 0.004247339675607605,    │
00:02:37 #22449 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0)                                                 │
00:02:37 #22450 [Verbose] > │ and closure121 () () : UH1 =                                                 │
00:02:37 #22451 [Verbose] > │     let v0 : (unit -> UH1) = closure122()                                    │
00:02:37 #22452 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.5700000000000001, 0.004583960976582912,    │
00:02:37 #22453 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0)                                                 │
00:02:37 #22454 [Verbose] > │ and closure120 () () : UH1 =                                                 │
00:02:37 #22455 [Verbose] > │     let v0 : (unit -> UH1) = closure121()                                    │
00:02:37 #22456 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.56, 0.004824377766717758, 0.0, 0.0, 0.0,   │
00:02:37 #22457 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22458 [Verbose] > │ and closure119 () () : UH1 =                                                 │
00:02:37 #22459 [Verbose] > │     let v0 : (unit -> UH1) = closure120()                                    │
00:02:37 #22460 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.55, 0.004963544370490271, 0.0, 0.0, 0.0,   │
00:02:37 #22461 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22462 [Verbose] > │ and closure118 () () : UH1 =                                                 │
00:02:37 #22463 [Verbose] > │     let v0 : (unit -> UH1) = closure119()                                    │
00:02:37 #22464 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.54, 0.004998540070400965, 0.0, 0.0, 0.0,   │
00:02:37 #22465 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22466 [Verbose] > │ and closure117 () () : UH1 =                                                 │
00:02:37 #22467 [Verbose] > │     let v0 : (unit -> UH1) = closure118()                                    │
00:02:37 #22468 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.53, 0.004928630404658255, 0.0, 0.0, 0.0,   │
00:02:37 #22469 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22470 [Verbose] > │ and closure116 () () : UH1 =                                                 │
00:02:37 #22471 [Verbose] > │     let v0 : (unit -> UH1) = closure117()                                    │
00:02:37 #22472 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.52, 0.004755282581475766, 0.0, 0.0, 0.0,   │
00:02:37 #22473 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22474 [Verbose] > │ and closure115 () () : UH1 =                                                 │
00:02:37 #22475 [Verbose] > │     let v0 : (unit -> UH1) = closure116()                                    │
00:02:37 #22476 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.51, 0.0044821346864785195, 0.0, 0.0, 0.0,  │
00:02:37 #22477 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22478 [Verbose] > │ and closure114 () () : UH1 =                                                 │
00:02:37 #22479 [Verbose] > │     let v0 : (unit -> UH1) = closure115()                                    │
00:02:37 #22480 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.5, 0.0041149193294682815, 0.0, 0.0, 0.0,   │
00:02:37 #22481 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22482 [Verbose] > │ and closure113 () () : UH1 =                                                 │
00:02:37 #22483 [Verbose] > │     let v0 : (unit -> UH1) = closure114()                                    │
00:02:37 #22484 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.49, 0.0036613433329888622, 0.0, 0.0, 0.0,  │
00:02:37 #22485 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22486 [Verbose] > │ and closure112 () () : UH1 =                                                 │
00:02:37 #22487 [Verbose] > │     let v0 : (unit -> UH1) = closure113()                                    │
00:02:37 #22488 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.48000000000000004, 0.003130925987691568,   │
00:02:37 #22489 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0)                                                 │
00:02:37 #22490 [Verbose] > │ and closure111 () () : UH1 =                                                 │
00:02:37 #22491 [Verbose] > │     let v0 : (unit -> UH1) = closure112()                                    │
00:02:37 #22492 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.47000000000000003, 0.002534799269067954,   │
00:02:37 #22493 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0)                                                 │
00:02:37 #22494 [Verbose] > │ and closure110 () () : UH1 =                                                 │
00:02:37 #22495 [Verbose] > │     let v0 : (unit -> UH1) = closure111()                                    │
00:02:37 #22496 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.46, 0.0018854742084416021, 0.0, 0.0, 0.0,  │
00:02:37 #22497 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22498 [Verbose] > │ and closure109 () () : UH1 =                                                 │
00:02:37 #22499 [Verbose] > │     let v0 : (unit -> UH1) = closure110()                                    │
00:02:37 #22500 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.45, 0.0011965783214377866, 0.0, 0.0, 0.0,  │
00:02:37 #22501 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22502 [Verbose] > │ and closure108 () () : UH1 =                                                 │
00:02:37 #22503 [Verbose] > │     let v0 : (unit -> UH1) = closure109()                                    │
00:02:37 #22504 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.44, 0.0004825696045725713, 0.0, 0.0, 0.0,  │
00:02:37 #22505 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22506 [Verbose] > │ and closure107 () () : UH1 =                                                 │
00:02:37 #22507 [Verbose] > │     let v0 : (unit -> UH1) = closure108()                                    │
00:02:37 #22508 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.43, -0.00024156689762753724, 0.0, 0.0,     │
00:02:37 #22509 [Verbose] > │ 0.0, 0.0, 0.0, v0)                                                           │
00:02:37 #22510 [Verbose] > │ and closure106 () () : UH1 =                                                 │
00:02:37 #22511 [Verbose] > │     let v0 : (unit -> UH1) = closure107()                                    │
00:02:37 #22512 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.42000000000000004, -0.0009606335867685414, │
00:02:37 #22513 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0)                                                 │
00:02:37 #22514 [Verbose] > │ and closure105 () () : UH1 =                                                 │
00:02:37 #22515 [Verbose] > │     let v0 : (unit -> UH1) = closure106()                                    │
00:02:37 #22516 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.41000000000000003, -0.0016595392656426435, │
00:02:37 #22517 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0)                                                 │
00:02:37 #22518 [Verbose] > │ and closure104 () () : UH1 =                                                 │
00:02:37 #22519 [Verbose] > │     let v0 : (unit -> UH1) = closure105()                                    │
00:02:37 #22520 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.4, -0.002323615860218846, 0.0, 0.0, 0.0,   │
00:02:37 #22521 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22522 [Verbose] > │ and closure103 () () : UH1 =                                                 │
00:02:37 #22523 [Verbose] > │     let v0 : (unit -> UH1) = closure104()                                    │
00:02:37 #22524 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.39, -0.002938926261462367, 0.0, 0.0, 0.0,  │
00:02:37 #22525 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22526 [Verbose] > │ and closure102 () () : UH1 =                                                 │
00:02:37 #22527 [Verbose] > │     let v0 : (unit -> UH1) = closure103()                                    │
00:02:37 #22528 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.38, -0.0034925568262446837, 0.0, 0.0, 0.0, │
00:02:37 #22529 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22530 [Verbose] > │ and closure101 () () : UH1 =                                                 │
00:02:37 #22531 [Verbose] > │     let v0 : (unit -> UH1) = closure102()                                    │
00:02:37 #22532 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.37, -0.003972888398568774, 0.0, 0.0, 0.0,  │
00:02:37 #22533 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22534 [Verbose] > │ and closure100 () () : UH1 =                                                 │
00:02:37 #22535 [Verbose] > │     let v0 : (unit -> UH1) = closure101()                                    │
00:02:37 #22536 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.36000000000000004, -0.004369840163132589,  │
00:02:37 #22537 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0)                                                 │
00:02:37 #22538 [Verbose] > │ and closure99 () () : UH1 =                                                  │
00:02:37 #22539 [Verbose] > │     let v0 : (unit -> UH1) = closure100()                                    │
00:02:37 #22540 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.35000000000000003, -0.004675081213427074,  │
00:02:37 #22541 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0)                                                 │
00:02:37 #22542 [Verbose] > │ and closure98 () () : UH1 =                                                  │
00:02:37 #22543 [Verbose] > │     let v0 : (unit -> UH1) = closure99()                                     │
00:02:37 #22544 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.34, -0.004882205394146361, 0.0, 0.0, 0.0,  │
00:02:37 #22545 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22546 [Verbose] > │ and closure97 () () : UH1 =                                                  │
00:02:37 #22547 [Verbose] > │     let v0 : (unit -> UH1) = closure98()                                     │
00:02:37 #22548 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.33, -0.004986865748457456, 0.0, 0.0, 0.0,  │
00:02:37 #22549 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22550 [Verbose] > │ and closure96 () () : UH1 =                                                  │
00:02:37 #22551 [Verbose] > │     let v0 : (unit -> UH1) = closure97()                                     │
00:02:37 #22552 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.32, -0.004986865748457456, 0.0, 0.0, 0.0,  │
00:02:37 #22553 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22554 [Verbose] > │ and closure95 () () : UH1 =                                                  │
00:02:37 #22555 [Verbose] > │     let v0 : (unit -> UH1) = closure96()                                     │
00:02:37 #22556 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.31, -0.004882205394146359, 0.0, 0.0, 0.0,  │
00:02:37 #22557 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22558 [Verbose] > │ and closure94 () () : UH1 =                                                  │
00:02:37 #22559 [Verbose] > │     let v0 : (unit -> UH1) = closure95()                                     │
00:02:37 #22560 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.3, -0.004675081213427074, 0.0, 0.0, 0.0,   │
00:02:37 #22561 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22562 [Verbose] > │ and closure93 () () : UH1 =                                                  │
00:02:37 #22563 [Verbose] > │     let v0 : (unit -> UH1) = closure94()                                     │
00:02:37 #22564 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.29000000000000004, -0.00436984016313259,   │
00:02:37 #22565 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0)                                                 │
00:02:37 #22566 [Verbose] > │ and closure92 () () : UH1 =                                                  │
00:02:37 #22567 [Verbose] > │     let v0 : (unit -> UH1) = closure93()                                     │
00:02:37 #22568 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.28, -0.003972888398568771, 0.0, 0.0, 0.0,  │
00:02:37 #22569 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22570 [Verbose] > │ and closure91 () () : UH1 =                                                  │
00:02:37 #22571 [Verbose] > │     let v0 : (unit -> UH1) = closure92()                                     │
00:02:37 #22572 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.27, -0.003492556826244686, 0.0, 0.0, 0.0,  │
00:02:37 #22573 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22574 [Verbose] > │ and closure90 () () : UH1 =                                                  │
00:02:37 #22575 [Verbose] > │     let v0 : (unit -> UH1) = closure91()                                     │
00:02:37 #22576 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.26, -0.0029389262614623636, 0.0, 0.0, 0.0, │
00:02:37 #22577 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22578 [Verbose] > │ and closure89 () () : UH1 =                                                  │
00:02:37 #22579 [Verbose] > │     let v0 : (unit -> UH1) = closure90()                                     │
00:02:37 #22580 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.25, -0.002323615860218842, 0.0, 0.0, 0.0,  │
00:02:37 #22581 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22582 [Verbose] > │ and closure88 () () : UH1 =                                                  │
00:02:37 #22583 [Verbose] > │     let v0 : (unit -> UH1) = closure89()                                     │
00:02:37 #22584 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.24000000000000002, -0.001659539265642642,  │
00:02:37 #22585 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0)                                                 │
00:02:37 #22586 [Verbose] > │ and closure87 () () : UH1 =                                                  │
00:02:37 #22587 [Verbose] > │     let v0 : (unit -> UH1) = closure88()                                     │
00:02:37 #22588 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.23, -0.0009606335867685418, 0.0, 0.0, 0.0, │
00:02:37 #22589 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22590 [Verbose] > │ and closure86 () () : UH1 =                                                  │
00:02:37 #22591 [Verbose] > │     let v0 : (unit -> UH1) = closure87()                                     │
00:02:37 #22592 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.22, -0.00024156689762753317, 0.0, 0.0,     │
00:02:37 #22593 [Verbose] > │ 0.0, 0.0, 0.0, v0)                                                           │
00:02:37 #22594 [Verbose] > │ and closure85 () () : UH1 =                                                  │
00:02:37 #22595 [Verbose] > │     let v0 : (unit -> UH1) = closure86()                                     │
00:02:37 #22596 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.21000000000000002, 0.00048256960457257535, │
00:02:37 #22597 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0)                                                 │
00:02:37 #22598 [Verbose] > │ and closure84 () () : UH1 =                                                  │
00:02:37 #22599 [Verbose] > │     let v0 : (unit -> UH1) = closure85()                                     │
00:02:37 #22600 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.2, 0.0011965783214377905, 0.0, 0.0, 0.0,   │
00:02:37 #22601 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22602 [Verbose] > │ and closure83 () () : UH1 =                                                  │
00:02:37 #22603 [Verbose] > │     let v0 : (unit -> UH1) = closure84()                                     │
00:02:37 #22604 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.19, 0.0018854742084416015, 0.0, 0.0, 0.0,  │
00:02:37 #22605 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22606 [Verbose] > │ and closure82 () () : UH1 =                                                  │
00:02:37 #22607 [Verbose] > │     let v0 : (unit -> UH1) = closure83()                                     │
00:02:37 #22608 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.18000000000000002, 0.002534799269067951,   │
00:02:37 #22609 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0)                                                 │
00:02:37 #22610 [Verbose] > │ and closure81 () () : UH1 =                                                  │
00:02:37 #22611 [Verbose] > │     let v0 : (unit -> UH1) = closure82()                                     │
00:02:37 #22612 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.17, 0.0031309259876915697, 0.0, 0.0, 0.0,  │
00:02:37 #22613 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22614 [Verbose] > │ and closure80 () () : UH1 =                                                  │
00:02:37 #22615 [Verbose] > │     let v0 : (unit -> UH1) = closure81()                                     │
00:02:37 #22616 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.16, 0.0036613433329888666, 0.0, 0.0, 0.0,  │
00:02:37 #22617 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22618 [Verbose] > │ and closure79 () () : UH1 =                                                  │
00:02:37 #22619 [Verbose] > │     let v0 : (unit -> UH1) = closure80()                                     │
00:02:37 #22620 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.15000000000000002, 0.0041149193294682815,  │
00:02:37 #22621 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0)                                                 │
00:02:37 #22622 [Verbose] > │ and closure78 () () : UH1 =                                                  │
00:02:37 #22623 [Verbose] > │     let v0 : (unit -> UH1) = closure79()                                     │
00:02:37 #22624 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.14, 0.004482134686478519, 0.0, 0.0, 0.0,   │
00:02:37 #22625 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22626 [Verbose] > │ and closure77 () () : UH1 =                                                  │
00:02:37 #22627 [Verbose] > │     let v0 : (unit -> UH1) = closure78()                                     │
00:02:37 #22628 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.13, 0.004755282581475768, 0.0, 0.0, 0.0,   │
00:02:37 #22629 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22630 [Verbose] > │ and closure76 () () : UH1 =                                                  │
00:02:37 #22631 [Verbose] > │     let v0 : (unit -> UH1) = closure77()                                     │
00:02:37 #22632 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.12, 0.004928630404658255, 0.0, 0.0, 0.0,   │
00:02:37 #22633 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22634 [Verbose] > │ and closure75 () () : UH1 =                                                  │
00:02:37 #22635 [Verbose] > │     let v0 : (unit -> UH1) = closure76()                                     │
00:02:37 #22636 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.11, 0.004998540070400965, 0.0, 0.0, 0.0,   │
00:02:37 #22637 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22638 [Verbose] > │ and closure74 () () : UH1 =                                                  │
00:02:37 #22639 [Verbose] > │     let v0 : (unit -> UH1) = closure75()                                     │
00:02:37 #22640 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.09999999999999999, 0.00496354437049027,    │
00:02:37 #22641 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0)                                                 │
00:02:37 #22642 [Verbose] > │ and closure73 () () : UH1 =                                                  │
00:02:37 #22643 [Verbose] > │     let v0 : (unit -> UH1) = closure74()                                     │
00:02:37 #22644 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.09, 0.004824377766717757, 0.0, 0.0, 0.0,   │
00:02:37 #22645 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22646 [Verbose] > │ and closure72 () () : UH1 =                                                  │
00:02:37 #22647 [Verbose] > │     let v0 : (unit -> UH1) = closure73()                                     │
00:02:37 #22648 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.08, 0.004583960976582912, 0.0, 0.0, 0.0,   │
00:02:37 #22649 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22650 [Verbose] > │ and closure71 () () : UH1 =                                                  │
00:02:37 #22651 [Verbose] > │     let v0 : (unit -> UH1) = closure72()                                     │
00:02:37 #22652 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.06999999999999999, 0.004247339675607605,   │
00:02:37 #22653 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0)                                                 │
00:02:37 #22654 [Verbose] > │ and closure70 () () : UH1 =                                                  │
00:02:37 #22655 [Verbose] > │     let v0 : (unit -> UH1) = closure71()                                     │
00:02:37 #22656 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.060000000000000005, 0.0038215786027292415, │
00:02:37 #22657 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0)                                                 │
00:02:37 #22658 [Verbose] > │ and closure69 () () : UH1 =                                                  │
00:02:37 #22659 [Verbose] > │     let v0 : (unit -> UH1) = closure70()                                     │
00:02:37 #22660 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.05, 0.0033156132912039757, 0.0, 0.0, 0.0,  │
00:02:37 #22661 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22662 [Verbose] > │ and closure68 () () : UH1 =                                                  │
00:02:37 #22663 [Verbose] > │     let v0 : (unit -> UH1) = closure69()                                     │
00:02:37 #22664 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.04, 0.00274006253677335, 0.0, 0.0, 0.0,    │
00:02:37 #22665 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22666 [Verbose] > │ and closure67 () () : UH1 =                                                  │
00:02:37 #22667 [Verbose] > │     let v0 : (unit -> UH1) = closure68()                                     │
00:02:37 #22668 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.03, 0.0021070055388626454, 0.0, 0.0, 0.0,  │
00:02:37 #22669 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22670 [Verbose] > │ and closure66 () () : UH1 =                                                  │
00:02:37 #22671 [Verbose] > │     let v0 : (unit -> UH1) = closure67()                                     │
00:02:37 #22672 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.02, 0.0014297283919934465, 0.0, 0.0, 0.0,  │
00:02:37 #22673 [Verbose] > │ 0.0, 0.0, v0)                                                                │
00:02:37 #22674 [Verbose] > │ and closure132 (v0 : (unit -> UH1), v1 : (unit -> UH3)) () : UH1 =           │
00:02:37 #22675 [Verbose] > │     let v2 : UH3 = v1 ()                                                     │
00:02:37 #22676 [Verbose] > │     let v3 : UH1 = v0 ()                                                     │
00:02:37 #22677 [Verbose] > │     match v2 with                                                            │
00:02:37 #22678 [Verbose] > │     | UH3_0(v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) -> (* StreamCons *)  │
00:02:37 #22679 [Verbose] > │         match v3 with                                                        │
00:02:37 #22680 [Verbose] > │         | UH1_0(v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) -> (*      │
00:02:37 #22681 [Verbose] > │ StreamCons *)                                                                │
00:02:37 #22682 [Verbose] > │             let v24 : float = v9 * 1.25E-05                                  │
00:02:37 #22683 [Verbose] > │             let v25 : float = v19 + v24                                      │
00:02:37 #22684 [Verbose] > │             let v26 : float = 1.25E-05 * v6                                  │
00:02:37 #22685 [Verbose] > │             let v27 : float = 1.25E-05 * v7                                  │
00:02:37 #22686 [Verbose] > │             let v28 : float = 1.25E-05 * v8                                  │
00:02:37 #22687 [Verbose] > │             let v29 : float = v16 + v26                                      │
00:02:37 #22688 [Verbose] > │             let v30 : float = v17 + v27                                      │
00:02:37 #22689 [Verbose] > │             let v31 : float = v18 + v28                                      │
00:02:37 #22690 [Verbose] > │             let v32 : float = 1.25E-05 * v10                                 │
00:02:37 #22691 [Verbose] > │             let v33 : float = 1.25E-05 * v11                                 │
00:02:37 #22692 [Verbose] > │             let v34 : float = 1.25E-05 * v12                                 │
00:02:37 #22693 [Verbose] > │             let v35 : float = v20 + v32                                      │
00:02:37 #22694 [Verbose] > │             let v36 : float = v21 + v33                                      │
00:02:37 #22695 [Verbose] > │             let v37 : float = v22 + v34                                      │
00:02:37 #22696 [Verbose] > │             let v38 : (unit -> UH1) = closure132(v23, v13)                   │
00:02:37 #22697 [Verbose] > │             UH1_0(v14, v15, v29, v30, v31, v25, v35, v36, v37, v38)          │
00:02:37 #22698 [Verbose] > │         | UH1_1 -> (* StreamNil *)                                           │
00:02:37 #22699 [Verbose] > │             UH1_1                                                            │
00:02:37 #22700 [Verbose] > │     | UH3_1 -> (* StreamNil *)                                               │
00:02:37 #22701 [Verbose] > │         UH1_1                                                                │
00:02:37 #22702 [Verbose] > │ and closure133 (v0 : UH1) () : UH1 =                                         │
00:02:37 #22703 [Verbose] > │     v0                                                                       │
00:02:37 #22704 [Verbose] > │ and closure134 (v0 : UH1, v1 : Mut0) () : UH1 =                              │
00:02:37 #22705 [Verbose] > │     let v2 : US0 = v1.l0                                                     │
00:02:37 #22706 [Verbose] > │     match v2 with                                                            │
00:02:37 #22707 [Verbose] > │     | US0_0(v3) -> (* Computed *)                                            │
00:02:37 #22708 [Verbose] > │         v3                                                                   │
00:02:37 #22709 [Verbose] > │     | US0_1(v4) -> (* NotComputed *)                                         │
00:02:37 #22710 [Verbose] > │         let v5 : UH1 = v4 ()                                                 │
00:02:37 #22711 [Verbose] > │         let v20 : UH1 =                                                      │
00:02:37 #22712 [Verbose] > │             match v5 with                                                    │
00:02:37 #22713 [Verbose] > │             | UH1_0(v7, v8, v9, v10, v11, v12, v13, v14, v15, v16) -> (*     │
00:02:37 #22714 [Verbose] > │ StreamCons *)                                                                │
00:02:37 #22715 [Verbose] > │                 let v17 : (unit -> UH1) = method3(v0, v16)                   │
00:02:37 #22716 [Verbose] > │                 UH1_0(v7, v8, v9, v10, v11, v12, v13, v14, v15, v17)         │
00:02:37 #22717 [Verbose] > │             | UH1_1 -> (* StreamNil *)                                       │
00:02:37 #22718 [Verbose] > │                 UH1_1                                                        │
00:02:37 #22719 [Verbose] > │         let v21 : US0 = US0_0(v20)                                           │
00:02:37 #22720 [Verbose] > │         v1.l0 <- v21                                                         │
00:02:37 #22721 [Verbose] > │         v20                                                                  │
00:02:37 #22722 [Verbose] > │ and method3 (v0 : UH1, v1 : (unit -> UH1)) : (unit -> UH1) =                 │
00:02:37 #22723 [Verbose] > │     let v2 : US0 = US0_1(v1)                                                 │
00:02:37 #22724 [Verbose] > │     let v3 : Mut0 = {l0 = v2} : Mut0                                         │
00:02:37 #22725 [Verbose] > │     closure134(v0, v3)                                                       │
00:02:37 #22726 [Verbose] > │ and closure135 (v0 : (unit -> UH1), v1 : (unit -> UH3)) () : UH1 =           │
00:02:37 #22727 [Verbose] > │     let v2 : UH3 = v1 ()                                                     │
00:02:37 #22728 [Verbose] > │     let v3 : UH1 = v0 ()                                                     │
00:02:37 #22729 [Verbose] > │     match v2 with                                                            │
00:02:37 #22730 [Verbose] > │     | UH3_0(v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) -> (* StreamCons *)  │
00:02:37 #22731 [Verbose] > │         match v3 with                                                        │
00:02:37 #22732 [Verbose] > │         | UH1_0(v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) -> (*      │
00:02:37 #22733 [Verbose] > │ StreamCons *)                                                                │
00:02:37 #22734 [Verbose] > │             let v24 : float = v9 * 2.5E-05                                   │
00:02:37 #22735 [Verbose] > │             let v25 : float = v19 + v24                                      │
00:02:37 #22736 [Verbose] > │             let v26 : float = 2.5E-05 * v6                                   │
00:02:37 #22737 [Verbose] > │             let v27 : float = 2.5E-05 * v7                                   │
00:02:37 #22738 [Verbose] > │             let v28 : float = 2.5E-05 * v8                                   │
00:02:37 #22739 [Verbose] > │             let v29 : float = v16 + v26                                      │
00:02:37 #22740 [Verbose] > │             let v30 : float = v17 + v27                                      │
00:02:37 #22741 [Verbose] > │             let v31 : float = v18 + v28                                      │
00:02:37 #22742 [Verbose] > │             let v32 : float = 2.5E-05 * v10                                  │
00:02:37 #22743 [Verbose] > │             let v33 : float = 2.5E-05 * v11                                  │
00:02:37 #22744 [Verbose] > │             let v34 : float = 2.5E-05 * v12                                  │
00:02:37 #22745 [Verbose] > │             let v35 : float = v20 + v32                                      │
00:02:37 #22746 [Verbose] > │             let v36 : float = v21 + v33                                      │
00:02:37 #22747 [Verbose] > │             let v37 : float = v22 + v34                                      │
00:02:37 #22748 [Verbose] > │             let v38 : (unit -> UH1) = closure135(v23, v13)                   │
00:02:37 #22749 [Verbose] > │             UH1_0(v14, v15, v29, v30, v31, v25, v35, v36, v37, v38)          │
00:02:37 #22750 [Verbose] > │         | UH1_1 -> (* StreamNil *)                                           │
00:02:37 #22751 [Verbose] > │             UH1_1                                                            │
00:02:37 #22752 [Verbose] > │     | UH3_1 -> (* StreamNil *)                                               │
00:02:37 #22753 [Verbose] > │         UH1_1                                                                │
00:02:37 #22754 [Verbose] > │ and closure136 (v0 : (unit -> UH3), v1 : (unit -> UH3)) () : UH3 =           │
00:02:37 #22755 [Verbose] > │     let v2 : UH3 = v1 ()                                                     │
00:02:37 #22756 [Verbose] > │     let v3 : UH3 = v0 ()                                                     │
00:02:37 #22757 [Verbose] > │     match v2 with                                                            │
00:02:37 #22758 [Verbose] > │     | UH3_0(v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) -> (* StreamCons *)  │
00:02:37 #22759 [Verbose] > │         match v3 with                                                        │
00:02:37 #22760 [Verbose] > │         | UH3_0(v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) -> (*      │
00:02:37 #22761 [Verbose] > │ StreamCons *)                                                                │
00:02:37 #22762 [Verbose] > │             let v24 : float = v4 + v14                                       │
00:02:37 #22763 [Verbose] > │             let v25 : float = v5 + v15                                       │
00:02:37 #22764 [Verbose] > │             let v26 : float = v9 + v19                                       │
00:02:37 #22765 [Verbose] > │             let v27 : float = v6 + v16                                       │
00:02:37 #22766 [Verbose] > │             let v28 : float = v7 + v17                                       │
00:02:37 #22767 [Verbose] > │             let v29 : float = v8 + v18                                       │
00:02:37 #22768 [Verbose] > │             let v30 : float = v10 + v20                                      │
00:02:37 #22769 [Verbose] > │             let v31 : float = v11 + v21                                      │
00:02:37 #22770 [Verbose] > │             let v32 : float = v12 + v22                                      │
00:02:37 #22771 [Verbose] > │             let v33 : (unit -> UH3) = closure136(v23, v13)                   │
00:02:37 #22772 [Verbose] > │             UH3_0(v24, v25, v27, v28, v29, v26, v30, v31, v32, v33)          │
00:02:37 #22773 [Verbose] > │         | UH3_1 -> (* StreamNil *)                                           │
00:02:37 #22774 [Verbose] > │             UH3_1                                                            │
00:02:37 #22775 [Verbose] > │     | UH3_1 -> (* StreamNil *)                                               │
00:02:37 #22776 [Verbose] > │         UH3_1                                                                │
00:02:37 #22777 [Verbose] > │ and closure137 (v0 : (unit -> UH1), v1 : (unit -> UH3)) () : UH1 =           │
00:02:37 #22778 [Verbose] > │     let v2 : UH3 = v1 ()                                                     │
00:02:37 #22779 [Verbose] > │     let v3 : UH1 = v0 ()                                                     │
00:02:37 #22780 [Verbose] > │     match v2 with                                                            │
00:02:37 #22781 [Verbose] > │     | UH3_0(v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) -> (* StreamCons *)  │
00:02:37 #22782 [Verbose] > │         match v3 with                                                        │
00:02:37 #22783 [Verbose] > │         | UH1_0(v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) -> (*      │
00:02:37 #22784 [Verbose] > │ StreamCons *)                                                                │
00:02:37 #22785 [Verbose] > │             let v24 : float = v9 * 4.166666666666667E-06                     │
00:02:37 #22786 [Verbose] > │             let v25 : float = v19 + v24                                      │
00:02:37 #22787 [Verbose] > │             let v26 : float = 4.166666666666667E-06 * v6                     │
00:02:37 #22788 [Verbose] > │             let v27 : float = 4.166666666666667E-06 * v7                     │
00:02:37 #22789 [Verbose] > │             let v28 : float = 4.166666666666667E-06 * v8                     │
00:02:37 #22790 [Verbose] > │             let v29 : float = v16 + v26                                      │
00:02:37 #22791 [Verbose] > │             let v30 : float = v17 + v27                                      │
00:02:37 #22792 [Verbose] > │             let v31 : float = v18 + v28                                      │
00:02:37 #22793 [Verbose] > │             let v32 : float = 4.166666666666667E-06 * v10                    │
00:02:37 #22794 [Verbose] > │             let v33 : float = 4.166666666666667E-06 * v11                    │
00:02:37 #22795 [Verbose] > │             let v34 : float = 4.166666666666667E-06 * v12                    │
00:02:37 #22796 [Verbose] > │             let v35 : float = v20 + v32                                      │
00:02:37 #22797 [Verbose] > │             let v36 : float = v21 + v33                                      │
00:02:37 #22798 [Verbose] > │             let v37 : float = v22 + v34                                      │
00:02:37 #22799 [Verbose] > │             let v38 : (unit -> UH1) = closure137(v23, v13)                   │
00:02:37 #22800 [Verbose] > │             UH1_0(v14, v15, v29, v30, v31, v25, v35, v36, v37, v38)          │
00:02:37 #22801 [Verbose] > │         | UH1_1 -> (* StreamNil *)                                           │
00:02:37 #22802 [Verbose] > │             UH1_1                                                            │
00:02:37 #22803 [Verbose] > │     | UH3_1 -> (* StreamNil *)                                               │
00:02:37 #22804 [Verbose] > │         UH1_1                                                                │
00:02:37 #22805 [Verbose] > │ and closure131 (v0 : (UH1 -> UH3)) (v1 : UH1) : UH1 =                        │
00:02:37 #22806 [Verbose] > │     let v2 : UH3 = v0 v1                                                     │
00:02:37 #22807 [Verbose] > │     let v44 : UH1 =                                                          │
00:02:37 #22808 [Verbose] > │         match v2 with                                                        │
00:02:37 #22809 [Verbose] > │         | UH3_0(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) -> (* StreamCons  │
00:02:37 #22810 [Verbose] > │ *)                                                                           │
00:02:37 #22811 [Verbose] > │             match v1 with                                                    │
00:02:37 #22812 [Verbose] > │             | UH1_0(v13, v14, v15, v16, v17, v18, v19, v20, v21, v22) -> (*  │
00:02:37 #22813 [Verbose] > │ StreamCons *)                                                                │
00:02:37 #22814 [Verbose] > │                 let v23 : float = v8 * 1.25E-05                              │
00:02:37 #22815 [Verbose] > │                 let v24 : float = v18 + v23                                  │
00:02:37 #22816 [Verbose] > │                 let v25 : float = 1.25E-05 * v5                              │
00:02:37 #22817 [Verbose] > │                 let v26 : float = 1.25E-05 * v6                              │
00:02:37 #22818 [Verbose] > │                 let v27 : float = 1.25E-05 * v7                              │
00:02:37 #22819 [Verbose] > │                 let v28 : float = v15 + v25                                  │
00:02:37 #22820 [Verbose] > │                 let v29 : float = v16 + v26                                  │
00:02:37 #22821 [Verbose] > │                 let v30 : float = v17 + v27                                  │
00:02:37 #22822 [Verbose] > │                 let v31 : float = 1.25E-05 * v9                              │
00:02:37 #22823 [Verbose] > │                 let v32 : float = 1.25E-05 * v10                             │
00:02:37 #22824 [Verbose] > │                 let v33 : float = 1.25E-05 * v11                             │
00:02:37 #22825 [Verbose] > │                 let v34 : float = v19 + v31                                  │
00:02:37 #22826 [Verbose] > │                 let v35 : float = v20 + v32                                  │
00:02:37 #22827 [Verbose] > │                 let v36 : float = v21 + v33                                  │
00:02:37 #22828 [Verbose] > │                 let v37 : (unit -> UH1) = closure132(v22, v12)               │
00:02:37 #22829 [Verbose] > │                 UH1_0(v13, v14, v28, v29, v30, v24, v34, v35, v36, v37)      │
00:02:37 #22830 [Verbose] > │             | UH1_1 -> (* StreamNil *)                                       │
00:02:37 #22831 [Verbose] > │                 UH1_1                                                        │
00:02:37 #22832 [Verbose] > │         | UH3_1 -> (* StreamNil *)                                           │
00:02:37 #22833 [Verbose] > │             UH1_1                                                            │
00:02:37 #22834 [Verbose] > │     let v45 : (unit -> UH1) = closure133(v44)                                │
00:02:37 #22835 [Verbose] > │     let v46 : (unit -> UH1) = method3(v44, v45)                              │
00:02:37 #22836 [Verbose] > │     let v47 : UH1 = v46 ()                                                   │
00:02:37 #22837 [Verbose] > │     let v48 : UH3 = v0 v47                                                   │
00:02:37 #22838 [Verbose] > │     let v90 : UH1 =                                                          │
00:02:37 #22839 [Verbose] > │         match v48 with                                                       │
00:02:37 #22840 [Verbose] > │         | UH3_0(v49, v50, v51, v52, v53, v54, v55, v56, v57, v58) -> (*      │
00:02:37 #22841 [Verbose] > │ StreamCons *)                                                                │
00:02:37 #22842 [Verbose] > │             match v1 with                                                    │
00:02:37 #22843 [Verbose] > │             | UH1_0(v59, v60, v61, v62, v63, v64, v65, v66, v67, v68) -> (*  │
00:02:37 #22844 [Verbose] > │ StreamCons *)                                                                │
00:02:37 #22845 [Verbose] > │                 let v69 : float = v54 * 1.25E-05                             │
00:02:37 #22846 [Verbose] > │                 let v70 : float = v64 + v69                                  │
00:02:37 #22847 [Verbose] > │                 let v71 : float = 1.25E-05 * v51                             │
00:02:37 #22848 [Verbose] > │                 let v72 : float = 1.25E-05 * v52                             │
00:02:37 #22849 [Verbose] > │                 let v73 : float = 1.25E-05 * v53                             │
00:02:37 #22850 [Verbose] > │                 let v74 : float = v61 + v71                                  │
00:02:37 #22851 [Verbose] > │                 let v75 : float = v62 + v72                                  │
00:02:37 #22852 [Verbose] > │                 let v76 : float = v63 + v73                                  │
00:02:37 #22853 [Verbose] > │                 let v77 : float = 1.25E-05 * v55                             │
00:02:37 #22854 [Verbose] > │                 let v78 : float = 1.25E-05 * v56                             │
00:02:37 #22855 [Verbose] > │                 let v79 : float = 1.25E-05 * v57                             │
00:02:37 #22856 [Verbose] > │                 let v80 : float = v65 + v77                                  │
00:02:37 #22857 [Verbose] > │                 let v81 : float = v66 + v78                                  │
00:02:37 #22858 [Verbose] > │                 let v82 : float = v67 + v79                                  │
00:02:37 #22859 [Verbose] > │                 let v83 : (unit -> UH1) = closure132(v68, v58)               │
00:02:37 #22860 [Verbose] > │                 UH1_0(v59, v60, v74, v75, v76, v70, v80, v81, v82, v83)      │
00:02:37 #22861 [Verbose] > │             | UH1_1 -> (* StreamNil *)                                       │
00:02:37 #22862 [Verbose] > │                 UH1_1                                                        │
00:02:37 #22863 [Verbose] > │         | UH3_1 -> (* StreamNil *)                                           │
00:02:37 #22864 [Verbose] > │             UH1_1                                                            │
00:02:37 #22865 [Verbose] > │     let v91 : (unit -> UH1) = closure133(v90)                                │
00:02:37 #22866 [Verbose] > │     let v92 : (unit -> UH1) = method3(v90, v91)                              │
00:02:37 #22867 [Verbose] > │     let v93 : UH1 = v92 ()                                                   │
00:02:37 #22868 [Verbose] > │     let v94 : UH3 = v0 v93                                                   │
00:02:37 #22869 [Verbose] > │     let v136 : UH1 =                                                         │
00:02:37 #22870 [Verbose] > │         match v94 with                                                       │
00:02:37 #22871 [Verbose] > │         | UH3_0(v95, v96, v97, v98, v99, v100, v101, v102, v103, v104) -> (* │
00:02:37 #22872 [Verbose] > │ StreamCons *)                                                                │
00:02:37 #22873 [Verbose] > │             match v1 with                                                    │
00:02:37 #22874 [Verbose] > │             | UH1_0(v105, v106, v107, v108, v109, v110, v111, v112, v113,    │
00:02:37 #22875 [Verbose] > │ v114) -> (* StreamCons *)                                                    │
00:02:37 #22876 [Verbose] > │                 let v115 : float = v100 * 2.5E-05                            │
00:02:37 #22877 [Verbose] > │                 let v116 : float = v110 + v115                               │
00:02:37 #22878 [Verbose] > │                 let v117 : float = 2.5E-05 * v97                             │
00:02:37 #22879 [Verbose] > │                 let v118 : float = 2.5E-05 * v98                             │
00:02:37 #22880 [Verbose] > │                 let v119 : float = 2.5E-05 * v99                             │
00:02:37 #22881 [Verbose] > │                 let v120 : float = v107 + v117                               │
00:02:37 #22882 [Verbose] > │                 let v121 : float = v108 + v118                               │
00:02:37 #22883 [Verbose] > │                 let v122 : float = v109 + v119                               │
00:02:37 #22884 [Verbose] > │                 let v123 : float = 2.5E-05 * v101                            │
00:02:37 #22885 [Verbose] > │                 let v124 : float = 2.5E-05 * v102                            │
00:02:37 #22886 [Verbose] > │                 let v125 : float = 2.5E-05 * v103                            │
00:02:37 #22887 [Verbose] > │                 let v126 : float = v111 + v123                               │
00:02:37 #22888 [Verbose] > │                 let v127 : float = v112 + v124                               │
00:02:37 #22889 [Verbose] > │                 let v128 : float = v113 + v125                               │
00:02:37 #22890 [Verbose] > │                 let v129 : (unit -> UH1) = closure135(v114, v104)            │
00:02:37 #22891 [Verbose] > │                 UH1_0(v105, v106, v120, v121, v122, v116, v126, v127, v128,  │
00:02:37 #22892 [Verbose] > │ v129)                                                                        │
00:02:37 #22893 [Verbose] > │             | UH1_1 -> (* StreamNil *)                                       │
00:02:37 #22894 [Verbose] > │                 UH1_1                                                        │
00:02:37 #22895 [Verbose] > │         | UH3_1 -> (* StreamNil *)                                           │
00:02:37 #22896 [Verbose] > │             UH1_1                                                            │
00:02:37 #22897 [Verbose] > │     let v137 : (unit -> UH1) = closure133(v136)                              │
00:02:37 #22898 [Verbose] > │     let v138 : (unit -> UH1) = method3(v136, v137)                           │
00:02:37 #22899 [Verbose] > │     let v139 : UH1 = v138 ()                                                 │
00:02:37 #22900 [Verbose] > │     let v140 : UH3 = v0 v139                                                 │
00:02:37 #22901 [Verbose] > │     let v177 : UH3 =                                                         │
00:02:37 #22902 [Verbose] > │         match v2 with                                                        │
00:02:37 #22903 [Verbose] > │         | UH3_0(v141, v142, v143, v144, v145, v146, v147, v148, v149, v150)  │
00:02:37 #22904 [Verbose] > │ -> (* StreamCons *)                                                          │
00:02:37 #22905 [Verbose] > │             match v48 with                                                   │
00:02:37 #22906 [Verbose] > │             | UH3_0(v151, v152, v153, v154, v155, v156, v157, v158, v159,    │
00:02:37 #22907 [Verbose] > │ v160) -> (* StreamCons *)                                                    │
00:02:37 #22908 [Verbose] > │                 let v161 : float = v141 + v151                               │
00:02:37 #22909 [Verbose] > │                 let v162 : float = v142 + v152                               │
00:02:37 #22910 [Verbose] > │                 let v163 : float = v146 + v156                               │
00:02:37 #22911 [Verbose] > │                 let v164 : float = v143 + v153                               │
00:02:37 #22912 [Verbose] > │                 let v165 : float = v144 + v154                               │
00:02:37 #22913 [Verbose] > │                 let v166 : float = v145 + v155                               │
00:02:37 #22914 [Verbose] > │                 let v167 : float = v147 + v157                               │
00:02:37 #22915 [Verbose] > │                 let v168 : float = v148 + v158                               │
00:02:37 #22916 [Verbose] > │                 let v169 : float = v149 + v159                               │
00:02:37 #22917 [Verbose] > │                 let v170 : (unit -> UH3) = closure136(v160, v150)            │
00:02:37 #22918 [Verbose] > │                 UH3_0(v161, v162, v164, v165, v166, v163, v167, v168, v169,  │
00:02:37 #22919 [Verbose] > │ v170)                                                                        │
00:02:37 #22920 [Verbose] > │             | UH3_1 -> (* StreamNil *)                                       │
00:02:37 #22921 [Verbose] > │                 UH3_1                                                        │
00:02:37 #22922 [Verbose] > │         | UH3_1 -> (* StreamNil *)                                           │
00:02:37 #22923 [Verbose] > │             UH3_1                                                            │
00:02:37 #22924 [Verbose] > │     let v214 : UH3 =                                                         │
00:02:37 #22925 [Verbose] > │         match v177 with                                                      │
00:02:37 #22926 [Verbose] > │         | UH3_0(v178, v179, v180, v181, v182, v183, v184, v185, v186, v187)  │
00:02:37 #22927 [Verbose] > │ -> (* StreamCons *)                                                          │
00:02:37 #22928 [Verbose] > │             match v48 with                                                   │
00:02:37 #22929 [Verbose] > │             | UH3_0(v188, v189, v190, v191, v192, v193, v194, v195, v196,    │
00:02:37 #22930 [Verbose] > │ v197) -> (* StreamCons *)                                                    │
00:02:37 #22931 [Verbose] > │                 let v198 : float = v178 + v188                               │
00:02:37 #22932 [Verbose] > │                 let v199 : float = v179 + v189                               │
00:02:37 #22933 [Verbose] > │                 let v200 : float = v183 + v193                               │
00:02:37 #22934 [Verbose] > │                 let v201 : float = v180 + v190                               │
00:02:37 #22935 [Verbose] > │                 let v202 : float = v181 + v191                               │
00:02:37 #22936 [Verbose] > │                 let v203 : float = v182 + v192                               │
00:02:37 #22937 [Verbose] > │                 let v204 : float = v184 + v194                               │
00:02:37 #22938 [Verbose] > │                 let v205 : float = v185 + v195                               │
00:02:37 #22939 [Verbose] > │                 let v206 : float = v186 + v196                               │
00:02:37 #22940 [Verbose] > │                 let v207 : (unit -> UH3) = closure136(v197, v187)            │
00:02:37 #22941 [Verbose] > │                 UH3_0(v198, v199, v201, v202, v203, v200, v204, v205, v206,  │
00:02:37 #22942 [Verbose] > │ v207)                                                                        │
00:02:37 #22943 [Verbose] > │             | UH3_1 -> (* StreamNil *)                                       │
00:02:37 #22944 [Verbose] > │                 UH3_1                                                        │
00:02:37 #22945 [Verbose] > │         | UH3_1 -> (* StreamNil *)                                           │
00:02:37 #22946 [Verbose] > │             UH3_1                                                            │
00:02:37 #22947 [Verbose] > │     let v251 : UH3 =                                                         │
00:02:37 #22948 [Verbose] > │         match v214 with                                                      │
00:02:37 #22949 [Verbose] > │         | UH3_0(v215, v216, v217, v218, v219, v220, v221, v222, v223, v224)  │
00:02:37 #22950 [Verbose] > │ -> (* StreamCons *)                                                          │
00:02:37 #22951 [Verbose] > │             match v94 with                                                   │
00:02:37 #22952 [Verbose] > │             | UH3_0(v225, v226, v227, v228, v229, v230, v231, v232, v233,    │
00:02:37 #22953 [Verbose] > │ v234) -> (* StreamCons *)                                                    │
00:02:37 #22954 [Verbose] > │                 let v235 : float = v215 + v225                               │
00:02:37 #22955 [Verbose] > │                 let v236 : float = v216 + v226                               │
00:02:37 #22956 [Verbose] > │                 let v237 : float = v220 + v230                               │
00:02:37 #22957 [Verbose] > │                 let v238 : float = v217 + v227                               │
00:02:37 #22958 [Verbose] > │                 let v239 : float = v218 + v228                               │
00:02:37 #22959 [Verbose] > │                 let v240 : float = v219 + v229                               │
00:02:37 #22960 [Verbose] > │                 let v241 : float = v221 + v231                               │
00:02:37 #22961 [Verbose] > │                 let v242 : float = v222 + v232                               │
00:02:37 #22962 [Verbose] > │                 let v243 : float = v223 + v233                               │
00:02:37 #22963 [Verbose] > │                 let v244 : (unit -> UH3) = closure136(v234, v224)            │
00:02:37 #22964 [Verbose] > │                 UH3_0(v235, v236, v238, v239, v240, v237, v241, v242, v243,  │
00:02:37 #22965 [Verbose] > │ v244)                                                                        │
00:02:37 #22966 [Verbose] > │             | UH3_1 -> (* StreamNil *)                                       │
00:02:37 #22967 [Verbose] > │                 UH3_1                                                        │
00:02:37 #22968 [Verbose] > │         | UH3_1 -> (* StreamNil *)                                           │
00:02:37 #22969 [Verbose] > │             UH3_1                                                            │
00:02:37 #22970 [Verbose] > │     let v288 : UH3 =                                                         │
00:02:37 #22971 [Verbose] > │         match v251 with                                                      │
00:02:37 #22972 [Verbose] > │         | UH3_0(v252, v253, v254, v255, v256, v257, v258, v259, v260, v261)  │
00:02:37 #22973 [Verbose] > │ -> (* StreamCons *)                                                          │
00:02:37 #22974 [Verbose] > │             match v94 with                                                   │
00:02:37 #22975 [Verbose] > │             | UH3_0(v262, v263, v264, v265, v266, v267, v268, v269, v270,    │
00:02:37 #22976 [Verbose] > │ v271) -> (* StreamCons *)                                                    │
00:02:37 #22977 [Verbose] > │                 let v272 : float = v252 + v262                               │
00:02:37 #22978 [Verbose] > │                 let v273 : float = v253 + v263                               │
00:02:37 #22979 [Verbose] > │                 let v274 : float = v257 + v267                               │
00:02:37 #22980 [Verbose] > │                 let v275 : float = v254 + v264                               │
00:02:37 #22981 [Verbose] > │                 let v276 : float = v255 + v265                               │
00:02:37 #22982 [Verbose] > │                 let v277 : float = v256 + v266                               │
00:02:37 #22983 [Verbose] > │                 let v278 : float = v258 + v268                               │
00:02:37 #22984 [Verbose] > │                 let v279 : float = v259 + v269                               │
00:02:37 #22985 [Verbose] > │                 let v280 : float = v260 + v270                               │
00:02:37 #22986 [Verbose] > │                 let v281 : (unit -> UH3) = closure136(v271, v261)            │
00:02:37 #22987 [Verbose] > │                 UH3_0(v272, v273, v275, v276, v277, v274, v278, v279, v280,  │
00:02:37 #22988 [Verbose] > │ v281)                                                                        │
00:02:37 #22989 [Verbose] > │             | UH3_1 -> (* StreamNil *)                                       │
00:02:37 #22990 [Verbose] > │                 UH3_1                                                        │
00:02:37 #22991 [Verbose] > │         | UH3_1 -> (* StreamNil *)                                           │
00:02:37 #22992 [Verbose] > │             UH3_1                                                            │
00:02:37 #22993 [Verbose] > │     let v325 : UH3 =                                                         │
00:02:37 #22994 [Verbose] > │         match v288 with                                                      │
00:02:37 #22995 [Verbose] > │         | UH3_0(v289, v290, v291, v292, v293, v294, v295, v296, v297, v298)  │
00:02:37 #22996 [Verbose] > │ -> (* StreamCons *)                                                          │
00:02:37 #22997 [Verbose] > │             match v140 with                                                  │
00:02:37 #22998 [Verbose] > │             | UH3_0(v299, v300, v301, v302, v303, v304, v305, v306, v307,    │
00:02:37 #22999 [Verbose] > │ v308) -> (* StreamCons *)                                                    │
00:02:37 #23000 [Verbose] > │                 let v309 : float = v289 + v299                               │
00:02:37 #23001 [Verbose] > │                 let v310 : float = v290 + v300                               │
00:02:37 #23002 [Verbose] > │                 let v311 : float = v294 + v304                               │
00:02:37 #23003 [Verbose] > │                 let v312 : float = v291 + v301                               │
00:02:37 #23004 [Verbose] > │                 let v313 : float = v292 + v302                               │
00:02:37 #23005 [Verbose] > │                 let v314 : float = v293 + v303                               │
00:02:37 #23006 [Verbose] > │                 let v315 : float = v295 + v305                               │
00:02:37 #23007 [Verbose] > │                 let v316 : float = v296 + v306                               │
00:02:37 #23008 [Verbose] > │                 let v317 : float = v297 + v307                               │
00:02:37 #23009 [Verbose] > │                 let v318 : (unit -> UH3) = closure136(v308, v298)            │
00:02:37 #23010 [Verbose] > │                 UH3_0(v309, v310, v312, v313, v314, v311, v315, v316, v317,  │
00:02:37 #23011 [Verbose] > │ v318)                                                                        │
00:02:37 #23012 [Verbose] > │             | UH3_1 -> (* StreamNil *)                                       │
00:02:37 #23013 [Verbose] > │                 UH3_1                                                        │
00:02:37 #23014 [Verbose] > │         | UH3_1 -> (* StreamNil *)                                           │
00:02:37 #23015 [Verbose] > │             UH3_1                                                            │
00:02:37 #23016 [Verbose] > │     let v367 : UH1 =                                                         │
00:02:37 #23017 [Verbose] > │         match v325 with                                                      │
00:02:37 #23018 [Verbose] > │         | UH3_0(v326, v327, v328, v329, v330, v331, v332, v333, v334, v335)  │
00:02:37 #23019 [Verbose] > │ -> (* StreamCons *)                                                          │
00:02:37 #23020 [Verbose] > │             match v1 with                                                    │
00:02:37 #23021 [Verbose] > │             | UH1_0(v336, v337, v338, v339, v340, v341, v342, v343, v344,    │
00:02:37 #23022 [Verbose] > │ v345) -> (* StreamCons *)                                                    │
00:02:37 #23023 [Verbose] > │                 let v346 : float = v331 * 4.166666666666667E-06              │
00:02:37 #23024 [Verbose] > │                 let v347 : float = v341 + v346                               │
00:02:37 #23025 [Verbose] > │                 let v348 : float = 4.166666666666667E-06 * v328              │
00:02:37 #23026 [Verbose] > │                 let v349 : float = 4.166666666666667E-06 * v329              │
00:02:37 #23027 [Verbose] > │                 let v350 : float = 4.166666666666667E-06 * v330              │
00:02:37 #23028 [Verbose] > │                 let v351 : float = v338 + v348                               │
00:02:37 #23029 [Verbose] > │                 let v352 : float = v339 + v349                               │
00:02:37 #23030 [Verbose] > │                 let v353 : float = v340 + v350                               │
00:02:37 #23031 [Verbose] > │                 let v354 : float = 4.166666666666667E-06 * v332              │
00:02:37 #23032 [Verbose] > │                 let v355 : float = 4.166666666666667E-06 * v333              │
00:02:37 #23033 [Verbose] > │                 let v356 : float = 4.166666666666667E-06 * v334              │
00:02:37 #23034 [Verbose] > │                 let v357 : float = v342 + v354                               │
00:02:37 #23035 [Verbose] > │                 let v358 : float = v343 + v355                               │
00:02:37 #23036 [Verbose] > │                 let v359 : float = v344 + v356                               │
00:02:37 #23037 [Verbose] > │                 let v360 : (unit -> UH1) = closure137(v345, v335)            │
00:02:37 #23038 [Verbose] > │                 UH1_0(v336, v337, v351, v352, v353, v347, v357, v358, v359,  │
00:02:37 #23039 [Verbose] > │ v360)                                                                        │
00:02:37 #23040 [Verbose] > │             | UH1_1 -> (* StreamNil *)                                       │
00:02:37 #23041 [Verbose] > │                 UH1_1                                                        │
00:02:37 #23042 [Verbose] > │         | UH3_1 -> (* StreamNil *)                                           │
00:02:37 #23043 [Verbose] > │             UH1_1                                                            │
00:02:37 #23044 [Verbose] > │     let v368 : (unit -> UH1) = closure133(v367)                              │
00:02:37 #23045 [Verbose] > │     let v369 : (unit -> UH1) = method3(v367, v368)                           │
00:02:37 #23046 [Verbose] > │     let v370 : UH1 = v369 ()                                                 │
00:02:37 #23047 [Verbose] > │     v370                                                                     │
00:02:37 #23048 [Verbose] > │ and closure130 () (v0 : (UH1 -> UH3)) : (UH1 -> UH1) =                       │
00:02:37 #23049 [Verbose] > │     closure131(v0)                                                           │
00:02:37 #23050 [Verbose] > │ and method2 () : ((UH1 -> UH3) -> (UH1 -> UH1)) =                            │
00:02:37 #23051 [Verbose] > │     closure130()                                                             │
00:02:37 #23052 [Verbose] > │ and closure138 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4 │
00:02:37 #23053 [Verbose] > │ : float, v5 : float, v6 : float, v7 : float, v8 : float) : struct (float *   │
00:02:37 #23054 [Verbose] > │ float * float) =                                                             │
00:02:37 #23055 [Verbose] > │     let v9 : float = v2 * v2                                                 │
00:02:37 #23056 [Verbose] > │     let v10 : float = v3 * v3                                                │
00:02:37 #23057 [Verbose] > │     let v11 : float = v9 + v10                                               │
00:02:37 #23058 [Verbose] > │     let v12 : float = v4 * v4                                                │
00:02:37 #23059 [Verbose] > │     let v13 : float = v11 + v12                                              │
00:02:37 #23060 [Verbose] > │     let v14 : float = sqrt v13                                               │
00:02:37 #23061 [Verbose] > │     let v15 : float = -5384.0 * v14                                          │
00:02:37 #23062 [Verbose] > │     let v16 : float = v15 * v2                                               │
00:02:37 #23063 [Verbose] > │     let v17 : float = v15 * v3                                               │
00:02:37 #23064 [Verbose] > │     let v18 : float = v15 * v4                                               │
00:02:37 #23065 [Verbose] > │     let v19 : float = v16 / v14                                              │
00:02:37 #23066 [Verbose] > │     let v20 : float = v17 / v14                                              │
00:02:37 #23067 [Verbose] > │     let v21 : float = v18 / v14                                              │
00:02:37 #23068 [Verbose] > │     struct (v19, v20, v21)                                                   │
00:02:37 #23069 [Verbose] > │ and closure139 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4 │
00:02:37 #23070 [Verbose] > │ : float, v5 : float, v6 : float, v7 : float, v8 : float) : struct (float *   │
00:02:37 #23071 [Verbose] > │ float * float) =                                                             │
00:02:37 #23072 [Verbose] > │     let v9 : float = v2 + -0.65                                              │
00:02:37 #23073 [Verbose] > │     let v10 : float = v9 * v9                                                │
00:02:37 #23074 [Verbose] > │     let v11 : float = v3 * v3                                                │
00:02:37 #23075 [Verbose] > │     let v12 : float = v10 + v11                                              │
00:02:37 #23076 [Verbose] > │     let v13 : float = v4 * v4                                                │
00:02:37 #23077 [Verbose] > │     let v14 : float = v12 + v13                                              │
00:02:37 #23078 [Verbose] > │     let v15 : float = sqrt v14                                               │
00:02:37 #23079 [Verbose] > │     let v16 : float = -5384.0 * v15                                          │
00:02:37 #23080 [Verbose] > │     let v17 : float = v16 * v9                                               │
00:02:37 #23081 [Verbose] > │     let v18 : float = v16 * v3                                               │
00:02:37 #23082 [Verbose] > │     let v19 : float = v16 * v4                                               │
00:02:37 #23083 [Verbose] > │     let v20 : float = v17 / v15                                              │
00:02:37 #23084 [Verbose] > │     let v21 : float = v18 / v15                                              │
00:02:37 #23085 [Verbose] > │     let v22 : float = v19 / v15                                              │
00:02:37 #23086 [Verbose] > │     struct (v20, v21, v22)                                                   │
00:02:37 #23087 [Verbose] > │ and closure141 (v0 : float, v1 : float, v2 : float, v3 : float, v4 : float,  │
00:02:37 #23088 [Verbose] > │ v5 : float, v6 : float, v7 : float, v8 : float) struct (v9 : float, v10 :    │
00:02:37 #23089 [Verbose] > │ float, v11 : float, v12 : float, v13 : float, v14 : float, v15 : float, v16  │
00:02:37 #23090 [Verbose] > │ : float, v17 : float) : struct (float * float * float) =                     │
00:02:37 #23091 [Verbose] > │     let v18 : float = -1.0 * v2                                              │
00:02:37 #23092 [Verbose] > │     let v19 : float = -1.0 * v3                                              │
00:02:37 #23093 [Verbose] > │     let v20 : float = -1.0 * v4                                              │
00:02:37 #23094 [Verbose] > │     let v21 : float = v11 + v18                                              │
00:02:37 #23095 [Verbose] > │     let v22 : float = v12 + v19                                              │
00:02:37 #23096 [Verbose] > │     let v23 : float = v13 + v20                                              │
00:02:37 #23097 [Verbose] > │     let v24 : float = v21 * v21                                              │
00:02:37 #23098 [Verbose] > │     let v25 : float = v22 * v22                                              │
00:02:37 #23099 [Verbose] > │     let v26 : float = v24 + v25                                              │
00:02:37 #23100 [Verbose] > │     let v27 : float = v23 * v23                                              │
00:02:37 #23101 [Verbose] > │     let v28 : float = v26 + v27                                              │
00:02:37 #23102 [Verbose] > │     let v29 : float = sqrt v28                                               │
00:02:37 #23103 [Verbose] > │     let v30 : float = -5384.0 * v29                                          │
00:02:37 #23104 [Verbose] > │     let v31 : float = v30 * v21                                              │
00:02:37 #23105 [Verbose] > │     let v32 : float = v30 * v22                                              │
00:02:37 #23106 [Verbose] > │     let v33 : float = v30 * v23                                              │
00:02:37 #23107 [Verbose] > │     let v34 : float = v31 / v29                                              │
00:02:37 #23108 [Verbose] > │     let v35 : float = v32 / v29                                              │
00:02:37 #23109 [Verbose] > │     let v36 : float = v33 / v29                                              │
00:02:37 #23110 [Verbose] > │     struct (v34, v35, v36)                                                   │
00:02:37 #23111 [Verbose] > │ and closure140 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4 │
00:02:37 #23112 [Verbose] > │ : float, v5 : float, v6 : float, v7 : float, v8 : float) : (struct (float *  │
00:02:37 #23113 [Verbose] > │ float * float * float * float * float * float * float * float) -> struct     │
00:02:37 #23114 [Verbose] > │ (float * float * float)) =                                                   │
00:02:37 #23115 [Verbose] > │     closure141(v0, v1, v2, v3, v4, v5, v6, v7, v8)                           │
00:02:37 #23116 [Verbose] > │ and method4 () : UH4 =                                                       │
00:02:37 #23117 [Verbose] > │     let v0 : (struct (float * float * float * float * float * float * float  │
00:02:37 #23118 [Verbose] > │ * float * float) -> struct (float * float * float)) = closure138()           │
00:02:37 #23119 [Verbose] > │     let v1 : US1 = US1_0(0, v0)                                              │
00:02:37 #23120 [Verbose] > │     let v2 : (struct (float * float * float * float * float * float * float  │
00:02:37 #23121 [Verbose] > │ * float * float) -> struct (float * float * float)) = closure139()           │
00:02:37 #23122 [Verbose] > │     let v3 : US1 = US1_0(63, v2)                                             │
00:02:37 #23123 [Verbose] > │     let v4 : (struct (float * float * float * float * float * float * float  │
00:02:37 #23124 [Verbose] > │ * float * float) -> (struct (float * float * float * float * float * float * │
00:02:37 #23125 [Verbose] > │ float * float * float) -> struct (float * float * float))) = closure140()    │
00:02:37 #23126 [Verbose] > │     let v5 : US1 = US1_1(0, 1, v4)                                           │
00:02:37 #23127 [Verbose] > │     let v6 : US1 = US1_1(1, 2, v4)                                           │
00:02:37 #23128 [Verbose] > │     let v7 : US1 = US1_1(2, 3, v4)                                           │
00:02:37 #23129 [Verbose] > │     let v8 : US1 = US1_1(3, 4, v4)                                           │
00:02:37 #23130 [Verbose] > │     let v9 : US1 = US1_1(4, 5, v4)                                           │
00:02:37 #23131 [Verbose] > │     let v10 : US1 = US1_1(5, 6, v4)                                          │
00:02:37 #23132 [Verbose] > │     let v11 : US1 = US1_1(6, 7, v4)                                          │
00:02:37 #23133 [Verbose] > │     let v12 : US1 = US1_1(7, 8, v4)                                          │
00:02:37 #23134 [Verbose] > │     let v13 : US1 = US1_1(8, 9, v4)                                          │
00:02:37 #23135 [Verbose] > │     let v14 : US1 = US1_1(9, 10, v4)                                         │
00:02:37 #23136 [Verbose] > │     let v15 : US1 = US1_1(10, 11, v4)                                        │
00:02:37 #23137 [Verbose] > │     let v16 : US1 = US1_1(11, 12, v4)                                        │
00:02:37 #23138 [Verbose] > │     let v17 : US1 = US1_1(12, 13, v4)                                        │
00:02:37 #23139 [Verbose] > │     let v18 : US1 = US1_1(13, 14, v4)                                        │
00:02:37 #23140 [Verbose] > │     let v19 : US1 = US1_1(14, 15, v4)                                        │
00:02:37 #23141 [Verbose] > │     let v20 : US1 = US1_1(15, 16, v4)                                        │
00:02:37 #23142 [Verbose] > │     let v21 : US1 = US1_1(16, 17, v4)                                        │
00:02:37 #23143 [Verbose] > │     let v22 : US1 = US1_1(17, 18, v4)                                        │
00:02:37 #23144 [Verbose] > │     let v23 : US1 = US1_1(18, 19, v4)                                        │
00:02:37 #23145 [Verbose] > │     let v24 : US1 = US1_1(19, 20, v4)                                        │
00:02:37 #23146 [Verbose] > │     let v25 : US1 = US1_1(20, 21, v4)                                        │
00:02:37 #23147 [Verbose] > │     let v26 : US1 = US1_1(21, 22, v4)                                        │
00:02:37 #23148 [Verbose] > │     let v27 : US1 = US1_1(22, 23, v4)                                        │
00:02:37 #23149 [Verbose] > │     let v28 : US1 = US1_1(23, 24, v4)                                        │
00:02:37 #23150 [Verbose] > │     let v29 : US1 = US1_1(24, 25, v4)                                        │
00:02:37 #23151 [Verbose] > │     let v30 : US1 = US1_1(25, 26, v4)                                        │
00:02:37 #23152 [Verbose] > │     let v31 : US1 = US1_1(26, 27, v4)                                        │
00:02:37 #23153 [Verbose] > │     let v32 : US1 = US1_1(27, 28, v4)                                        │
00:02:37 #23154 [Verbose] > │     let v33 : US1 = US1_1(28, 29, v4)                                        │
00:02:37 #23155 [Verbose] > │     let v34 : US1 = US1_1(29, 30, v4)                                        │
00:02:37 #23156 [Verbose] > │     let v35 : US1 = US1_1(30, 31, v4)                                        │
00:02:37 #23157 [Verbose] > │     let v36 : US1 = US1_1(31, 32, v4)                                        │
00:02:37 #23158 [Verbose] > │     let v37 : US1 = US1_1(32, 33, v4)                                        │
00:02:37 #23159 [Verbose] > │     let v38 : US1 = US1_1(33, 34, v4)                                        │
00:02:37 #23160 [Verbose] > │     let v39 : US1 = US1_1(34, 35, v4)                                        │
00:02:37 #23161 [Verbose] > │     let v40 : US1 = US1_1(35, 36, v4)                                        │
00:02:37 #23162 [Verbose] > │     let v41 : US1 = US1_1(36, 37, v4)                                        │
00:02:37 #23163 [Verbose] > │     let v42 : US1 = US1_1(37, 38, v4)                                        │
00:02:37 #23164 [Verbose] > │     let v43 : US1 = US1_1(38, 39, v4)                                        │
00:02:37 #23165 [Verbose] > │     let v44 : US1 = US1_1(39, 40, v4)                                        │
00:02:37 #23166 [Verbose] > │     let v45 : US1 = US1_1(40, 41, v4)                                        │
00:02:37 #23167 [Verbose] > │     let v46 : US1 = US1_1(41, 42, v4)                                        │
00:02:37 #23168 [Verbose] > │     let v47 : US1 = US1_1(42, 43, v4)                                        │
00:02:37 #23169 [Verbose] > │     let v48 : US1 = US1_1(43, 44, v4)                                        │
00:02:37 #23170 [Verbose] > │     let v49 : US1 = US1_1(44, 45, v4)                                        │
00:02:37 #23171 [Verbose] > │     let v50 : US1 = US1_1(45, 46, v4)                                        │
00:02:37 #23172 [Verbose] > │     let v51 : US1 = US1_1(46, 47, v4)                                        │
00:02:37 #23173 [Verbose] > │     let v52 : US1 = US1_1(47, 48, v4)                                        │
00:02:37 #23174 [Verbose] > │     let v53 : US1 = US1_1(48, 49, v4)                                        │
00:02:37 #23175 [Verbose] > │     let v54 : US1 = US1_1(49, 50, v4)                                        │
00:02:37 #23176 [Verbose] > │     let v55 : US1 = US1_1(50, 51, v4)                                        │
00:02:37 #23177 [Verbose] > │     let v56 : US1 = US1_1(51, 52, v4)                                        │
00:02:37 #23178 [Verbose] > │     let v57 : US1 = US1_1(52, 53, v4)                                        │
00:02:37 #23179 [Verbose] > │     let v58 : US1 = US1_1(53, 54, v4)                                        │
00:02:37 #23180 [Verbose] > │     let v59 : US1 = US1_1(54, 55, v4)                                        │
00:02:37 #23181 [Verbose] > │     let v60 : US1 = US1_1(55, 56, v4)                                        │
00:02:37 #23182 [Verbose] > │     let v61 : US1 = US1_1(56, 57, v4)                                        │
00:02:37 #23183 [Verbose] > │     let v62 : US1 = US1_1(57, 58, v4)                                        │
00:02:37 #23184 [Verbose] > │     let v63 : US1 = US1_1(58, 59, v4)                                        │
00:02:37 #23185 [Verbose] > │     let v64 : US1 = US1_1(59, 60, v4)                                        │
00:02:37 #23186 [Verbose] > │     let v65 : UH4 = UH4_1                                                    │
00:02:37 #23187 [Verbose] > │     let v66 : UH4 = UH4_0(v64, v65)                                          │
00:02:37 #23188 [Verbose] > │     let v67 : UH4 = UH4_0(v63, v66)                                          │
00:02:37 #23189 [Verbose] > │     let v68 : UH4 = UH4_0(v62, v67)                                          │
00:02:37 #23190 [Verbose] > │     let v69 : UH4 = UH4_0(v61, v68)                                          │
00:02:37 #23191 [Verbose] > │     let v70 : UH4 = UH4_0(v60, v69)                                          │
00:02:37 #23192 [Verbose] > │     let v71 : UH4 = UH4_0(v59, v70)                                          │
00:02:37 #23193 [Verbose] > │     let v72 : UH4 = UH4_0(v58, v71)                                          │
00:02:37 #23194 [Verbose] > │     let v73 : UH4 = UH4_0(v57, v72)                                          │
00:02:37 #23195 [Verbose] > │     let v74 : UH4 = UH4_0(v56, v73)                                          │
00:02:37 #23196 [Verbose] > │     let v75 : UH4 = UH4_0(v55, v74)                                          │
00:02:37 #23197 [Verbose] > │     let v76 : UH4 = UH4_0(v54, v75)                                          │
00:02:37 #23198 [Verbose] > │     let v77 : UH4 = UH4_0(v53, v76)                                          │
00:02:37 #23199 [Verbose] > │     let v78 : UH4 = UH4_0(v52, v77)                                          │
00:02:37 #23200 [Verbose] > │     let v79 : UH4 = UH4_0(v51, v78)                                          │
00:02:37 #23201 [Verbose] > │     let v80 : UH4 = UH4_0(v50, v79)                                          │
00:02:37 #23202 [Verbose] > │     let v81 : UH4 = UH4_0(v49, v80)                                          │
00:02:37 #23203 [Verbose] > │     let v82 : UH4 = UH4_0(v48, v81)                                          │
00:02:37 #23204 [Verbose] > │     let v83 : UH4 = UH4_0(v47, v82)                                          │
00:02:37 #23205 [Verbose] > │     let v84 : UH4 = UH4_0(v46, v83)                                          │
00:02:37 #23206 [Verbose] > │     let v85 : UH4 = UH4_0(v45, v84)                                          │
00:02:37 #23207 [Verbose] > │     let v86 : UH4 = UH4_0(v44, v85)                                          │
00:02:37 #23208 [Verbose] > │     let v87 : UH4 = UH4_0(v43, v86)                                          │
00:02:37 #23209 [Verbose] > │     let v88 : UH4 = UH4_0(v42, v87)                                          │
00:02:37 #23210 [Verbose] > │     let v89 : UH4 = UH4_0(v41, v88)                                          │
00:02:37 #23211 [Verbose] > │     let v90 : UH4 = UH4_0(v40, v89)                                          │
00:02:37 #23212 [Verbose] > │     let v91 : UH4 = UH4_0(v39, v90)                                          │
00:02:37 #23213 [Verbose] > │     let v92 : UH4 = UH4_0(v38, v91)                                          │
00:02:37 #23214 [Verbose] > │     let v93 : UH4 = UH4_0(v37, v92)                                          │
00:02:37 #23215 [Verbose] > │     let v94 : UH4 = UH4_0(v36, v93)                                          │
00:02:37 #23216 [Verbose] > │     let v95 : UH4 = UH4_0(v35, v94)                                          │
00:02:37 #23217 [Verbose] > │     let v96 : UH4 = UH4_0(v34, v95)                                          │
00:02:37 #23218 [Verbose] > │     let v97 : UH4 = UH4_0(v33, v96)                                          │
00:02:37 #23219 [Verbose] > │     let v98 : UH4 = UH4_0(v32, v97)                                          │
00:02:37 #23220 [Verbose] > │     let v99 : UH4 = UH4_0(v31, v98)                                          │
00:02:37 #23221 [Verbose] > │     let v100 : UH4 = UH4_0(v30, v99)                                         │
00:02:37 #23222 [Verbose] > │     let v101 : UH4 = UH4_0(v29, v100)                                        │
00:02:37 #23223 [Verbose] > │     let v102 : UH4 = UH4_0(v28, v101)                                        │
00:02:37 #23224 [Verbose] > │     let v103 : UH4 = UH4_0(v27, v102)                                        │
00:02:37 #23225 [Verbose] > │     let v104 : UH4 = UH4_0(v26, v103)                                        │
00:02:37 #23226 [Verbose] > │     let v105 : UH4 = UH4_0(v25, v104)                                        │
00:02:37 #23227 [Verbose] > │     let v106 : UH4 = UH4_0(v24, v105)                                        │
00:02:37 #23228 [Verbose] > │     let v107 : UH4 = UH4_0(v23, v106)                                        │
00:02:37 #23229 [Verbose] > │     let v108 : UH4 = UH4_0(v22, v107)                                        │
00:02:37 #23230 [Verbose] > │     let v109 : UH4 = UH4_0(v21, v108)                                        │
00:02:37 #23231 [Verbose] > │     let v110 : UH4 = UH4_0(v20, v109)                                        │
00:02:37 #23232 [Verbose] > │     let v111 : UH4 = UH4_0(v19, v110)                                        │
00:02:37 #23233 [Verbose] > │     let v112 : UH4 = UH4_0(v18, v111)                                        │
00:02:37 #23234 [Verbose] > │     let v113 : UH4 = UH4_0(v17, v112)                                        │
00:02:37 #23235 [Verbose] > │     let v114 : UH4 = UH4_0(v16, v113)                                        │
00:02:37 #23236 [Verbose] > │     let v115 : UH4 = UH4_0(v15, v114)                                        │
00:02:37 #23237 [Verbose] > │     let v116 : UH4 = UH4_0(v14, v115)                                        │
00:02:37 #23238 [Verbose] > │     let v117 : UH4 = UH4_0(v13, v116)                                        │
00:02:37 #23239 [Verbose] > │     let v118 : UH4 = UH4_0(v12, v117)                                        │
00:02:37 #23240 [Verbose] > │     let v119 : UH4 = UH4_0(v11, v118)                                        │
00:02:37 #23241 [Verbose] > │     let v120 : UH4 = UH4_0(v10, v119)                                        │
00:02:37 #23242 [Verbose] > │     let v121 : UH4 = UH4_0(v9, v120)                                         │
00:02:37 #23243 [Verbose] > │     let v122 : UH4 = UH4_0(v8, v121)                                         │
00:02:37 #23244 [Verbose] > │     let v123 : UH4 = UH4_0(v7, v122)                                         │
00:02:37 #23245 [Verbose] > │     let v124 : UH4 = UH4_0(v6, v123)                                         │
00:02:37 #23246 [Verbose] > │     let v125 : UH4 = UH4_0(v5, v124)                                         │
00:02:37 #23247 [Verbose] > │     let v126 : UH4 = UH4_0(v3, v125)                                         │
00:02:37 #23248 [Verbose] > │     UH4_0(v1, v126)                                                          │
00:02:37 #23249 [Verbose] > │ and closure143 (v0 : UH5) () : UH5 =                                         │
00:02:37 #23250 [Verbose] > │     v0                                                                       │
00:02:37 #23251 [Verbose] > │ and method5 (v0 : UH1, v1 : UH5, v2 : int32) : struct (UH5 * int32) =        │
00:02:37 #23252 [Verbose] > │     match v0 with                                                            │
00:02:37 #23253 [Verbose] > │     | UH1_0(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) -> (* StreamCons *)   │
00:02:37 #23254 [Verbose] > │         let v13 : int32 = v2 + 1                                             │
00:02:37 #23255 [Verbose] > │         let v14 : UH1 = v12 ()                                               │
00:02:37 #23256 [Verbose] > │         let v15 : (unit -> UH5) = closure143(v1)                             │
00:02:37 #23257 [Verbose] > │         let v16 : UH5 = UH5_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v15) │
00:02:37 #23258 [Verbose] > │         method5(v14, v16, v13)                                               │
00:02:37 #23259 [Verbose] > │     | UH1_1 -> (* StreamNil *)                                               │
00:02:37 #23260 [Verbose] > │         struct (v1, v2)                                                      │
00:02:37 #23261 [Verbose] > │ and closure144 (v0 : UH5) () : UH5 =                                         │
00:02:37 #23262 [Verbose] > │     v0                                                                       │
00:02:37 #23263 [Verbose] > │ and method6 (v0 : UH5, v1 : UH5) : UH5 =                                     │
00:02:37 #23264 [Verbose] > │     match v0 with                                                            │
00:02:37 #23265 [Verbose] > │     | UH5_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) -> (* StreamCons  │
00:02:37 #23266 [Verbose] > │ *)                                                                           │
00:02:37 #23267 [Verbose] > │         let v13 : UH5 = v12 ()                                               │
00:02:37 #23268 [Verbose] > │         let v14 : (unit -> UH5) = closure144(v1)                             │
00:02:37 #23269 [Verbose] > │         let v15 : UH5 = UH5_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v14) │
00:02:37 #23270 [Verbose] > │         method6(v13, v15)                                                    │
00:02:37 #23271 [Verbose] > │     | UH5_1 -> (* StreamNil *)                                               │
00:02:37 #23272 [Verbose] > │         v1                                                                   │
00:02:37 #23273 [Verbose] > │ and closure145 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4 │
00:02:37 #23274 [Verbose] > │ : float, v5 : float, v6 : float, v7 : float, v8 : float) : struct (float *   │
00:02:37 #23275 [Verbose] > │ float * float) =                                                             │
00:02:37 #23276 [Verbose] > │     struct (0.0, 0.0, 0.0)                                                   │
00:02:37 #23277 [Verbose] > │ and method9 (v0 : int32, v1 : UH1) : US3 =                                   │
00:02:37 #23278 [Verbose] > │     match v1 with                                                            │
00:02:37 #23279 [Verbose] > │     | UH1_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* StreamCons *)    │
00:02:37 #23280 [Verbose] > │         let v12 : bool = v0 <= 0                                             │
00:02:37 #23281 [Verbose] > │         if v12 then                                                          │
00:02:37 #23282 [Verbose] > │             US3_1(v2, v3, v4, v5, v6, v7, v8, v9, v10)                       │
00:02:37 #23283 [Verbose] > │         else                                                                 │
00:02:37 #23284 [Verbose] > │             let v14 : int32 = v0 - 1                                         │
00:02:37 #23285 [Verbose] > │             let v15 : UH1 = v11 ()                                           │
00:02:37 #23286 [Verbose] > │             method9(v14, v15)                                                │
00:02:37 #23287 [Verbose] > │     | UH1_1 -> (* StreamNil *)                                               │
00:02:37 #23288 [Verbose] > │         US3_0                                                                │
00:02:37 #23289 [Verbose] > │ and closure146 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4 │
00:02:37 #23290 [Verbose] > │ : float, v5 : float, v6 : float, v7 : float, v8 : float) : struct (float *   │
00:02:37 #23291 [Verbose] > │ float * float) =                                                             │
00:02:37 #23292 [Verbose] > │     struct (0.0, 0.0, 0.0)                                                   │
00:02:37 #23293 [Verbose] > │ and method8 (v0 : int32, v1 : UH1, v2 : UH4, v3 : UH6) : UH6 =               │
00:02:37 #23294 [Verbose] > │     match v2 with                                                            │
00:02:37 #23295 [Verbose] > │     | UH4_0(v4, v5) -> (* Cons *)                                            │
00:02:37 #23296 [Verbose] > │         let v6 : UH6 = method8(v0, v1, v5, v3)                               │
00:02:37 #23297 [Verbose] > │         let v55 : (struct (float * float * float * float * float * float *   │
00:02:37 #23298 [Verbose] > │ float * float * float) -> struct (float * float * float)) =                  │
00:02:37 #23299 [Verbose] > │             match v4 with                                                    │
00:02:37 #23300 [Verbose] > │             | US1_0(v7, v8) -> (* ExternalForce *)                           │
00:02:37 #23301 [Verbose] > │                 let v9 : bool = v0 = v7                                      │
00:02:37 #23302 [Verbose] > │                 if v9 then                                                   │
00:02:37 #23303 [Verbose] > │                     v8                                                       │
00:02:37 #23304 [Verbose] > │                 else                                                         │
00:02:37 #23305 [Verbose] > │                     closure145()                                             │
00:02:37 #23306 [Verbose] > │             | US1_1(v12, v13, v14) -> (* InternalForce *)                    │
00:02:37 #23307 [Verbose] > │                 let v15 : bool = v0 = v12                                    │
00:02:37 #23308 [Verbose] > │                 let v49 : US2 =                                              │
00:02:37 #23309 [Verbose] > │                     if v15 then                                              │
00:02:37 #23310 [Verbose] > │                         let v16 : US3 = method9(v13, v1)                     │
00:02:37 #23311 [Verbose] > │                         match v16 with                                       │
00:02:37 #23312 [Verbose] > │                         | US3_0 -> (* None *)                                │
00:02:37 #23313 [Verbose] > │                             US2_0                                            │
00:02:37 #23314 [Verbose] > │                         | US3_1(v17, v18, v19, v20, v21, v22, v23, v24, v25) │
00:02:37 #23315 [Verbose] > │ -> (* Some *)                                                                │
00:02:37 #23316 [Verbose] > │                             let v26 : (struct (float * float * float * float │
00:02:37 #23317 [Verbose] > │ * float * float * float * float * float) -> struct (float * float * float))  │
00:02:37 #23318 [Verbose] > │ = v14 struct (v17, v18, v19, v20, v21, v22, v23, v24, v25)                   │
00:02:37 #23319 [Verbose] > │                             US2_1(v26)                                       │
00:02:37 #23320 [Verbose] > │                     else                                                     │
00:02:37 #23321 [Verbose] > │                         let v31 : bool = v0 = v13                            │
00:02:37 #23322 [Verbose] > │                         if v31 then                                          │
00:02:37 #23323 [Verbose] > │                             let v32 : US3 = method9(v12, v1)                 │
00:02:37 #23324 [Verbose] > │                             match v32 with                                   │
00:02:37 #23325 [Verbose] > │                             | US3_0 -> (* None *)                            │
00:02:37 #23326 [Verbose] > │                                 US2_0                                        │
00:02:37 #23327 [Verbose] > │                             | US3_1(v33, v34, v35, v36, v37, v38, v39, v40,  │
00:02:37 #23328 [Verbose] > │ v41) -> (* Some *)                                                           │
00:02:37 #23329 [Verbose] > │                                 let v42 : (struct (float * float * float *   │
00:02:37 #23330 [Verbose] > │ float * float * float * float * float * float) -> struct (float * float *    │
00:02:37 #23331 [Verbose] > │ float)) = v14 struct (v33, v34, v35, v36, v37, v38, v39, v40, v41)           │
00:02:37 #23332 [Verbose] > │                                 US2_1(v42)                                   │
00:02:37 #23333 [Verbose] > │                         else                                                 │
00:02:37 #23334 [Verbose] > │                             US2_0                                            │
00:02:37 #23335 [Verbose] > │                 match v49 with                                               │
00:02:37 #23336 [Verbose] > │                 | US2_0 -> (* None *)                                        │
00:02:37 #23337 [Verbose] > │                     closure146()                                             │
00:02:37 #23338 [Verbose] > │                 | US2_1(v50) -> (* Some *)                                   │
00:02:37 #23339 [Verbose] > │                     v50                                                      │
00:02:37 #23340 [Verbose] > │         UH6_0(v55, v6)                                                       │
00:02:37 #23341 [Verbose] > │     | UH4_1 -> (* Nil *)                                                     │
00:02:37 #23342 [Verbose] > │         v3                                                                   │
00:02:37 #23343 [Verbose] > │ and method10 (v0 : float, v1 : float, v2 : float, v3 : float, v4 : float, v5 │
00:02:37 #23344 [Verbose] > │ : float, v6 : float, v7 : float, v8 : float, v9 : UH6, v10 : UH7) : UH7 =    │
00:02:37 #23345 [Verbose] > │     match v9 with                                                            │
00:02:37 #23346 [Verbose] > │     | UH6_0(v11, v12) -> (* Cons *)                                          │
00:02:37 #23347 [Verbose] > │         let v13 : UH7 = method10(v0, v1, v2, v3, v4, v5, v6, v7, v8, v12,    │
00:02:37 #23348 [Verbose] > │ v10)                                                                         │
00:02:37 #23349 [Verbose] > │         let struct (v14 : float, v15 : float, v16 : float) = v11 struct (v0, │
00:02:37 #23350 [Verbose] > │ v1, v2, v3, v4, v5, v6, v7, v8)                                              │
00:02:37 #23351 [Verbose] > │         UH7_0(v14, v15, v16, v13)                                            │
00:02:37 #23352 [Verbose] > │     | UH6_1 -> (* Nil *)                                                     │
00:02:37 #23353 [Verbose] > │         v10                                                                  │
00:02:37 #23354 [Verbose] > │ and method11 (v0 : UH7, v1 : float, v2 : float, v3 : float) : struct (float  │
00:02:37 #23355 [Verbose] > │ * float * float) =                                                           │
00:02:37 #23356 [Verbose] > │     match v0 with                                                            │
00:02:37 #23357 [Verbose] > │     | UH7_0(v4, v5, v6, v7) -> (* Cons *)                                    │
00:02:37 #23358 [Verbose] > │         let v8 : float = v1 + v4                                             │
00:02:37 #23359 [Verbose] > │         let v9 : float = v2 + v5                                             │
00:02:37 #23360 [Verbose] > │         let v10 : float = v3 + v6                                            │
00:02:37 #23361 [Verbose] > │         method11(v7, v8, v9, v10)                                            │
00:02:37 #23362 [Verbose] > │     | UH7_1 -> (* Nil *)                                                     │
00:02:37 #23363 [Verbose] > │         struct (v1, v2, v3)                                                  │
00:02:37 #23364 [Verbose] > │ and closure147 (v0 : UH3) () : UH3 =                                         │
00:02:37 #23365 [Verbose] > │     v0                                                                       │
00:02:37 #23366 [Verbose] > │ and method7 (v0 : UH4, v1 : UH1, v2 : UH5, v3 : UH3) : UH3 =                 │
00:02:37 #23367 [Verbose] > │     match v2 with                                                            │
00:02:37 #23368 [Verbose] > │     | UH5_0(v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14) -> (*           │
00:02:37 #23369 [Verbose] > │ StreamCons *)                                                                │
00:02:37 #23370 [Verbose] > │         let v15 : UH5 = v14 ()                                               │
00:02:37 #23371 [Verbose] > │         let v16 : UH3 = method7(v0, v1, v15, v3)                             │
00:02:37 #23372 [Verbose] > │         let v17 : UH6 = UH6_1                                                │
00:02:37 #23373 [Verbose] > │         let v18 : UH6 = method8(v4, v1, v0, v17)                             │
00:02:37 #23374 [Verbose] > │         let v19 : UH7 = UH7_1                                                │
00:02:37 #23375 [Verbose] > │         let v20 : UH7 = method10(v5, v6, v7, v8, v9, v10, v11, v12, v13,     │
00:02:37 #23376 [Verbose] > │ v18, v19)                                                                    │
00:02:37 #23377 [Verbose] > │         let v21 : float = 0.0                                                │
00:02:37 #23378 [Verbose] > │         let v22 : float = 0.0                                                │
00:02:37 #23379 [Verbose] > │         let v23 : float = 0.0                                                │
00:02:37 #23380 [Verbose] > │         let struct (v24 : float, v25 : float, v26 : float) = method11(v20,   │
00:02:37 #23381 [Verbose] > │ v21, v22, v23)                                                               │
00:02:37 #23382 [Verbose] > │         let v27 : float = v24 / v6                                           │
00:02:37 #23383 [Verbose] > │         let v28 : float = v25 / v6                                           │
00:02:37 #23384 [Verbose] > │         let v29 : float = v26 / v6                                           │
00:02:37 #23385 [Verbose] > │         let v30 : (unit -> UH3) = closure147(v16)                            │
00:02:37 #23386 [Verbose] > │         UH3_0(0.0, 0.0, v11, v12, v13, 1.0, v27, v28, v29, v30)              │
00:02:37 #23387 [Verbose] > │     | UH5_1 -> (* StreamNil *)                                               │
00:02:37 #23388 [Verbose] > │         v3                                                                   │
00:02:37 #23389 [Verbose] > │ and closure142 (v0 : UH4) (v1 : UH1) : UH3 =                                 │
00:02:37 #23390 [Verbose] > │     let v2 : UH5 = UH5_1                                                     │
00:02:37 #23391 [Verbose] > │     let v3 : int32 = 0                                                       │
00:02:37 #23392 [Verbose] > │     let struct (v4 : UH5, v5 : int32) = method5(v1, v2, v3)                  │
00:02:37 #23393 [Verbose] > │     let v6 : UH5 = UH5_1                                                     │
00:02:37 #23394 [Verbose] > │     let v7 : UH5 = method6(v4, v6)                                           │
00:02:37 #23395 [Verbose] > │     let v8 : UH3 = UH3_1                                                     │
00:02:37 #23396 [Verbose] > │     let v9 : UH3 = method7(v0, v1, v7, v8)                                   │
00:02:37 #23397 [Verbose] > │     v9                                                                       │
00:02:37 #23398 [Verbose] > │ and closure148 (v0 : (UH1 -> UH1), v1 : UH1, v2 : UH1) () : UH8 =            │
00:02:37 #23399 [Verbose] > │     let v3 : UH1 = v0 v2                                                     │
00:02:37 #23400 [Verbose] > │     let v4 : (unit -> UH8) = closure148(v0, v1, v3)                          │
00:02:37 #23401 [Verbose] > │     UH8_0(v2, v4)                                                            │
00:02:37 #23402 [Verbose] > │ and method12 (v0 : float, v1 : UH8) : US4 =                                  │
00:02:37 #23403 [Verbose] > │     match v1 with                                                            │
00:02:37 #23404 [Verbose] > │     | UH8_0(v2, v3) -> (* StreamCons *)                                      │
00:02:37 #23405 [Verbose] > │         let v4 : bool = v0 <= 0.0                                            │
00:02:37 #23406 [Verbose] > │         if v4 then                                                           │
00:02:37 #23407 [Verbose] > │             US4_1(v2)                                                        │
00:02:37 #23408 [Verbose] > │         else                                                                 │
00:02:37 #23409 [Verbose] > │             let v6 : float = v0 - 1.0                                        │
00:02:37 #23410 [Verbose] > │             let v7 : UH8 = v3 ()                                             │
00:02:37 #23411 [Verbose] > │             method12(v6, v7)                                                 │
00:02:37 #23412 [Verbose] > │     | UH8_1 -> (* StreamNil *)                                               │
00:02:37 #23413 [Verbose] > │         US4_0                                                                │
00:02:37 #23414 [Verbose] > │ and closure149 (v0 : UH9) () : UH9 =                                         │
00:02:37 #23415 [Verbose] > │     v0                                                                       │
00:02:37 #23416 [Verbose] > │ and method13 (v0 : UH1, v1 : UH9) : UH9 =                                    │
00:02:37 #23417 [Verbose] > │     match v0 with                                                            │
00:02:37 #23418 [Verbose] > │     | UH1_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* StreamCons *)    │
00:02:37 #23419 [Verbose] > │         let v12 : UH1 = v11 ()                                               │
00:02:37 #23420 [Verbose] > │         let v13 : UH9 = method13(v12, v1)                                    │
00:02:37 #23421 [Verbose] > │         let v14 : (unit -> UH9) = closure149(v13)                            │
00:02:37 #23422 [Verbose] > │         UH9_0(v4, v5, v6, v14)                                               │
00:02:37 #23423 [Verbose] > │     | UH1_1 -> (* StreamNil *)                                               │
00:02:37 #23424 [Verbose] > │         v1                                                                   │
00:02:37 #23425 [Verbose] > │ and method14 (v0 : UH9, v1 : UH7) : UH7 =                                    │
00:02:37 #23426 [Verbose] > │     match v0 with                                                            │
00:02:37 #23427 [Verbose] > │     | UH9_0(v2, v3, v4, v5) -> (* StreamCons *)                              │
00:02:37 #23428 [Verbose] > │         let v6 : UH9 = v5 ()                                                 │
00:02:37 #23429 [Verbose] > │         let v7 : UH7 = method14(v6, v1)                                      │
00:02:37 #23430 [Verbose] > │         UH7_0(v2, v3, v4, v7)                                                │
00:02:37 #23431 [Verbose] > │     | UH9_1 -> (* StreamNil *)                                               │
00:02:37 #23432 [Verbose] > │         v1                                                                   │
00:02:37 #23433 [Verbose] > │ and method15 (v0 : UH7, v1 : UH7) : UH7 =                                    │
00:02:37 #23434 [Verbose] > │     match v0 with                                                            │
00:02:37 #23435 [Verbose] > │     | UH7_0(v2, v3, v4, v5) -> (* Cons *)                                    │
00:02:37 #23436 [Verbose] > │         let v6 : UH7 = method15(v5, v1)                                      │
00:02:37 #23437 [Verbose] > │         UH7_0(v2, v3, v4, v6)                                                │
00:02:37 #23438 [Verbose] > │     | UH7_1 -> (* Nil *)                                                     │
00:02:37 #23439 [Verbose] > │         v1                                                                   │
00:02:37 #23440 [Verbose] > │ and method16 (v0 : UH7, v1 : UH10) : UH10 =                                  │
00:02:37 #23441 [Verbose] > │     match v0 with                                                            │
00:02:37 #23442 [Verbose] > │     | UH7_0(v2, v3, v4, v5) -> (* Cons *)                                    │
00:02:37 #23443 [Verbose] > │         let v6 : UH10 = method16(v5, v1)                                     │
00:02:37 #23444 [Verbose] > │         UH10_0(v2, v3, v6)                                                   │
00:02:37 #23445 [Verbose] > │     | UH7_1 -> (* Nil *)                                                     │
00:02:37 #23446 [Verbose] > │         v1                                                                   │
00:02:37 #23447 [Verbose] > │ and closure150 (v0 : UH11) () : UH11 =                                       │
00:02:37 #23448 [Verbose] > │     v0                                                                       │
00:02:37 #23449 [Verbose] > │ and method17 (v0 : UH10, v1 : UH11) : UH11 =                                 │
00:02:37 #23450 [Verbose] > │     match v0 with                                                            │
00:02:37 #23451 [Verbose] > │     | UH10_0(v2, v3, v4) -> (* Cons *)                                       │
00:02:37 #23452 [Verbose] > │         let v5 : UH11 = method17(v4, v1)                                     │
00:02:37 #23453 [Verbose] > │         let v6 : (unit -> UH11) = closure150(v5)                             │
00:02:37 #23454 [Verbose] > │         UH11_0(v2, v3, v6)                                                   │
00:02:37 #23455 [Verbose] > │     | UH10_1 -> (* Nil *)                                                    │
00:02:37 #23456 [Verbose] > │         v1                                                                   │
00:02:37 #23457 [Verbose] > │ and closure151 (v0 : UH0) () : UH0 =                                         │
00:02:37 #23458 [Verbose] > │     v0                                                                       │
00:02:37 #23459 [Verbose] > │ and closure152 (v0 : UH0) () : UH0 =                                         │
00:02:37 #23460 [Verbose] > │     v0                                                                       │
00:02:37 #23461 [Verbose] > │ and method18 (v0 : UH11) : struct (UH0 * UH0) =                              │
00:02:37 #23462 [Verbose] > │     match v0 with                                                            │
00:02:37 #23463 [Verbose] > │     | UH11_0(v1, v2, v3) -> (* StreamCons *)                                 │
00:02:37 #23464 [Verbose] > │         let v4 : UH11 = v3 ()                                                │
00:02:37 #23465 [Verbose] > │         let struct (v5 : UH0, v6 : UH0) = method18(v4)                       │
00:02:37 #23466 [Verbose] > │         let v7 : (unit -> UH0) = closure151(v5)                              │
00:02:37 #23467 [Verbose] > │         let v8 : UH0 = UH0_0(v1, v7)                                         │
00:02:37 #23468 [Verbose] > │         let v9 : (unit -> UH0) = closure152(v6)                              │
00:02:37 #23469 [Verbose] > │         let v10 : UH0 = UH0_0(v2, v9)                                        │
00:02:37 #23470 [Verbose] > │         struct (v8, v10)                                                     │
00:02:37 #23471 [Verbose] > │     | UH11_1 -> (* StreamNil *)                                              │
00:02:37 #23472 [Verbose] > │         let v11 : UH0 = UH0_1                                                │
00:02:37 #23473 [Verbose] > │         let v12 : UH0 = UH0_1                                                │
00:02:37 #23474 [Verbose] > │         struct (v11, v12)                                                    │
00:02:37 #23475 [Verbose] > │ and method19 (v0 : UH0, v1 : UH12) : UH12 =                                  │
00:02:37 #23476 [Verbose] > │     match v0 with                                                            │
00:02:37 #23477 [Verbose] > │     | UH0_0(v2, v3) -> (* StreamCons *)                                      │
00:02:37 #23478 [Verbose] > │         let v4 : UH0 = v3 ()                                                 │
00:02:37 #23479 [Verbose] > │         let v5 : UH12 = method19(v4, v1)                                     │
00:02:37 #23480 [Verbose] > │         UH12_0(v2, v5)                                                       │
00:02:37 #23481 [Verbose] > │     | UH0_1 -> (* StreamNil *)                                               │
00:02:37 #23482 [Verbose] > │         v1                                                                   │
00:02:37 #23483 [Verbose] > │ and method21 (v0 : UH12, v1 : int32) : int32 =                               │
00:02:37 #23484 [Verbose] > │     match v0 with                                                            │
00:02:37 #23485 [Verbose] > │     | UH12_0(v2, v3) -> (* Cons *)                                           │
00:02:37 #23486 [Verbose] > │         let v4 : int32 = v1 + 1                                              │
00:02:37 #23487 [Verbose] > │         method21(v3, v4)                                                     │
00:02:37 #23488 [Verbose] > │     | UH12_1 -> (* Nil *)                                                    │
00:02:37 #23489 [Verbose] > │         v1                                                                   │
00:02:37 #23490 [Verbose] > │ and method22 (v0 : (float []), v1 : UH12, v2 : int32) : int32 =              │
00:02:37 #23491 [Verbose] > │     match v1 with                                                            │
00:02:37 #23492 [Verbose] > │     | UH12_0(v3, v4) -> (* Cons *)                                           │
00:02:37 #23493 [Verbose] > │         v0.[int v2] <- v3                                                    │
00:02:37 #23494 [Verbose] > │         let v5 : int32 = v2 + 1                                              │
00:02:37 #23495 [Verbose] > │         method22(v0, v4, v5)                                                 │
00:02:37 #23496 [Verbose] > │     | UH12_1 -> (* Nil *)                                                    │
00:02:37 #23497 [Verbose] > │         v2                                                                   │
00:02:37 #23498 [Verbose] > │ and method20 (v0 : UH12) : (float []) =                                      │
00:02:37 #23499 [Verbose] > │     let v1 : int32 = 0                                                       │
00:02:37 #23500 [Verbose] > │     let v2 : int32 = method21(v0, v1)                                        │
00:02:37 #23501 [Verbose] > │     let v3 : (float []) = Array.zeroCreate<float> (v2)                       │
00:02:37 #23502 [Verbose] > │     let v4 : int32 = 0                                                       │
00:02:37 #23503 [Verbose] > │     let v5 : int32 = method22(v3, v0, v4)                                    │
00:02:37 #23504 [Verbose] > │     v3                                                                       │
00:02:37 #23505 [Verbose] > │ and closure153 (v0 : UH2) () : UH2 =                                         │
00:02:37 #23506 [Verbose] > │     v0                                                                       │
00:02:37 #23507 [Verbose] > │ and method1 (v0 : UH1, v1 : UH0, v2 : UH2) : UH2 =                           │
00:02:37 #23508 [Verbose] > │     match v1 with                                                            │
00:02:37 #23509 [Verbose] > │     | UH0_0(v3, v4) -> (* StreamCons *)                                      │
00:02:37 #23510 [Verbose] > │         let v5 : UH0 = v4 ()                                                 │
00:02:37 #23511 [Verbose] > │         let v6 : UH2 = method1(v0, v5, v2)                                   │
00:02:37 #23512 [Verbose] > │         let v7 : ((UH1 -> UH3) -> (UH1 -> UH1)) = method2()                  │
00:02:37 #23513 [Verbose] > │         let v8 : UH4 = method4()                                             │
00:02:37 #23514 [Verbose] > │         let v9 : (UH1 -> UH3) = closure142(v8)                               │
00:02:37 #23515 [Verbose] > │         let v10 : (UH1 -> UH1) = v7 v9                                       │
00:02:37 #23516 [Verbose] > │         let v11 : UH1 = v10 v0                                               │
00:02:37 #23517 [Verbose] > │         let v12 : (unit -> UH8) = closure148(v10, v0, v11)                   │
00:02:37 #23518 [Verbose] > │         let v13 : UH8 = UH8_0(v0, v12)                                       │
00:02:37 #23519 [Verbose] > │         let v14 : US4 = method12(v3, v13)                                    │
00:02:37 #23520 [Verbose] > │         let v18 : UH1 =                                                      │
00:02:37 #23521 [Verbose] > │             match v14 with                                                   │
00:02:37 #23522 [Verbose] > │             | US4_0 -> (* None *)                                            │
00:02:37 #23523 [Verbose] > │                 failwith<UH1> "Option does not have a value."                │
00:02:37 #23524 [Verbose] > │             | US4_1(v15) -> (* Some *)                                       │
00:02:37 #23525 [Verbose] > │                 v15                                                          │
00:02:37 #23526 [Verbose] > │         let v19 : UH9 = UH9_1                                                │
00:02:37 #23527 [Verbose] > │         let v20 : UH9 = method13(v18, v19)                                   │
00:02:37 #23528 [Verbose] > │         let v21 : UH7 = UH7_1                                                │
00:02:37 #23529 [Verbose] > │         let v22 : UH7 = method14(v20, v21)                                   │
00:02:37 #23530 [Verbose] > │         let v23 : float = 0.65                                               │
00:02:37 #23531 [Verbose] > │         let v24 : float = 0.0                                                │
00:02:37 #23532 [Verbose] > │         let v25 : float = 0.0                                                │
00:02:37 #23533 [Verbose] > │         let v26 : UH7 = UH7_1                                                │
00:02:37 #23534 [Verbose] > │         let v27 : UH7 = UH7_0(v23, v24, v25, v26)                            │
00:02:37 #23535 [Verbose] > │         let v28 : UH7 = method15(v22, v27)                                   │
00:02:37 #23536 [Verbose] > │         let v29 : UH10 = UH10_1                                              │
00:02:37 #23537 [Verbose] > │         let v30 : UH10 = method16(v28, v29)                                  │
00:02:37 #23538 [Verbose] > │         let v31 : UH11 = UH11_1                                              │
00:02:37 #23539 [Verbose] > │         let v32 : UH11 = method17(v30, v31)                                  │
00:02:37 #23540 [Verbose] > │         let struct (v33 : UH0, v34 : UH0) = method18(v32)                    │
00:02:37 #23541 [Verbose] > │         let v35 : UH12 = UH12_1                                              │
00:02:37 #23542 [Verbose] > │         let v36 : UH12 = method19(v33, v35)                                  │
00:02:37 #23543 [Verbose] > │         let v37 : float = 0.0                                                │
00:02:37 #23544 [Verbose] > │         let v38 : UH12 = UH12_0(v37, v36)                                    │
00:02:37 #23545 [Verbose] > │         let v39 : (float []) = method20(v38)                                 │
00:02:37 #23546 [Verbose] > │         let v40 : UH12 = UH12_1                                              │
00:02:37 #23547 [Verbose] > │         let v41 : UH12 = method19(v34, v40)                                  │
00:02:37 #23548 [Verbose] > │         let v42 : float = 0.0                                                │
00:02:37 #23549 [Verbose] > │         let v43 : UH12 = UH12_0(v42, v41)                                    │
00:02:37 #23550 [Verbose] > │         let v44 : (float []) = method20(v43)                                 │
00:02:37 #23551 [Verbose] > │         let v45 : (unit -> UH2) = closure153(v6)                             │
00:02:37 #23552 [Verbose] > │         UH2_0(v39, v44, v45)                                                 │
00:02:37 #23553 [Verbose] > │     | UH0_1 -> (* StreamNil *)                                               │
00:02:37 #23554 [Verbose] > │         v2                                                                   │
00:02:37 #23555 [Verbose] > │ and closure154 (v0 : UH13) () : UH13 =                                       │
00:02:37 #23556 [Verbose] > │     v0                                                                       │
00:02:37 #23557 [Verbose] > │ and method23 (v0 : UH2, v1 : UH13, v2 : int32) : struct (UH13 * int32) =     │
00:02:37 #23558 [Verbose] > │     match v0 with                                                            │
00:02:37 #23559 [Verbose] > │     | UH2_0(v3, v4, v5) -> (* StreamCons *)                                  │
00:02:37 #23560 [Verbose] > │         let v6 : int32 = v2 + 1                                              │
00:02:37 #23561 [Verbose] > │         let v7 : UH2 = v5 ()                                                 │
00:02:37 #23562 [Verbose] > │         let v8 : (unit -> UH13) = closure154(v1)                             │
00:02:37 #23563 [Verbose] > │         let v9 : UH13 = UH13_0(v2, v3, v4, v8)                               │
00:02:37 #23564 [Verbose] > │         method23(v7, v9, v6)                                                 │
00:02:37 #23565 [Verbose] > │     | UH2_1 -> (* StreamNil *)                                               │
00:02:37 #23566 [Verbose] > │         struct (v1, v2)                                                      │
00:02:37 #23567 [Verbose] > │ and closure155 (v0 : UH13) () : UH13 =                                       │
00:02:37 #23568 [Verbose] > │     v0                                                                       │
00:02:37 #23569 [Verbose] > │ and method24 (v0 : UH13, v1 : UH13) : UH13 =                                 │
00:02:37 #23570 [Verbose] > │     match v0 with                                                            │
00:02:37 #23571 [Verbose] > │     | UH13_0(v2, v3, v4, v5) -> (* StreamCons *)                             │
00:02:37 #23572 [Verbose] > │         let v6 : UH13 = v5 ()                                                │
00:02:37 #23573 [Verbose] > │         let v7 : (unit -> UH13) = closure155(v1)                             │
00:02:37 #23574 [Verbose] > │         let v8 : UH13 = UH13_0(v2, v3, v4, v7)                               │
00:02:37 #23575 [Verbose] > │         method24(v6, v8)                                                     │
00:02:37 #23576 [Verbose] > │     | UH13_1 -> (* StreamNil *)                                              │
00:02:37 #23577 [Verbose] > │         v1                                                                   │
00:02:37 #23578 [Verbose] > │ and method26 (v0 : (struct (string * (float []) * (float [])) [])) : (struct │
00:02:37 #23579 [Verbose] > │ (string * (float []) * (float [])) []) =                                     │
00:02:37 #23580 [Verbose] > │     v0                                                                       │
00:02:37 #23581 [Verbose] > │ and closure156 (v0 : UH14) () : UH14 =                                       │
00:02:37 #23582 [Verbose] > │     v0                                                                       │
00:02:37 #23583 [Verbose] > │ and method25 (v0 : UH13, v1 : UH14) : UH14 =                                 │
00:02:37 #23584 [Verbose] > │     match v0 with                                                            │
00:02:37 #23585 [Verbose] > │     | UH13_0(v2, v3, v4, v5) -> (* StreamCons *)                             │
00:02:37 #23586 [Verbose] > │         let v6 : UH13 = v5 ()                                                │
00:02:37 #23587 [Verbose] > │         let v7 : UH14 = method25(v6, v1)                                     │
00:02:37 #23588 [Verbose] > │         let v8 : string = $"{v2}"                                            │
00:02:37 #23589 [Verbose] > │         let v9 : (struct (string * (float []) * (float [])) []) = [|struct   │
00:02:37 #23590 [Verbose] > │ (v8, v3, v4)|]                                                               │
00:02:37 #23591 [Verbose] > │         let v10 : (struct (string * (float []) * (float [])) []) =           │
00:02:37 #23592 [Verbose] > │ method26(v9)                                                                 │
00:02:37 #23593 [Verbose] > │         let v11 : string = "wave"                                            │
00:02:37 #23594 [Verbose] > │         let v12 : string = "position (m)"                                    │
00:02:37 #23595 [Verbose] > │         let v13 : string = "displacement (m)"                                │
00:02:37 #23596 [Verbose] > │         let v14 : (unit -> UH14) = closure156(v7)                            │
00:02:37 #23597 [Verbose] > │         UH14_0(v11, v12, v13, v10, v14)                                      │
00:02:37 #23598 [Verbose] > │     | UH13_1 -> (* StreamNil *)                                              │
00:02:37 #23599 [Verbose] > │         v1                                                                   │
00:02:37 #23600 [Verbose] > │ and method27 (v0 : UH14, v1 : UH15) : UH15 =                                 │
00:02:37 #23601 [Verbose] > │     match v0 with                                                            │
00:02:37 #23602 [Verbose] > │     | UH14_0(v2, v3, v4, v5, v6) -> (* StreamCons *)                         │
00:02:37 #23603 [Verbose] > │         let v7 : UH14 = v6 ()                                                │
00:02:37 #23604 [Verbose] > │         let v8 : UH15 = method27(v7, v1)                                     │
00:02:37 #23605 [Verbose] > │         UH15_0(v2, v3, v4, v5, v8)                                           │
00:02:37 #23606 [Verbose] > │     | UH14_1 -> (* StreamNil *)                                              │
00:02:37 #23607 [Verbose] > │         v1                                                                   │
00:02:37 #23608 [Verbose] > │ and method29 (v0 : UH15, v1 : int32) : int32 =                               │
00:02:37 #23609 [Verbose] > │     match v0 with                                                            │
00:02:37 #23610 [Verbose] > │     | UH15_0(v2, v3, v4, v5, v6) -> (* Cons *)                               │
00:02:37 #23611 [Verbose] > │         let v7 : int32 = v1 + 1                                              │
00:02:37 #23612 [Verbose] > │         method29(v6, v7)                                                     │
00:02:37 #23613 [Verbose] > │     | UH15_1 -> (* Nil *)                                                    │
00:02:37 #23614 [Verbose] > │         v1                                                                   │
00:02:37 #23615 [Verbose] > │ and method30 (v0 : (struct (string * string * string * (struct (string *     │
00:02:37 #23616 [Verbose] > │ (float []) * (float [])) [])) []), v1 : UH15, v2 : int32) : int32 =          │
00:02:37 #23617 [Verbose] > │     match v1 with                                                            │
00:02:37 #23618 [Verbose] > │     | UH15_0(v3, v4, v5, v6, v7) -> (* Cons *)                               │
00:02:37 #23619 [Verbose] > │         v0.[int v2] <- struct (v3, v4, v5, v6)                               │
00:02:37 #23620 [Verbose] > │         let v8 : int32 = v2 + 1                                              │
00:02:37 #23621 [Verbose] > │         method30(v0, v7, v8)                                                 │
00:02:37 #23622 [Verbose] > │     | UH15_1 -> (* Nil *)                                                    │
00:02:37 #23623 [Verbose] > │         v2                                                                   │
00:02:37 #23624 [Verbose] > │ and method28 (v0 : UH15) : (struct (string * string * string * (struct       │
00:02:37 #23625 [Verbose] > │ (string * (float []) * (float [])) [])) []) =                                │
00:02:37 #23626 [Verbose] > │     let v1 : int32 = 0                                                       │
00:02:37 #23627 [Verbose] > │     let v2 : int32 = method29(v0, v1)                                        │
00:02:37 #23628 [Verbose] > │     let v3 : (struct (string * string * string * (struct (string * (float [  │
00:02:37 #23629 [Verbose] > │ ]) * (float [])) [])) []) = Array.zeroCreate<struct (string * string *       │
00:02:37 #23630 [Verbose] > │ string * (struct (string * (float []) * (float [])) []))> (v2)               │
00:02:37 #23631 [Verbose] > │     let v4 : int32 = 0                                                       │
00:02:37 #23632 [Verbose] > │     let v5 : int32 = method30(v3, v0, v4)                                    │
00:02:37 #23633 [Verbose] > │     v3                                                                       │
00:02:37 #23634 [Verbose] > │ and method0 () : (struct (string * string * string * (struct (string *       │
00:02:37 #23635 [Verbose] > │ (float []) * (float [])) [])) []) =                                          │
00:02:37 #23636 [Verbose] > │     let v0 : float = 0.0                                                     │
00:02:37 #23637 [Verbose] > │     let v1 : (unit -> UH0) = closure0()                                      │
00:02:37 #23638 [Verbose] > │     let v2 : UH0 = UH0_0(v0, v1)                                             │
00:02:37 #23639 [Verbose] > │     let v3 : float = 0.0                                                     │
00:02:37 #23640 [Verbose] > │     let v4 : float = 8.422578125E-06                                         │
00:02:37 #23641 [Verbose] > │     let v5 : float = 0.01                                                    │
00:02:37 #23642 [Verbose] > │     let v6 : float = 0.0007224452478461068                                   │
00:02:37 #23643 [Verbose] > │     let v7 : float = 0.0                                                     │
00:02:37 #23644 [Verbose] > │     let v8 : float = 0.0                                                     │
00:02:37 #23645 [Verbose] > │     let v9 : float = 0.0                                                     │
00:02:37 #23646 [Verbose] > │     let v10 : float = 0.0                                                    │
00:02:37 #23647 [Verbose] > │     let v11 : float = 0.0                                                    │
00:02:37 #23648 [Verbose] > │     let v12 : (unit -> UH1) = closure66()                                    │
00:02:37 #23649 [Verbose] > │     let v13 : UH1 = UH1_0(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12)         │
00:02:37 #23650 [Verbose] > │     let v14 : UH2 = UH2_1                                                    │
00:02:37 #23651 [Verbose] > │     let v15 : UH2 = method1(v13, v2, v14)                                    │
00:02:37 #23652 [Verbose] > │     let v16 : UH13 = UH13_1                                                  │
00:02:37 #23653 [Verbose] > │     let v17 : int32 = 0                                                      │
00:02:37 #23654 [Verbose] > │     let struct (v18 : UH13, v19 : int32) = method23(v15, v16, v17)           │
00:02:37 #23655 [Verbose] > │     let v20 : UH13 = UH13_1                                                  │
00:02:37 #23656 [Verbose] > │     let v21 : UH13 = method24(v18, v20)                                      │
00:02:37 #23657 [Verbose] > │     let v22 : UH14 = UH14_1                                                  │
00:02:37 #23658 [Verbose] > │     let v23 : UH14 = method25(v21, v22)                                      │
00:02:37 #23659 [Verbose] > │     let v24 : UH15 = UH15_1                                                  │
00:02:37 #23660 [Verbose] > │     let v25 : UH15 = method27(v23, v24)                                      │
00:02:37 #23661 [Verbose] > │     method28(v25)                                                            │
00:02:37 #23662 [Verbose] > │ method0()                                                                    │
00:02:37 #23663 [Verbose] > │                                                                              │
00:02:37 #23664 [Verbose] > │                                                                              │
00:02:37 #23665 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:37 #23666 [Verbose] >
00:02:37 #23667 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:37 #23668 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:37 #23669 [Verbose] > │ ## end                                                                       │
00:02:37 #23670 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:38 #23671 [Verbose] > [NbConvertApp] Converting notebook physics.dib.ipynb to html
00:02:38 #23672 [Verbose] > /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:02:38 #23673 [Verbose] >   validate(nb)
00:02:38 #23674 [Verbose] > /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:02:38 #23675 [Verbose] >   return _pygments_highlight(
00:02:41 #23676 [Verbose] > [NbConvertApp] Writing 2735715 bytes to physics.dib.html
00:02:42 #23677 [Debug] executeAsync / exitCode: 0 / output.Length: 746846
00:02:42 #23678 [Debug] main / executeCommand / exitCode: 0
00:02:42 #23679 [Verbose] waitForPortAccess / port: 13805 / retry: 0
00:02:42 #23680 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #1 [Debug] writeDibCode / output: Spi / path: common.dib
00:00:00 #1 [Debug] writeDibCode / output: Spi / path: testing.dib
00:00:00 #1 [Debug] writeDibCode / output: Spi / path: console.dib
00:00:00 #1 [Debug] writeDibCode / output: Spi / path: date_time.dib
00:00:00 #4 [Debug] parseDibCode / output: Spi / file: testing.dib
00:00:00 #5 [Debug] parseDibCode / output: Spi / file: date_time.dib
00:00:00 #3 [Debug] parseDibCode / output: Spi / file: common.dib
00:00:00 #3 [Debug] parseDibCode / output: Spi / file: console.dib
00:00:00 #7 [Debug] writeDibCode / output: Spi / path: file_system.dib
00:00:00 #9 [Debug] writeDibCode / output: Spi / path: optionm'.dib
00:00:00 #8 [Debug] writeDibCode / output: Spi / path: math.dib
00:00:00 #11 [Debug] parseDibCode / output: Spi / file: optionm'.dib
00:00:00 #12 [Debug] parseDibCode / output: Spi / file: math.dib
00:00:00 #10 [Debug] parseDibCode / output: Spi / file: file_system.dib
00:00:00 #7 [Debug] writeDibCode / output: Spi / path: guid.dib
00:00:00 #14 [Debug] writeDibCode / output: Spi / path: am'.dib
00:00:00 #15 [Debug] writeDibCode / output: Spi / path: sm'.dib
00:00:00 #16 [Debug] parseDibCode / output: Spi / file: am'.dib
00:00:00 #18 [Debug] parseDibCode / output: Spi / file: sm'.dib
00:00:00 #13 [Debug] parseDibCode / output: Spi / file: guid.dib
00:00:00 #18 [Debug] writeDibCode / output: Spi / path: listm'.dib
00:00:00 #19 [Debug] parseDibCode / output: Spi / file: listm'.dib
00:00:00 #20 [Debug] writeDibCode / output: Spi / path: benchmark.dib
00:00:00 #21 [Debug] parseDibCode / output: Spi / file: benchmark.dib
00:00:00 #22 [Debug] writeDibCode / output: Spi / path: stream.dib
00:00:00 #23 [Debug] parseDibCode / output: Spi / file: stream.dib
00:00:00 #24 [Debug] writeDibCode / output: Spi / path: seq.dib
00:00:00 #25 [Debug] parseDibCode / output: Spi / file: seq.dib
00:00:00 #26 [Debug] writeDibCode / output: Spi / path: util.dib
00:00:00 #27 [Debug] parseDibCode / output: Spi / file: util.dib
00:00:00 #28 [Debug] writeDibCode / output: Spi / path: rust.dib
00:00:00 #29 [Debug] parseDibCode / output: Spi / file: rust.dib
00:00:00 #30 [Debug] writeDibCode / output: Spi / path: physics.dib
00:00:00 #31 [Debug] parseDibCode / output: Spi / file: physics.dib
00:00:00 #1 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #2 [Debug] executeAsync / options: { Command =
   "dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64"
  WorkingDirectory = None
  CancellationToken = Some System.Threading.CancellationToken
  OnLine = Some <fun:main@425-61> }
00:00:00 #3 [Verbose] > pwd: /home/runner/work/polyglot/polyglot/lib/spiral
00:00:00 #4 [Verbose] > dll_path: /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release
00:00:00 #5 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #6 [Verbose] waitForPortAccess / port: 13805 / retry: 0
00:00:00 #7 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #8 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #9 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #10 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #11 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #12 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #13 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #14 [Verbose] > Starting the Spiral Server. It is bound to: http://localhost:13805
00:00:00 #15 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #16 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #17 [Debug] sendJson / port: 13805 / json: {"Ping":true} / result.Length:
00:00:00 #18 [Verbose] awaitCompiler / Ping / result: Some(null) / port: 13805 / retry: 0
00:00:00 #19 [Verbose] > Server bound to: http://localhost:13805
00:00:00 #22 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #20 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #21 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #24 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: [] / typeErrorCount: 0
00:00:00 #25 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: [] / typeErrorCount: 0
00:00:00 #24 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: [] / typeErrorCount: 0
00:00:00 #28 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: [] / typeErrorCount: 0
00:00:00 #28 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: [] / typeErrorCount: 0
00:00:00 #28 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: [] / typeErrorCount: 0
00:00:00 #30 [Debug] sendJson / port: 13805 / json: {"FileOpen":{"spiText":"// // # file_system\n\nopen rust_operators\nopen sm\u0027_operators\n\n// // ## types\n\ninl types () =\n    ()\n\n// // ## (\u003C/\u003E)\n\ninl (\u003C/\u003E) (a : string) (b : string) : string =\n    $\u0027System.IO.Path.Combine (!a, !b)\u0027\n\n// // ## create_temp_directory_name\n\ninl create_temp_directory_name () =\n    inl root = $\u0027System.Reflection.Assembly.GetEntryAssembly().GetName().Name\u0027 : string\n\n    ($\u0027System.IO.Path.GetTempPath\u0027 () : string)\n    \u003C/\u003E ($\u0027$\u0022{!root}\u0022\u0027 : string)\n    \u003C/\u003E (date_time.new_guid_from_date_time $\u0027System.DateTime.Now\u0027 |\u003E sm\u0027.obj_to_string)\n\n// // ## main\n\ninl main () =\n    $\u0022let create_temp_directory_name x = !create_temp_directory_name x\u0022 : ()\n","uri":"file:///home/runner/work/polyglot/polyglot/lib/spiral/file_system.spi"}} / result.Length:
00:00:00 #31 [Debug] sendJson / port: 13805 / json: {"FileOpen":{"spiText":"// // # common\n\n// // ## types\n\nnominal any = $\u0022obj\u0022\nnominal disposable = $\u0022System.IDisposable\u0022\nnominal exn = $\u0022exn\u0022\nnominal unativeint = $\u0022unativeint\u0022\n\nlet array x = x\n\ninl unativeint forall t {int}. (n : t) : unativeint =\n    $\u0022unativeint !n\u0022\n\n// // ## prototype\n\nprototype (~:\u003E) r : forall t. t -\u003E r\nprototype append t : t -\u003E t -\u003E t\nprototype of_string t : string -\u003E t\nprototype to_string t : t -\u003E string\n\n// // ## null\n\ninl null forall t. () : t =\n    $\u0022null |\u003E unbox\u003C\u0060t\u003E\u0022\n\ninl i32 forall t. (x : t) : i32 =\n    $\u0022int32 !x\u0022\n\ninl i64 forall t. (x : t) : i64 =\n    $\u0022int64 !x\u0022\n\ninl f32 forall t. (x : t) : f32 =\n    $\u0022float32 !x\u0022\n\ninl f64 forall t. (x : t) : f64 =\n    $\u0022float !x\u0022\n\n// // ## pair\n\ntype pair a b = $\u0022(\u0060a * \u0060b)\u0022\n\ninl pair x y =\n    x, y\n\n// // ## new_pair\n\ninl new_pair forall a b. (a : a) (b : b) : pair a b =\n    $\u0022!a, !b\u0022\n\n// // ## from_pair\n\ninl from_pair forall a b. (pair : pair a b) : a * b =\n    $\u0022let (a, b) = !pair\u0022\n    $\u0022a\u0022, $\u0022b\u0022\n\n// // ## log_level_type\n\nunion log_level_type =\n    | Verbose\n    | Debug\n    | Info\n    | Warning\n    | Critical\n\ninstance to_string log_level_type = function\n    | Verbose =\u003E \u0022Verbose\u0022\n    | Debug =\u003E \u0022Debug\u0022\n    | Info =\u003E \u0022Info\u0022\n    | Warning =\u003E \u0022Warning\u0022\n    | Critical =\u003E \u0022Critical\u0022\n\ninstance of_string log_level_type = function\n    | \u0022Verbose\u0022 =\u003E Verbose\n    | \u0022Debug\u0022 =\u003E Debug\n    | \u0022Info\u0022 =\u003E Info\n    | \u0022Warning\u0022 =\u003E Warning\n    | \u0022Critical\u0022 =\u003E Critical\n\n// // ## to_any\n\ninl to_any forall t. (obj : t) : any =\n    $\u0022!obj\u0022\n\ninstance (~:\u003E) any = to_any\n\n// // ## (/@)\n\ninl (/@) a b =\n    b |\u003E append a\n\n// // ## unbox\n\ninl unbox forall t u. (x : t) : u =\n    $\u0022!x |\u003E unbox\u003C\u0060u\u003E\u0022\n\n// // ## (/\u002B)\n\ninl (/\u002B) forall t. (a : t) (b : t) : t =\n    $\u0022!a \u002B !b\u0022\n\n// // ## (/=)\n\ninl (/=) forall t. (a : t) (b : t) : bool =\n    $\u0022!a = !b\u0022\n\n// // ## (||\u003E)\n\ninl (||\u003E) (arg1, arg2) fn =\n    arg2 |\u003E fn arg1\n\n// // ## flip\n\ninl flip fn a b =\n    fn b a\n\n// // ## join_body\n\ninl join_body body acc x =\n    if var_is x |\u003E not\n    then body acc x\n    else\n        inl acc = dyn acc\n        join body acc x\n\n// // ## join_body_unit\n\ninl join_body_unit body d x =\n    if var_is d |\u003E not\n    then body x\n    else\n        inl x = dyn x\n        join body x\n\n// // ## run_target\n\nunion target_runtime =\n    | Native\n    | Wasm\n    | Fable\n\nunion target =\n    | Rust : target_runtime\n    | Fsharp : target_runtime\n\ninl run_target forall t. (fn : target -\u003E (() -\u003E t)) : t =\n    $\u0022let mutable result = None\u0022\n    $\u0022#if FABLE_COMPILER_RUST \u0026\u0026 \\!WASM\u0022\n    fn (Rust Native) () |\u003E fun x =\u003E $\u0022!x\u0022\n    $\u0022#endif\u0022\n    $\u0022#if FABLE_COMPILER_RUST \u0026\u0026 WASM\u0022\n    fn (Rust Wasm) () |\u003E fun x =\u003E $\u0022!x\u0022\n    $\u0022#endif\u0022\n    $\u0022#if \\!FABLE_COMPILER \u0026\u0026 \\!FABLE_COMPILER_RUST \u0026\u0026 \\!WASM\u0022\n    fn (Fsharp Native) () |\u003E fun x =\u003E $\u0022!x\u0022\n    $\u0022#endif\u0022\n    $\u0022#if FABLE_COMPILER \u0026\u0026 \\!FABLE_COMPILER_RUST \u0026\u0026 \\!WASM\u0022\n    fn (Fsharp Fable) () |\u003E fun x =\u003E $\u0022!x\u0022\n    $\u0022#endif\u0022\n    $\u0022#if \\!FABLE_COMPILER_RUST \u0026\u0026 WASM\u0022\n    fn (Fsharp Wasm) () |\u003E fun x =\u003E $\u0022!x\u0022\n    $\u0022#endif\u0022\n    $\u0022|\u003E fun x -\u003E result \u003C- Some x\u0022\n    $\u0022result |\u003E Option.get\u0022\n\n// // ## nameof\n\ninl nameof x : string =\n    $\u0022nameof !x\u0022\n\n// // ## get_environment_variable\n\ninl get_environment_variable (var : string) : string =\n    $\u0022System.Environment.GetEnvironmentVariable !var\u0022\n\n// // ## memoize\n\nnominal lazy t = $\u0027Lazy\u003C\u0060t\u003E\u0027\n\ninl memoize forall t. (fn : () -\u003E t) : () -\u003E t =\n    inl result : lazy t = $\u0027lazy !fn ()\u0027\n    fun () =\u003E $\u0027!result.Value\u0027\n\n// // ## use_disposable\n\ninl use_disposable (disposable : disposable) : disposable =\n    $\u0022use !disposable = !disposable\u0022 : ()\n    $\u0022!disposable\u0022\n\n// // ## new_disposable\n\ninl new_disposable (fn : () -\u003E ()) : disposable =\n    run_target function\n        | Fsharp _ =\u003E fun () =\u003E $\u0027{ new System.IDisposable with member _.Dispose () = !fn () }\u0027\n        | Rust _ =\u003E\n            inl fn = join fn\n            fun () =\u003E $\u0027{ new System.IDisposable with member _.Dispose () = Fable.Core.RustInterop.emitRustExpr () \u0022!fn()\u0022 }\u0027\n\n// // ## try\n\ninl try forall t. (fn : () -\u003E t) (ex_fn : exn -\u003E ()) : option t =\n    inl none = None : option t\n    inl some (s : t) = Some s\n    $\u0027try !fn () |\u003E !some with ex -\u003E !ex_fn ex; !none \u0027\n\n// // ## sleep\n\ninl sleep (n : i32) : () =\n    run_target function\n        | Fsharp (Native) =\u003E fun () =\u003E $\u0027System.Threading.Thread.Sleep\u0027 n\n        | _ =\u003E fun () =\u003E ()\n\n// // ## retry_fn\n\ninl retry_fn forall t. retries (fn : () -\u003E t) : option t =\n    let rec loop retry =\n        try\n            fun () =\u003E\n                if retry \u003C retries\n                then fn () |\u003E Some\n                else None\n            fun ex =\u003E\n                let getLocals () = $\u0022retry: {retry} / ex: {ex |\u003E formatException} / {getLocals ()}\u0022\n                // trace Warning (fun () =\u003E \u0022retry_fn\u0022) getLocals\n                sleep 1\n        |\u003E function\n            | Some x =\u003E x\n            | None =\u003E loop (retry \u002B 1)\n    loop 0\n\n// // ## main\n\ninl main () =\n    inl retry_fn (r : i32) (x : () -\u003E _) : optionm\u0027.option\u0027 () =\n        retry_fn r x |\u003E optionm\u0027.box\n    $\u0022let new_disposable x = !new_disposable x\u0022 : ()\n    $\u0022let retry_fn x = !retry_fn x\u0022 : ()\n","uri":"file:///home/runner/work/polyglot/polyglot/lib/spiral/common.spi"}} / result.Length:
00:00:00 #29 [Debug] sendJson / port: 13805 / json: {"FileOpen":{"spiText":"// // # date_time\n\nopen rust_operators\nopen sm\u0027_operators\n\n// // ## types\n\ninl types () =\n    global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022chrono::DateTime\u003C$0\u003E\\\u0022)\u003E] type chrono_DateTime\u003C\u0027T\u003E = class end\u0022\n    global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022chrono::Local\\\u0022)\u003E] type chrono_Local = class end\u0022\n    global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022chrono::NaiveDateTime\\\u0022)\u003E] type chrono_NaiveDateTime = class end\u0022\n    global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022chrono::Utc\\\u0022)\u003E] type chrono_Utc = class end\u0022\n    global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022std::time::Duration\\\u0022)\u003E] type std_time_Duration = class end\u0022\n\nnominal ticks = i64\nnominal duration = $\u0022std_time_Duration\u0022\nnominal date_time = $\u0022System.DateTime\u0022\nnominal date_time\u0027 t = $\u0022chrono_DateTime\u003C\u0060t\u003E\u0022\nnominal local = $\u0022chrono_Local\u0022\nnominal naive_date_time = $\u0022chrono_NaiveDateTime\u0022\nnominal utc = $\u0022chrono_Utc\u0022\n\n// // ## naive_utc\n\ninl naive_utc (date_time : date_time\u0027 utc) : naive_date_time =\n    inl date_time = join date_time\n    !\\($\u0027\u0022!date_time.naive_utc()\u0022\u0027)\n\n// // ## to_local\n\ninl to_local (date_time : date_time\u0027 utc) : date_time\u0027 local =\n    inl naive_date_time = date_time |\u003E naive_utc\n    !\\($\u0027\u0022chrono::offset::TimeZone::from_utc_datetime(\u0026chrono::Local, \u0026!naive_date_time)\u0022\u0027)\n\n// // ## from_timestamp\u0027\n\ninl from_timestamp\u0027 forall t {number; int}. (timestamp : t) : option (date_time\u0027 utc) =\n    inl timestamp = join timestamp\n    inl result : optionm\u0027.option\u0027 (date_time\u0027 utc) =\n        !\\($\u0027\u0022chrono::DateTime::from_timestamp_micros(!timestamp / 1000i64)\u0022\u0027)\n    result |\u003E optionm\u0027.unbox\n\n// // ## format\u0027\n\ninl format\u0027 (format : string) (date_time : date_time\u0027 utc) : sm\u0027.std_string =\n    inl format = #format\n    inl date_time = join date_time\n    !\\($\u0027\u0022!date_time.format(!format).to_string()\u0022\u0027)\n\n// // ## format\u0027\u0027\n\ninl format\u0027\u0027 (format : string) (date_time : date_time\u0027 _) : sm\u0027.std_string =\n    inl format = #format\n    inl date_time = join date_time\n    !\\($\u0027\u0022!date_time.format(!format).to_string()\u0022\u0027)\n\n// // ## format_timestamp\n\ninl format_timestamp (timestamp : sm\u0027.std_string) =\n    inl timestamp = join timestamp\n    timestamp\n    |\u003E fun x =\u003E !\\($\u0027\u0022!x.parse().unwrap()\u0022\u0027) : i64\n    |\u003E from_timestamp\u0027\n    |\u003E optionm.map fun x =\u003E\n        x\n        |\u003E to_local\n        |\u003E format\u0027\u0027 \u0022%Y-%m-%d %H:%M:%S\u0022\n        |\u003E sm\u0027.from_std_string\n    |\u003E resultm.from_option\n\n// // ## duration_from_millis\n\ninl duration_from_millis (ms : u64) : duration =\n    inl ms = join ms\n    !\\($\u0027\u0022std::time::Duration::from_millis(!ms)\u0022\u0027)\n\n// // ## get_environment_variable\n\ninl get_environment_variable (var : string) : string =\n    $\u0022System.Environment.GetEnvironmentVariable !var\u0022\n\ntype ticks_guid = guid.guid\ntype date_time_guid = guid.guid\n\n// // ## date_time_guid_from_date_time\n\ninl date_time_guid_from_date_time (guid : guid.guid) (date_time : date_time) =\n    inl guid = guid |\u003E sm\u0027.obj_to_string\n    inl prefix = $\u0027!date_time.ToString \u0022yyyyMMdd-HHmm-ssff-ffff-f\u0022\u0027 : string\n    $\u0027\u0060date_time_guid $\u0022{!prefix}{!guid.[!prefix.Length..]}\u0022\u0027 : date_time_guid\n\n// // ## date_time_from_guid\n\ninl date_time_from_guid (date_time_guid : date_time_guid) =\n    inl date_time_guid = date_time_guid |\u003E sm\u0027.obj_to_string\n    inl sm\u0027_replace = join sm\u0027.replace\n    run_target function\n        | Fsharp =\u003E fun () =\u003E $\u0027System.DateTime.ParseExact (!date_time_guid.[..24] |\u003E !sm\u0027_replace \u0022-\u0022 \u0022\u0022, \u0022yyyyMMddHHmmssfffffff\u0022, null)\u0027 : date_time\n        | Rust _ =\u003E fun () =\u003E\n            $\u0027System.DateTime.Parse (!date_time_guid.[..24] |\u003E !sm\u0027_replace \u0022-\u0022 \u0022\u0022)\u0027 : date_time\n\n// // ## ticks_guid_from_ticks\n\ninl ticks_guid_from_ticks (guid : guid.guid) (ticks : ticks) : ticks_guid =\n    inl guid = guid |\u003E sm\u0027.obj_to_string\n    inl ticks = ticks |\u003E sm\u0027.obj_to_string |\u003E sm\u0027.pad_left 18i32 \u00270\u0027\n    $\u0027\u0060ticks_guid $\u0022{!ticks.[0..7]}-{!ticks.[8..11]}-{!ticks.[12..15]}-{!ticks.[16..17]}{!guid.[21..]}\u0022\u0027\n\n// // ## ticks_from_guid\n\ninl ticks_from_guid (guid : date_time_guid) : ticks =\n    inl guid = guid |\u003E sm\u0027.obj_to_string\n    $\u0027\u0060i64 $\u0022{!guid.[0..7]}{!guid.[9..12]}{!guid.[14..17]}{!guid.[19..20]}\u0022\u0027\n\n// // ## new_guid_from_date_time\n\ninl new_guid_from_date_time (date_time : date_time) =\n    inl guid = guid.new_raw_guid ()\n    date_time_guid_from_date_time guid date_time\n\n// // ## new_guid_from_ticks\n\ninl new_guid_from_ticks (ticks : ticks) =\n    inl guid = guid.new_raw_guid ()\n    ticks_guid_from_ticks guid ticks\n\n// // ## main\n\ninl main () =\n    $\u0022let date_time_guid_from_date_time x = !date_time_guid_from_date_time x\u0022 : ()\n    $\u0022let date_time_from_guid x = !date_time_from_guid x\u0022 : ()\n    $\u0022let ticks_guid_from_ticks x = !ticks_guid_from_ticks x\u0022 : ()\n    $\u0022let ticks_from_guid x = !ticks_from_guid x\u0022 : ()\n    $\u0022let new_guid_from_date_time x = !new_guid_from_date_time x\u0022 : ()\n    $\u0022let new_guid_from_ticks x = !new_guid_from_ticks x\u0022 : ()\n","uri":"file:///home/runner/work/polyglot/polyglot/lib/spiral/date_time.spi"}} / result.Length:
00:00:01 #33 [Debug] sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///home/runner/work/polyglot/polyglot/lib/spiral/date_time.spi"}} / result.Length:
00:00:01 #32 [Debug] sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///home/runner/work/polyglot/polyglot/lib/spiral/common.spi"}} / result.Length:
00:00:01 #34 [Debug] sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///home/runner/work/polyglot/polyglot/lib/spiral/file_system.spi"}} / result.Length:
00:00:01 #35 [Verbose] > Building /home/runner/work/polyglot/polyglot/lib/spiral/common.spi
00:00:01 #36 [Verbose] > Building /home/runner/work/polyglot/polyglot/lib/spiral/date_time.spi
00:00:01 #37 [Verbose] > Building /home/runner/work/polyglot/polyglot/lib/spiral/file_system.spi
00:00:01 #38 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: [] / typeErrorCount: 0
00:00:01 #39 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: [] / typeErrorCount: 0
00:00:01 #40 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: [] / typeErrorCount: 0
00:00:02 #41 [Debug] buildFile / takeWhileInclusive / fsxContent: let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
    let v2 : string = v0.ToString ()
    let v3 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
    let v4 : System.Guid = System.Guid $"{v3}{v2.[v3.Length..]}"
    v4
and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
    closure1(v0)
and closure5 (v0 : string, v1 : string) (v2 : string) : string =
    let v3 : string = v2.Replace (v0, v1)
    v3
and closure4 (v0 : string) (v1 : string) : (string -> string) =
    closure5(v0, v1)
and closure3 () (v0 : string) : (string -> (string -> string)) =
    closure4(v0)
and method0 () : (string -> (string -> (string -> string))) =
    closure3()
and closure2 () (v0 : System.Guid) : System.DateTime =
  ... / errors: [] / typeErrorCount: 0
00:00:02 #42 [Debug] buildFile / takeWhileInclusive / fsxContent: let rec closure0 () () : string =
    let v0 : string = System.Reflection.Assembly.GetEntryAssembly().GetName().Name
    let v1 : (unit -> string) = System.IO.Path.GetTempPath
    let v2 : string = v1 ()
    let v3 : string = $"{v0}"
    let v4 : string = System.IO.Path.Combine (v2, v3)
    let v5 : System.DateTime = System.DateTime.Now
    let v6 : System.Guid = System.Guid.NewGuid ()
    let v7 : string = v6.ToString ()
    let v8 : string = v5.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
    let v9 : System.Guid = System.Guid $"{v8}{v7.[v8.Length..]}"
    let v10 : string = v9.ToString ()
    let v11 : string = System.IO.Path.Combine (v4, v10)
    v11
let v0 : (unit -> string) = closure0()
let create_temp_directory_name x = v0 x
()
 / errors: [] / typeErrorCount: 0
00:00:02 #43 [Debug] buildFile / takeWhileInclusive / fsxContent: type [<Struct>] US0 =
    | US0_0
    | US0_1
and [<Struct>] US1 =
    | US1_0
    | US1_1 of f1_0 : US0
let rec method0 (v0 : (unit -> unit)) : (unit -> unit) =
    v0
and closure0 () (v0 : (unit -> unit)) : System.IDisposable =
    let mutable result = None
    #if FABLE_COMPILER_RUST && !WASM
    let v1 : (unit -> unit) = method0(v0)
    let v2 : System.IDisposable = { new System.IDisposable with member _.Dispose () = Fable.Core.RustInterop.emitRustExpr () "v1()" }
    v2
    #endif
    #if FABLE_COMPILER_RUST && WASM
    let v3 : (unit -> unit) = method0(v0)
    let v4 : System.IDisposable = { new System.IDisposable with member _.Dispose () = Fable.Core.RustInterop.emitRustExpr () "v3()" }
    v4
    #endif
    #if !FABLE_COMPILER && !F... / errors: [] / typeErrorCount: 0
00:00:02 #44 [Debug] watchWithFilter / Disposing watch stream / filter: FileName, LastWrite
00:00:02 #45 [Debug] watchWithFilter / Disposing watch stream / filter: FileName, LastWrite
00:00:02 #46 [Debug] watchWithFilter / Disposing watch stream / filter: FileName, LastWrite
00:00:02 #47 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:02 #48 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: [] / typeErrorCount: 0
00:00:02 #49 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: [] / typeErrorCount: 0
00:00:02 #50 [Debug] sendJson / port: 13805 / json: {"FileOpen":{"spiText":"// // # guid\n\n// // ## guid\n\nnominal guid = $\u0022System.Guid\u0022\n\n// // ## new_guid\n\ninl new_guid (x : string) : guid =\n    $\u0027\u0060guid !x \u0027\n\n// // ## new_raw_guid\n\ninl new_raw_guid () : guid =\n    $\u0022System.Guid.NewGuid ()\u0022\n\n// // ## main\n\ninl main () =\n    $\u0022let new_guid x = !new_guid x\u0022 : ()\n    $\u0022let new_raw_guid x = !new_raw_guid x\u0022 : ()\n","uri":"file:///home/runner/work/polyglot/polyglot/lib/spiral/guid.spi"}} / result.Length:
00:00:02 #51 [Debug] sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///home/runner/work/polyglot/polyglot/lib/spiral/guid.spi"}} / result.Length:
00:00:02 #52 [Verbose] > Building /home/runner/work/polyglot/polyglot/lib/spiral/guid.spi
00:00:02 #53 [Debug] buildFile / takeWhileInclusive / fsxContent: let rec closure0 () (v0 : string) : System.Guid =
    let v1 : System.Guid = System.Guid v0 
    v1
and closure1 () () : System.Guid =
    let v0 : System.Guid = System.Guid.NewGuid ()
    v0
let v0 : (string -> System.Guid) = closure0()
let new_guid x = v0 x
let v1 : (unit -> System.Guid) = closure1()
let new_raw_guid x = v1 x
()
 / errors: [] / typeErrorCount: 0
00:00:02 #54 [Debug] watchWithFilter / Disposing watch stream / filter: FileName, LastWrite
00:00:02 #55 [Verbose] waitForPortAccess / port: 13805 / retry: 0
00:00:02 #56 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
In [ ]:
{ . "$ScriptDir/../lib/math/build.ps1" } | Invoke-Block
00:00:00 #1 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #2 [Debug] runWithTimeoutAsync / timeout: 60
00:00:00 #3 [Debug] executeAsync / options: { Command =
   "dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64"
  WorkingDirectory = None
  CancellationToken = Some System.Threading.CancellationToken
  OnLine = Some <fun:main@425-61> }
00:00:00 #4 [Verbose] > pwd: /home/runner/work/polyglot/polyglot/lib/math
00:00:00 #5 [Verbose] > dll_path: /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release
00:00:00 #6 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #7 [Verbose] waitForPortAccess / port: 13805 / retry: 0
00:00:00 #8 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #9 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #10 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #11 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #12 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #13 [Verbose] > Starting the Spiral Server. It is bound to: http://localhost:13805
00:00:00 #14 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #15 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #16 [Debug] sendJson / port: 13805 / json: {"Ping":true} / result.Length:
00:00:00 #17 [Verbose] awaitCompiler / Ping / result: Some(null) / port: 13805 / retry: 0
00:00:00 #18 [Verbose] > Server bound to: http://localhost:13805
00:00:00 #19 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 math.dib""
  WorkingDirectory = None
  CancellationToken = Some System.Threading.CancellationToken
  OnLine = None }
00:00:02 #20 [Verbose] >
00:00:02 #21 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:02 #22 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:02 #23 [Verbose] > │ # math                                                                       │
00:00:02 #24 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:02 #25 [Verbose] >
00:00:02 #26 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:02 #27 [Verbose] > open testing
00:00:02 #28 [Verbose] > open rust_operators
00:00:04 #29 [Verbose] > Building /tmp/dotnet-repl/20240329-2209-2117-1724-1ee53f319209/main.spi
00:00:06 #30 [Verbose] >
00:00:06 #31 [Verbose] > ╭─[ 3.93s - stdout ]───────────────────────────────────────────────────────────╮
00:00:06 #32 [Verbose] > │ ()                                                                           │
00:00:06 #33 [Verbose] > │                                                                              │
00:00:06 #34 [Verbose] > │                                                                              │
00:00:06 #35 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:06 #36 [Verbose] >
00:00:06 #37 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:06 #38 [Verbose] > inl types () =
00:00:06 #39 [Verbose] >     global "[[<Fable.Core.Erase;
00:00:06 #40 [Verbose] > Fable.Core.Emit(\"num_complex::Complex<$0>\")>]] type num_complex_Complex<'T> =
00:00:06 #41 [Verbose] > class end"
00:00:06 #42 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"pyo3::types::PyModule\")>]]
00:00:06 #43 [Verbose] > type pyo3_types_PyModule = class end"
00:00:06 #44 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"pyo3::Bound<$0>\")>]] type
00:00:06 #45 [Verbose] > pyo3_Bound<'T> = class end"
00:00:06 #46 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"pyo3::Python\")>]] type
00:00:06 #47 [Verbose] > pyo3_Python = class end"
00:00:06 #48 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"pyo3::PyAny\")>]] type
00:00:06 #49 [Verbose] > pyo3_PyAny = class end"
00:00:06 #50 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"pyo3::PyErr\")>]] type
00:00:06 #51 [Verbose] > pyo3_PyErr = class end"
00:00:06 #52 [Verbose] > Building /tmp/dotnet-repl/20240329-2209-2370-7049-7541f74bf109/main.spi
00:00:06 #53 [Verbose] >
00:00:06 #54 [Verbose] > ╭─[ 187.33ms - stdout ]────────────────────────────────────────────────────────╮
00:00:06 #55 [Verbose] > │ ()                                                                           │
00:00:06 #56 [Verbose] > │                                                                              │
00:00:06 #57 [Verbose] > │                                                                              │
00:00:06 #58 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:06 #59 [Verbose] >
00:00:06 #60 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:06 #61 [Verbose] > inl types () =
00:00:06 #62 [Verbose] >     rust.types ()
00:00:06 #63 [Verbose] >     sm'.types ()
00:00:06 #64 [Verbose] >     types ()
00:00:06 #65 [Verbose] > Building /tmp/dotnet-repl/20240329-2209-2388-8868-824e2610b6c5/main.spi
00:00:07 #66 [Verbose] >
00:00:07 #67 [Verbose] > ╭─[ 163.48ms - stdout ]────────────────────────────────────────────────────────╮
00:00:07 #68 [Verbose] > │ ()                                                                           │
00:00:07 #69 [Verbose] > │                                                                              │
00:00:07 #70 [Verbose] > │                                                                              │
00:00:07 #71 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:07 #72 [Verbose] >
00:00:07 #73 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:07 #74 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:07 #75 [Verbose] > │ ## complex                                                                   │
00:00:07 #76 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:07 #77 [Verbose] >
00:00:07 #78 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:07 #79 [Verbose] > nominal complex t = $"num_complex_Complex<`t>"
00:00:07 #80 [Verbose] > nominal bound t = $"pyo3_Bound<`t>"
00:00:07 #81 [Verbose] > nominal python = $"pyo3_Python"
00:00:07 #82 [Verbose] > nominal pymodule = $"pyo3_types_PyModule"
00:00:07 #83 [Verbose] > nominal pyany = $"pyo3_PyAny"
00:00:07 #84 [Verbose] > nominal pyerr = $"pyo3_PyErr"
00:00:07 #85 [Verbose] >
00:00:07 #86 [Verbose] > inl complex forall t. ((re : t), (im : t)) : complex t =
00:00:07 #87 [Verbose] >     inl re = join re
00:00:07 #88 [Verbose] >     inl re = join re
00:00:07 #89 [Verbose] >     inl im = join im
00:00:07 #90 [Verbose] >     !\($'"num_complex::Complex::new(!re, !im)"')
00:00:07 #91 [Verbose] > Building /tmp/dotnet-repl/20240329-2209-2405-0516-0637cc9a305e/main.spi
00:00:07 #92 [Verbose] >
00:00:07 #93 [Verbose] > ╭─[ 166.39ms - stdout ]────────────────────────────────────────────────────────╮
00:00:07 #94 [Verbose] > │ ()                                                                           │
00:00:07 #95 [Verbose] > │                                                                              │
00:00:07 #96 [Verbose] > │                                                                              │
00:00:07 #97 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:07 #98 [Verbose] >
00:00:07 #99 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:07 #100 [Verbose] > // // test
00:00:07 #101 [Verbose] > // // rust=
00:00:07 #102 [Verbose] >
00:00:07 #103 [Verbose] > types ()
00:00:07 #104 [Verbose] >
00:00:07 #105 [Verbose] > complex (0f64, 0f64)
00:00:07 #106 [Verbose] > |> sm'.format'
00:00:07 #107 [Verbose] > |> sm'.from_std_string
00:00:07 #108 [Verbose] > |> _assert_eq "0+0i"
00:00:07 #109 [Verbose] > Building /tmp/dotnet-repl/20240329-2209-2421-2185-220ef0ed928a/main.spi
00:00:10 #110 [Verbose] >
00:00:10 #111 [Verbose] > ╭─[ 3.12s - return value ]─────────────────────────────────────────────────────╮
00:00:10 #112 [Verbose] > │ .rs output:                                                                  │
00:00:10 #113 [Verbose] > │ "0+0i"                                                                       │
00:00:10 #114 [Verbose] > │                                                                              │
00:00:10 #115 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:10 #116 [Verbose] >
00:00:10 #117 [Verbose] > ╭─[ 3.13s - stdout ]───────────────────────────────────────────────────────────╮
00:00:10 #118 [Verbose] > │                                                                              │
00:00:10 #119 [Verbose] > │ .fsx:                                                                        │
00:00:10 #120 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Func0<$0>")>] type Func0<'T> = class    │
00:00:10 #121 [Verbose] > │ end                                                                          │
00:00:10 #122 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Func1<$0, $1>")>] type Func0<'T, 'U> =  │
00:00:10 #123 [Verbose] > │ class end                                                                    │
00:00:10 #124 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Box<$0>")>] type Box<'T> = class end    │
00:00:10 #125 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("dyn $0")>] type Dyn<'T> = class end     │
00:00:10 #126 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Fn() -> $0")>] type Fn<'T> = class end  │
00:00:10 #127 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Fn()")>] type FnUnit = class end        │
00:00:10 #128 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("FnOnce() -> $0")>] type FnOnce<'T> =    │
00:00:10 #129 [Verbose] > │ class end                                                                    │
00:00:10 #130 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Fn($0, $1)")>] type ActionFn2<'T, 'U> = │
00:00:10 #131 [Verbose] > │ class end                                                                    │
00:00:10 #132 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("impl $0")>] type Impl<'T> = class end   │
00:00:10 #133 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("mut $0")>] type Mut<'T> = class end     │
00:00:10 #134 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("&$0")>] type Ref<'T> = class end        │
00:00:10 #135 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("&'static $0")>] type StaticRef<'T> =    │
00:00:10 #136 [Verbose] > │ class end                                                                    │
00:00:10 #137 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("MutCell<$0>")>] type MutCell<'T> =      │
00:00:10 #138 [Verbose] > │ class end                                                                    │
00:00:10 #139 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::any::Any")>] type std_any_Any =    │
00:00:10 #140 [Verbose] > │ class end                                                                    │
00:00:10 #141 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::cell::RefCell<$0>")>] type         │
00:00:10 #142 [Verbose] > │ std_cell_RefCell<'T> = class end                                             │
00:00:10 #143 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::pin::Pin<$0>")>] type              │
00:00:10 #144 [Verbose] > │ std_pin_Pin<'T> = class end                                                  │
00:00:10 #145 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::rc::Rc<$0>")>] type std_rc_Rc<'T>  │
00:00:10 #146 [Verbose] > │ = class end                                                                  │
00:00:10 #147 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::rc::Weak<$0>")>] type              │
00:00:10 #148 [Verbose] > │ std_rc_Weak<'T> = class end                                                  │
00:00:10 #149 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::sync::Arc<$0>")>] type             │
00:00:10 #150 [Verbose] > │ std_sync_Arc<'T> = class end                                                 │
00:00:10 #151 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("str")>] type Str = class end            │
00:00:10 #152 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>] type            │
00:00:10 #153 [Verbose] > │ base64_DecodeError = class end                                               │
00:00:10 #154 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>] type               │
00:00:10 #155 [Verbose] > │ borsh_io_Error = class end                                                   │
00:00:10 #156 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>] type               │
00:00:10 #157 [Verbose] > │ js_sys_JsString = class end                                                  │
00:00:10 #158 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>] type              │
00:00:10 #159 [Verbose] > │ serde_json_Error = class end                                                 │
00:00:10 #160 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>] type              │
00:00:10 #161 [Verbose] > │ serde_json_Value = class end                                                 │
00:00:10 #162 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>] type      │
00:00:10 #163 [Verbose] > │ serde_wasm_bindgen_Error = class end                                         │
00:00:10 #164 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::str::Utf8Error")>] type            │
00:00:10 #165 [Verbose] > │ std_str_Utf8Error = class end                                                │
00:00:10 #166 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] type            │
00:00:10 #167 [Verbose] > │ std_string_String = class end                                                │
00:00:10 #168 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("num_complex::Complex<$0>")>] type       │
00:00:10 #169 [Verbose] > │ num_complex_Complex<'T> = class end                                          │
00:00:10 #170 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("pyo3::types::PyModule")>] type          │
00:00:10 #171 [Verbose] > │ pyo3_types_PyModule = class end                                              │
00:00:10 #172 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("pyo3::Bound<$0>")>] type pyo3_Bound<'T> │
00:00:10 #173 [Verbose] > │ = class end                                                                  │
00:00:10 #174 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("pyo3::Python")>] type pyo3_Python =     │
00:00:10 #175 [Verbose] > │ class end                                                                    │
00:00:10 #176 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("pyo3::PyAny")>] type pyo3_PyAny = class │
00:00:10 #177 [Verbose] > │ end                                                                          │
00:00:10 #178 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("pyo3::PyErr")>] type pyo3_PyErr = class │
00:00:10 #179 [Verbose] > │ end                                                                          │
00:00:10 #180 [Verbose] > │ let rec method1 () : float =                                                 │
00:00:10 #181 [Verbose] > │     0.0                                                                      │
00:00:10 #182 [Verbose] > │ and method2 (v0 : float) : float =                                           │
00:00:10 #183 [Verbose] > │     v0                                                                       │
00:00:10 #184 [Verbose] > │ and method3 () : float =                                                     │
00:00:10 #185 [Verbose] > │     0.0                                                                      │
00:00:10 #186 [Verbose] > │ and method4 (v0 : std_string_String) : std_string_String =                   │
00:00:10 #187 [Verbose] > │     v0                                                                       │
00:00:10 #188 [Verbose] > │ and method5 (v0 : bool) : bool =                                             │
00:00:10 #189 [Verbose] > │     v0                                                                       │
00:00:10 #190 [Verbose] > │ and method0 () : unit =                                                      │
00:00:10 #191 [Verbose] > │     let v0 : float = method1()                                               │
00:00:10 #192 [Verbose] > │     let v1 : float = method2(v0)                                             │
00:00:10 #193 [Verbose] > │     let v2 : float = method3()                                               │
00:00:10 #194 [Verbose] > │     let v3 : string = "num_complex::Complex::new(v1, v2)"                    │
00:00:10 #195 [Verbose] > │     let v4 : num_complex_Complex<float> =                                    │
00:00:10 #196 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v3                                    │
00:00:10 #197 [Verbose] > │     let v5 : string = @$"format!(""{{}}"", $0)"                              │
00:00:10 #198 [Verbose] > │     let v6 : std_string_String = Fable.Core.RustInterop.emitRustExpr v4 v5   │
00:00:10 #199 [Verbose] > │     let v7 : std_string_String = method4(v6)                                 │
00:00:10 #200 [Verbose] > │     let v8 : string = "fable_library_rust::String_::fromString(v7)"          │
00:00:10 #201 [Verbose] > │     let v9 : string = Fable.Core.RustInterop.emitRustExpr () v8              │
00:00:10 #202 [Verbose] > │     let v10 : string = $"%A{v9}"                                             │
00:00:10 #203 [Verbose] > │     System.Console.WriteLine v10                                             │
00:00:10 #204 [Verbose] > │     let v12 : bool = v9 = "0+0i"                                             │
00:00:10 #205 [Verbose] > │     let v14 : bool =                                                         │
00:00:10 #206 [Verbose] > │         if v12 then                                                          │
00:00:10 #207 [Verbose] > │             true                                                             │
00:00:10 #208 [Verbose] > │         else                                                                 │
00:00:10 #209 [Verbose] > │             method5(v12)                                                     │
00:00:10 #210 [Verbose] > │     let v15 : string = "0+0i"                                                │
00:00:10 #211 [Verbose] > │     let v16 : string = $"__expect / actual: %A{v9} / expected: %A{v15}"      │
00:00:10 #212 [Verbose] > │     let v17 : bool = v14 = false                                             │
00:00:10 #213 [Verbose] > │     if v17 then                                                              │
00:00:10 #214 [Verbose] > │         failwith<unit> v16                                                   │
00:00:10 #215 [Verbose] > │ method0()                                                                    │
00:00:10 #216 [Verbose] > │                                                                              │
00:00:10 #217 [Verbose] > │                                                                              │
00:00:10 #218 [Verbose] > │ .rs:                                                                         │
00:00:10 #219 [Verbose] > │ #![allow(dead_code,)]                                                        │
00:00:10 #220 [Verbose] > │ #![allow(non_camel_case_types,)]                                             │
00:00:10 #221 [Verbose] > │ #![allow(non_snake_case,)]                                                   │
00:00:10 #222 [Verbose] > │ #![allow(non_upper_case_globals,)]                                           │
00:00:10 #223 [Verbose] > │ #![allow(unreachable_code,)]                                                 │
00:00:10 #224 [Verbose] > │ #![allow(unused_attributes,)]                                                │
00:00:10 #225 [Verbose] > │ #![allow(unused_imports,)]                                                   │
00:00:10 #226 [Verbose] > │ #![allow(unused_macros,)]                                                    │
00:00:10 #227 [Verbose] > │ #![allow(unused_parens,)]                                                    │
00:00:10 #228 [Verbose] > │ #![allow(unused_variables,)]                                                 │
00:00:10 #229 [Verbose] > │ mod module_ccfa04bf {                                                        │
00:00:10 #230 [Verbose] > │     pub mod Spiral_eval {                                                    │
00:00:10 #231 [Verbose] > │         use super::*;                                                        │
00:00:10 #232 [Verbose] > │         use fable_library_rust::Native_::on_startup;                         │
00:00:10 #233 [Verbose] > │         use fable_library_rust::String_::printfn;                            │
00:00:10 #234 [Verbose] > │         use fable_library_rust::String_::sprintf;                            │
00:00:10 #235 [Verbose] > │         use fable_library_rust::String_::string;                             │
00:00:10 #236 [Verbose] > │         pub fn method1() -> f64 { 0.0_f64 }                                  │
00:00:10 #237 [Verbose] > │         pub fn method2(v0: f64) -> f64 { v0 }                                │
00:00:10 #238 [Verbose] > │         pub fn method3() -> f64 { 0.0_f64 }                                  │
00:00:10 #239 [Verbose] > │         pub fn method4(v0: std::string::String) -> std::string::String { v0  │
00:00:10 #240 [Verbose] > │ }                                                                            │
00:00:10 #241 [Verbose] > │         pub fn method5(v0: bool) -> bool { v0 }                              │
00:00:10 #242 [Verbose] > │         pub fn method0() {                                                   │
00:00:10 #243 [Verbose] > │             let v1: f64 = Spiral_eval::method2(Spiral_eval::method1());      │
00:00:10 #244 [Verbose] > │             let v2: f64 = Spiral_eval::method3();                            │
00:00:10 #245 [Verbose] > │             let v4: num_complex::Complex<f64> =                              │
00:00:10 #246 [Verbose] > │                 num_complex::Complex::new(v1, v2);                           │
00:00:10 #247 [Verbose] > │             let v7: std::string::String =                                    │
00:00:10 #248 [Verbose] > │                 Spiral_eval::method4(format!("{}", v4));                     │
00:00:10 #249 [Verbose] > │             let v9: string = fable_library_rust::String_::fromString(v7);    │
00:00:10 #250 [Verbose] > │             let v10: string = sprintf!("{:?}", v9.clone());                  │
00:00:10 #251 [Verbose] > │             printfn!("{0}", v10);                                            │
00:00:10 #252 [Verbose] > │             {                                                                │
00:00:10 #253 [Verbose] > │                 let v12: bool = v9.clone() == string("0+0i");                │
00:00:10 #254 [Verbose] > │                 if (if v12 { true } else { Spiral_eval::method5(v12) }) ==   │
00:00:10 #255 [Verbose] > │                        false {                                               │
00:00:10 #256 [Verbose] > │                     panic!("{}",                                             │
00:00:10 #257 [Verbose] > │                            sprintf!("__expect / actual: {:?} / expected:     │
00:00:10 #258 [Verbose] > │ {:?}", v9, string("0+0i")));                                                 │
00:00:10 #259 [Verbose] > │                 }                                                            │
00:00:10 #260 [Verbose] > │             }                                                                │
00:00:10 #261 [Verbose] > │         }                                                                    │
00:00:10 #262 [Verbose] > │         on_startup!(Spiral_eval::method0());                                 │
00:00:10 #263 [Verbose] > │     }                                                                        │
00:00:10 #264 [Verbose] > │ }                                                                            │
00:00:10 #265 [Verbose] > │ pub use module_ccfa04bf::*;                                                  │
00:00:10 #266 [Verbose] > │                                                                              │
00:00:10 #267 [Verbose] > │                                                                              │
00:00:10 #268 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:10 #269 [Verbose] >
00:00:10 #270 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:10 #271 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:10 #272 [Verbose] > │ ## complex_sin                                                               │
00:00:10 #273 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:10 #274 [Verbose] >
00:00:10 #275 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:10 #276 [Verbose] > inl re forall t. (c : complex t) : t =
00:00:10 #277 [Verbose] >     inl c = join c
00:00:10 #278 [Verbose] >     !\($'"!c.re"')
00:00:10 #279 [Verbose] >
00:00:10 #280 [Verbose] > inl im forall t. (c : complex t) : t =
00:00:10 #281 [Verbose] >     inl c = join c
00:00:10 #282 [Verbose] >     !\($'"!c.im"')
00:00:10 #283 [Verbose] >
00:00:10 #284 [Verbose] > inl complex_unbox forall t. (c : complex t) =
00:00:10 #285 [Verbose] >     re c, im c
00:00:10 #286 [Verbose] >
00:00:10 #287 [Verbose] > inl (~.^) c = complex c
00:00:10 #288 [Verbose] >
00:00:10 #289 [Verbose] > inl complex_eq forall t. (a : complex t) (b : complex t) : bool =
00:00:10 #290 [Verbose] >     !\($'"!a == !b"')
00:00:10 #291 [Verbose] >
00:00:10 #292 [Verbose] > inl (.=) a b = complex_eq a b
00:00:10 #293 [Verbose] >
00:00:10 #294 [Verbose] > instance equable complex t = complex_eq
00:00:10 #295 [Verbose] >
00:00:10 #296 [Verbose] > inl complex_add forall t. (a : complex t) (b : complex t) : complex t =
00:00:10 #297 [Verbose] >     !\($'"!a + !b"')
00:00:10 #298 [Verbose] >
00:00:10 #299 [Verbose] > inl (.+) a b = complex_add a b
00:00:10 #300 [Verbose] >
00:00:10 #301 [Verbose] > inl complex_sub forall t. (a : complex t) (b : complex t) : complex t =
00:00:10 #302 [Verbose] >     !\($'"!a - !b"')
00:00:10 #303 [Verbose] >
00:00:10 #304 [Verbose] > inl (.-) a b = complex_sub a b
00:00:10 #305 [Verbose] >
00:00:10 #306 [Verbose] > inl complex_mult forall t. (a : complex t) (b : complex t) : complex t =
00:00:10 #307 [Verbose] >     !\($'"!a * !b"')
00:00:10 #308 [Verbose] >
00:00:10 #309 [Verbose] > inl (.*) a b = complex_mult a b
00:00:10 #310 [Verbose] >
00:00:10 #311 [Verbose] > inl complex_div forall t. (a : complex t) (b : complex t) : complex t =
00:00:10 #312 [Verbose] >     !\($'"!a / !b"')
00:00:10 #313 [Verbose] >
00:00:10 #314 [Verbose] > inl (./) a b = complex_div a b
00:00:10 #315 [Verbose] >
00:00:10 #316 [Verbose] > inl powc forall t. (s : complex t) (c : complex t) : complex t =
00:00:10 #317 [Verbose] >     inl c = join c
00:00:10 #318 [Verbose] >     inl s = join s
00:00:10 #319 [Verbose] >     !\($'"num_complex::Complex::powc(!c, !s)"')
00:00:10 #320 [Verbose] >
00:00:10 #321 [Verbose] > inl (.**) a b = powc b a
00:00:10 #322 [Verbose] >
00:00:10 #323 [Verbose] > inl complex_sin forall t. (c : complex t) : complex t =
00:00:10 #324 [Verbose] >     !\($'"!c.sin()"')
00:00:10 #325 [Verbose] >
00:00:10 #326 [Verbose] > inl conj forall t. (c : complex t) : complex t =
00:00:10 #327 [Verbose] >     !\($'"!c.conj()"')
00:00:10 #328 [Verbose] > Building /tmp/dotnet-repl/20240329-2209-2735-3578-37ba6375d093/main.spi
00:00:10 #329 [Verbose] >
00:00:10 #330 [Verbose] > ╭─[ 183.95ms - stdout ]────────────────────────────────────────────────────────╮
00:00:10 #331 [Verbose] > │ ()                                                                           │
00:00:10 #332 [Verbose] > │                                                                              │
00:00:10 #333 [Verbose] > │                                                                              │
00:00:10 #334 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:10 #335 [Verbose] >
00:00:10 #336 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:10 #337 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:10 #338 [Verbose] > │ ## zeta                                                                      │
00:00:10 #339 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:10 #340 [Verbose] >
00:00:10 #341 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:10 #342 [Verbose] > inl zeta log (gamma : complex f64 -> complex f64) (s : complex f64) : complex
00:00:10 #343 [Verbose] > f64 =
00:00:10 #344 [Verbose] >     inl rec zeta count gamma s =
00:00:10 #345 [Verbose] >         inl s = join s
00:00:10 #346 [Verbose] >         if log then
00:00:10 #347 [Verbose] >             !\($'"println\!(\\\"zeta / count: {:?} / s: {:?}\\\", !count, !s)"')
00:00:10 #348 [Verbose] >         if re s > 1 then
00:00:10 #349 [Verbose] >             (.^(0, 0), (am.init 10000i32 id : a i32 _))
00:00:10 #350 [Verbose] >             ||> am.fold fun acc n =>
00:00:10 #351 [Verbose] >                 acc .+ (.^(1, 0) ./ (.^(f64 n, 0) .** s))
00:00:10 #352 [Verbose] >         else
00:00:10 #353 [Verbose] >             inl gamma_term = gamma (.^(1, 0) .- s)
00:00:10 #354 [Verbose] >             inl sin_term = .^(pi, 0) .* s ./ .^(2, 0) |> complex_sin
00:00:10 #355 [Verbose] >             inl one_minus_s = .^(1 - re s, -(im s))
00:00:10 #356 [Verbose] >             inl mirror_term =
00:00:10 #357 [Verbose] >                 if re one_minus_s <= 1
00:00:10 #358 [Verbose] >                 then .^(0, 0)
00:00:10 #359 [Verbose] >                 else
00:00:10 #360 [Verbose] >                     if count <= 3
00:00:10 #361 [Verbose] >                     then zeta (count + 1) gamma one_minus_s
00:00:10 #362 [Verbose] >                     else one_minus_s
00:00:10 #363 [Verbose] >             inl reflection_formula =
00:00:10 #364 [Verbose] >                 .^(2, 0) .* (.^(pi, 0) .** s) .* sin_term .* gamma_term .*
00:00:10 #365 [Verbose] > mirror_term
00:00:10 #366 [Verbose] >             reflection_formula
00:00:10 #367 [Verbose] >     join zeta 0i32 gamma s
00:00:10 #368 [Verbose] > Building /tmp/dotnet-repl/20240329-2209-2754-5428-55023608ea6f/main.spi
00:00:10 #369 [Verbose] >
00:00:10 #370 [Verbose] > ╭─[ 169.91ms - stdout ]────────────────────────────────────────────────────────╮
00:00:10 #371 [Verbose] > │ ()                                                                           │
00:00:10 #372 [Verbose] > │                                                                              │
00:00:10 #373 [Verbose] > │                                                                              │
00:00:10 #374 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:10 #375 [Verbose] >
00:00:10 #376 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:10 #377 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:10 #378 [Verbose] > │ ## eval                                                                      │
00:00:10 #379 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:10 #380 [Verbose] >
00:00:10 #381 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:10 #382 [Verbose] > inl module_from_code (py : python) (code : string) : _ (bound pymodule) _ =
00:00:10 #383 [Verbose] >     inl py = join py
00:00:10 #384 [Verbose] >     inl code = code |> sm'.as_str
00:00:10 #385 [Verbose] >     !\($'"pyo3::types::PyModule::from_code_bound(!py, !code, \\"\\", \\"\\")"')
00:00:10 #386 [Verbose] >     |> resultm.map_error' fun (x : pyerr) => x |> sm'.format'
00:00:10 #387 [Verbose] >
00:00:10 #388 [Verbose] > inl use_pyanymethods () =
00:00:10 #389 [Verbose] >     global "Fable.Core.RustInterop.emitRustExpr () \");\nuse
00:00:10 #390 [Verbose] > pyo3::prelude::PyAnyMethods;\n//\""
00:00:10 #391 [Verbose] >
00:00:10 #392 [Verbose] > inl getattr (attr : string) (module : bound pymodule) : _ (bound pyany) _ =
00:00:10 #393 [Verbose] >     inl attr = attr |> sm'.as_str
00:00:10 #394 [Verbose] >     inl module = join module
00:00:10 #395 [Verbose] >     use_pyanymethods ()
00:00:10 #396 [Verbose] >     !\($'"!module.getattr(!attr)"')
00:00:10 #397 [Verbose] >     |> resultm.map_error' fun (x : pyerr) => x |> sm'.format'
00:00:10 #398 [Verbose] >
00:00:10 #399 [Verbose] > inl call forall t. (args : t) (module : bound pyany) : _ (bound pyany) _ =
00:00:10 #400 [Verbose] >     inl args = join args
00:00:10 #401 [Verbose] >     inl module = join module
00:00:10 #402 [Verbose] >     !\($'"pyo3::prelude::PyAnyMethods::call(&!module, ((*!args).0, *(*!args).1),
00:00:10 #403 [Verbose] > None)"')
00:00:10 #404 [Verbose] >     |> resultm.map_error' fun (x : pyerr) => x |> sm'.format'
00:00:10 #405 [Verbose] >
00:00:10 #406 [Verbose] > inl extract forall t. (result : bound pyany) : _ t _ =
00:00:10 #407 [Verbose] >     inl result = join result
00:00:10 #408 [Verbose] >     use_pyanymethods ()
00:00:10 #409 [Verbose] >     !\($'"!result.extract()"')
00:00:10 #410 [Verbose] >     |> resultm.map_error' fun (x : pyerr) => x |> sm'.format'
00:00:10 #411 [Verbose] >
00:00:10 #412 [Verbose] > inl eval py code (args : pair bool (pair f64 f64)) : _ (_ f64) sm'.std_string =
00:00:10 #413 [Verbose] >     inl code =
00:00:10 #414 [Verbose] >         code
00:00:10 #415 [Verbose] >         |> module_from_code py
00:00:10 #416 [Verbose] >         |> resultm.unwrap'
00:00:10 #417 [Verbose] >     inl fn =
00:00:10 #418 [Verbose] >         code
00:00:10 #419 [Verbose] >         |> getattr "fn"
00:00:10 #420 [Verbose] >         |> resultm.unwrap'
00:00:10 #421 [Verbose] >
00:00:10 #422 [Verbose] >     fn
00:00:10 #423 [Verbose] >     |> call args
00:00:10 #424 [Verbose] >     |> resultm.try'
00:00:10 #425 [Verbose] >     |> extract
00:00:10 #426 [Verbose] >     |> resultm.try'
00:00:10 #427 [Verbose] >     |> complex
00:00:10 #428 [Verbose] >     |> Ok
00:00:10 #429 [Verbose] >     |> resultm.box
00:00:10 #430 [Verbose] >
00:00:10 #431 [Verbose] > inl call1_ log py s code =
00:00:10 #432 [Verbose] >     inl code = join (a code : _ i32 _) |> sm'.concat_array_trailing "\n"
00:00:10 #433 [Verbose] >
00:00:10 #434 [Verbose] >     inl s = new_pair (re s) (im s)
00:00:10 #435 [Verbose] >     inl args = new_pair log s
00:00:10 #436 [Verbose] >
00:00:10 #437 [Verbose] >     eval py code args
00:00:10 #438 [Verbose] >
00:00:10 #439 [Verbose] > inl call1_ log name py s line =
00:00:10 #440 [Verbose] >     inl s = join s
00:00:10 #441 [Verbose] >     join
00:00:10 #442 [Verbose] >         ;[[
00:00:10 #443 [Verbose] >             $'$"import sys"'
00:00:10 #444 [Verbose] >             $'$"import traceback"'
00:00:10 #445 [Verbose] >             $'$"import re"'
00:00:10 #446 [Verbose] >             $'$"count = 0"'
00:00:10 #447 [Verbose] >             $'$"memory_address_pattern = re.compile(r\' at 0x[[0-9a-fA-F]]+\')"'
00:00:10 #448 [Verbose] >             $'$"def trace_calls(frame, event, arg):"'
00:00:10 #449 [Verbose] >             $'$"    global count"'
00:00:10 #450 [Verbose] >             $'$"    count += 1"'
00:00:10 #451 [Verbose] >             $'$"    if count < 200:"'
00:00:10 #452 [Verbose] >             $'$"        try:"'
00:00:10 #453 [Verbose] >             $'$"            args = {{ k: v for k, v in frame.f_locals.items() if
00:00:10 #454 [Verbose] > frame.f_code.co_name \!= \'make_mpc\' and k not in [[\'ctx\']] and not
00:00:10 #455 [Verbose] > callable(v) }}"'
00:00:10 #456 [Verbose] >             $'$"            args_str = \', \'.join([[
00:00:10 #457 [Verbose] > f\\\"{{k}}={{re.sub(memory_address_pattern, \' at 0x<?>\', repr(v))}}\\\" for k,
00:00:10 #458 [Verbose] > v in args.items() ]])"'
00:00:10 #459 [Verbose] >             $'$"            print(f\\\"{{event}}({!name}) / f_code.co_name:
00:00:10 #460 [Verbose] > {{frame.f_code.co_name}} / f_locals: {{args_str}} / f_lineno: {{frame.f_lineno}}
00:00:10 #461 [Verbose] > / f_code.co_filename:
00:00:10 #462 [Verbose] > {{frame.f_code.co_filename.split(\'site-packages\')[[-1]]}} / f_back.f_lineno:
00:00:10 #463 [Verbose] > {{ \'\' if frame.f_back is None else frame.f_back.f_lineno }}
00:00:10 #464 [Verbose] > f_back.f_code.co_filename: {{ \'\' if frame.f_back is None else
00:00:10 #465 [Verbose] > frame.f_back.f_code.co_filename.split(\'site-packages\')[[-1]] }} / arg:
00:00:10 #466 [Verbose] > {{re.sub(memory_address_pattern, \' at 0x<?>\', repr(arg))}}\\\", flush=True)"'
00:00:10 #467 [Verbose] >             $'$"        except ValueError as e:"'
00:00:10 #468 [Verbose] >             $'$"            print(f\'{!name} / e: {{e}}\', flush=True)"'
00:00:10 #469 [Verbose] >             $'$"        return trace_calls"'
00:00:10 #470 [Verbose] >             $'$"import mpmath"'
00:00:10 #471 [Verbose] >             $'$"def fn(log, s):"'
00:00:10 #472 [Verbose] >             $'$"    global count"'
00:00:10 #473 [Verbose] >             $'$"    if log:"'
00:00:10 #474 [Verbose] >             $'$"        print(f\'{!name} / s: {{s}} / count: {{count}}\',
00:00:10 #475 [Verbose] > flush=True)"'
00:00:10 #476 [Verbose] >             $'$"    s = complex(*s)"'
00:00:10 #477 [Verbose] >             $'$"    try:"'
00:00:10 #478 [Verbose] >             $'$"        if log: sys.settrace(trace_calls)"'
00:00:10 #479 [Verbose] >             line
00:00:10 #480 [Verbose] >             $'$"        if log:"'
00:00:10 #481 [Verbose] >             $'$"            sys.settrace(None)"'
00:00:10 #482 [Verbose] >             $'$"            print(f\'{!name} / result: {{s}} / count:
00:00:10 #483 [Verbose] > {{count}}\', flush=True)"'
00:00:10 #484 [Verbose] >             $'$"    except ValueError as e:"'
00:00:10 #485 [Verbose] >             $'$"        if s.real == 1:"'
00:00:10 #486 [Verbose] >             $'$"            s = complex(float(\'inf\'), 0)"'
00:00:10 #487 [Verbose] >             $'$"    return (s.real, s.imag)"'
00:00:10 #488 [Verbose] >         ]]
00:00:10 #489 [Verbose] >         |> call1_ log py s
00:00:10 #490 [Verbose] >
00:00:10 #491 [Verbose] > inl gamma_ log py s =
00:00:10 #492 [Verbose] >     call1_ log "gamma_" py s $'$"        s = mpmath.gamma(s)"'
00:00:10 #493 [Verbose] >
00:00:10 #494 [Verbose] > inl zeta_ log py s =
00:00:10 #495 [Verbose] >     call1_ log "zeta_" py s $'$"        s = mpmath.zeta(s)"'
00:00:10 #496 [Verbose] > Building /tmp/dotnet-repl/20240329-2209-2771-7163-70d355854292/main.spi
00:00:10 #497 [Verbose] >
00:00:10 #498 [Verbose] > ╭─[ 165.90ms - stdout ]────────────────────────────────────────────────────────╮
00:00:10 #499 [Verbose] > │ ()                                                                           │
00:00:10 #500 [Verbose] > │                                                                              │
00:00:10 #501 [Verbose] > │                                                                              │
00:00:10 #502 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:10 #503 [Verbose] >
00:00:10 #504 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:10 #505 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:10 #506 [Verbose] > │ ## run_test                                                                  │
00:00:10 #507 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:10 #508 [Verbose] >
00:00:10 #509 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:10 #510 [Verbose] > inl run_test log closure_fix (fn : (complex f64 -> complex f64) * (complex f64
00:00:10 #511 [Verbose] > -> complex f64) -> ()) =
00:00:10 #512 [Verbose] >     inl fn_ (py : python) : resultm.result' () pyerr =
00:00:10 #513 [Verbose] >         inl nan () =
00:00:10 #514 [Verbose] >             !\($'"f64::NAN"')
00:00:10 #515 [Verbose] >         inl gamma__ = fun (s : complex f64) =>
00:00:10 #516 [Verbose] >             inl result = gamma_ log py s
00:00:10 #517 [Verbose] >             if log then
00:00:10 #518 [Verbose] >                 inl s = join s
00:00:10 #519 [Verbose] >                 !\($'"println\!(\\\"gamma__ / s: {:?} / result: {:?}\\\", !s,
00:00:10 #520 [Verbose] > !result)"')
00:00:10 #521 [Verbose] >             result |> resultm.ok' |> optionm'.unbox |> optionm'.default_value
00:00:10 #522 [Verbose] > .^(nan (), nan ())
00:00:10 #523 [Verbose] >         inl zeta__ = fun (s : complex f64) =>
00:00:10 #524 [Verbose] >             inl result = zeta_ log py s
00:00:10 #525 [Verbose] >
00:00:10 #526 [Verbose] >             inl z = zeta true gamma__ s
00:00:10 #527 [Verbose] >
00:00:10 #528 [Verbose] >             if log then
00:00:10 #529 [Verbose] >                 inl s = join s
00:00:10 #530 [Verbose] >                 !\($'"println\!(\\\"zeta__ / s: {:?} / result: {:?} / z:
00:00:10 #531 [Verbose] > {:?}\\\", !s, !result, !z)"')
00:00:10 #532 [Verbose] >
00:00:10 #533 [Verbose] >     //             re result - re x |> abs
00:00:10 #534 [Verbose] >     //             |> _assert_lt 0.001
00:00:10 #535 [Verbose] >
00:00:10 #536 [Verbose] >     //             im result - im x |> abs
00:00:10 #537 [Verbose] >     //             |> _assert_lt 0.001
00:00:10 #538 [Verbose] >
00:00:10 #539 [Verbose] >             result |> resultm.ok' |> optionm'.unbox |> optionm'.default_value
00:00:10 #540 [Verbose] > .^(nan (), nan ())
00:00:10 #541 [Verbose] >         join fn (zeta__, gamma__)
00:00:10 #542 [Verbose] >
00:00:10 #543 [Verbose] >         Ok ()
00:00:10 #544 [Verbose] >         |> resultm.box
00:00:10 #545 [Verbose] >
00:00:10 #546 [Verbose] >     join
00:00:10 #547 [Verbose] >         !\($'"pyo3::prepare_freethreaded_python()"') : ()
00:00:10 #548 [Verbose] >
00:00:10 #549 [Verbose] >         !\($'"let __result = pyo3::Python::with_gil(|py| -> pyo3::PyResult<()> {
00:00:10 #550 [Verbose] > //"')
00:00:10 #551 [Verbose] >
00:00:10 #552 [Verbose] >         let x' = fn_ (!\($'"py"') : python)
00:00:10 #553 [Verbose] >         inl x' = join x'
00:00:10 #554 [Verbose] >
00:00:10 #555 [Verbose] >         inl closure_fix = 2u8, 1u8
00:00:10 #556 [Verbose] >         x' |> rust.fix_closure closure_fix
00:00:10 #557 [Verbose] >
00:00:10 #558 [Verbose] >         (!\($'"__result"') : _ () pyerr)
00:00:10 #559 [Verbose] >         |> resultm.unwrap'
00:00:10 #560 [Verbose] > Building /tmp/dotnet-repl/20240329-2209-2788-8807-8877e580632a/main.spi
00:00:11 #561 [Verbose] >
00:00:11 #562 [Verbose] > ╭─[ 177.58ms - stdout ]────────────────────────────────────────────────────────╮
00:00:11 #563 [Verbose] > │ ()                                                                           │
00:00:11 #564 [Verbose] > │                                                                              │
00:00:11 #565 [Verbose] > │                                                                              │
00:00:11 #566 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:11 #567 [Verbose] >
00:00:11 #568 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:11 #569 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:11 #570 [Verbose] > │ ## test_zeta_at_known_values_                                                │
00:00:11 #571 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:11 #572 [Verbose] >
00:00:11 #573 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:11 #574 [Verbose] > inl test_zeta_at_known_values_ log = run_test log (3u8, 2u8) fun zeta, gamma =>
00:00:11 #575 [Verbose] >     ;[[
00:00:11 #576 [Verbose] >         .^(2, 0), pi ** 2 / 6
00:00:11 #577 [Verbose] >         .^(-1, 0), -1 / 12
00:00:11 #578 [Verbose] >     ]]
00:00:11 #579 [Verbose] >     |> fun x => a x : _ i32 _
00:00:11 #580 [Verbose] >     |> am.iter fun s, e =>
00:00:11 #581 [Verbose] >         inl result = zeta s
00:00:11 #582 [Verbose] >
00:00:11 #583 [Verbose] >         result |> im |> _assert_eq 0
00:00:11 #584 [Verbose] >         re result - e |> abs |> _assert_lt 0.0001
00:00:11 #585 [Verbose] > Building /tmp/dotnet-repl/20240329-2209-2805-0586-0af5dac1c7c1/main.spi
00:00:11 #586 [Verbose] >
00:00:11 #587 [Verbose] > ╭─[ 194.98ms - stdout ]────────────────────────────────────────────────────────╮
00:00:11 #588 [Verbose] > │ ()                                                                           │
00:00:11 #589 [Verbose] > │                                                                              │
00:00:11 #590 [Verbose] > │                                                                              │
00:00:11 #591 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:11 #592 [Verbose] >
00:00:11 #593 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:11 #594 [Verbose] > // // test
00:00:11 #595 [Verbose] > // // rust=
00:00:11 #596 [Verbose] > // // print_code=false
00:00:11 #597 [Verbose] >
00:00:11 #598 [Verbose] > types ()
00:00:11 #599 [Verbose] > test_zeta_at_known_values_ true
00:00:11 #600 [Verbose] > Building /tmp/dotnet-repl/20240329-2209-2825-2535-2235789608c2/main.spi
00:00:16 #601 [Verbose] >
00:00:16 #602 [Verbose] > ╭─[ 5.01s - return value ]─────────────────────────────────────────────────────╮
00:00:16 #603 [Verbose] > │ zeta_ / s: (2.0, 0.0) / count: 0                                             │
00:00:16 #604 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, derivative=0,  │
00:00:16 #605 [Verbose] > │ method=None, kwargs={} / f_lineno: 528 / f_code.co_filename:                 │
00:00:16 #606 [Verbose] > │ /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:16 #607 [Verbose] > │ / arg: None                                                                  │
00:00:16 #608 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, derivative=0,  │
00:00:16 #609 [Verbose] > │ method=None, kwargs={} / f_lineno: 530 / f_code.co_filename:                 │
00:00:16 #610 [Verbose] > │ /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:16 #611 [Verbose] > │ / arg: None                                                                  │
00:00:16 #612 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, derivative=0,  │
00:00:16 #613 [Verbose] > │ method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename:            │
00:00:16 #614 [Verbose] > │ /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:16 #615 [Verbose] > │ / arg: None                                                                  │
00:00:16 #616 [Verbose] > │ line(zeta_) / f_code.co_name: z...                                           │
00:00:16 #617 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:16 #618 [Verbose] >
00:00:16 #619 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:16 #620 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:16 #621 [Verbose] > │ ## test_zeta_at_2_minus2                                                     │
00:00:16 #622 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:16 #623 [Verbose] >
00:00:16 #624 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:16 #625 [Verbose] > inl test_zeta_at_2_minus2 log = run_test log (6u8, 5u8) fun zeta, gamma =>
00:00:16 #626 [Verbose] >     inl s = .^(2, -2)
00:00:16 #627 [Verbose] >     inl result = zeta s
00:00:16 #628 [Verbose] >
00:00:16 #629 [Verbose] >     (re result - 0.8673) |> abs |> _assert_lt 0.001
00:00:16 #630 [Verbose] >     (im result - 0.2750) |> abs |> _assert_lt 0.001
00:00:16 #631 [Verbose] > Building /tmp/dotnet-repl/20240329-2209-3326-2692-23c21e22283c/main.spi
00:00:16 #632 [Verbose] >
00:00:16 #633 [Verbose] > ╭─[ 139.54ms - stdout ]────────────────────────────────────────────────────────╮
00:00:16 #634 [Verbose] > │ ()                                                                           │
00:00:16 #635 [Verbose] > │                                                                              │
00:00:16 #636 [Verbose] > │                                                                              │
00:00:16 #637 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:16 #638 [Verbose] >
00:00:16 #639 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:16 #640 [Verbose] > // // test
00:00:16 #641 [Verbose] > // // rust=
00:00:16 #642 [Verbose] > // // print_code=false
00:00:16 #643 [Verbose] >
00:00:16 #644 [Verbose] > types ()
00:00:16 #645 [Verbose] > test_zeta_at_2_minus2 true
00:00:16 #646 [Verbose] > Building /tmp/dotnet-repl/20240329-2209-3340-4087-46a2e469236c/main.spi
00:00:21 #647 [Verbose] >
00:00:21 #648 [Verbose] > ╭─[ 4.71s - return value ]─────────────────────────────────────────────────────╮
00:00:21 #649 [Verbose] > │ zeta_ / s: (2.0, -2.0) / count: 0                                            │
00:00:21 #650 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(2-2j), a=1, derivative=0,  │
00:00:21 #651 [Verbose] > │ method=None, kwargs={} / f_lineno: 528 / f_code.co_filename:                 │
00:00:21 #652 [Verbose] > │ /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:21 #653 [Verbose] > │ / arg: None                                                                  │
00:00:21 #654 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2-2j), a=1, derivative=0,  │
00:00:21 #655 [Verbose] > │ method=None, kwargs={} / f_lineno: 530 / f_code.co_filename:                 │
00:00:21 #656 [Verbose] > │ /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:21 #657 [Verbose] > │ / arg: None                                                                  │
00:00:21 #658 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2-2j), a=1, derivative=0,  │
00:00:21 #659 [Verbose] > │ method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename:            │
00:00:21 #660 [Verbose] > │ /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:21 #661 [Verbose] > │ / arg: None                                                                  │
00:00:21 #662 [Verbose] > │ line(zeta_) / f_code.co_name: ...                                            │
00:00:21 #663 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:21 #664 [Verbose] >
00:00:21 #665 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:21 #666 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:21 #667 [Verbose] > │ ## test_trivial_zero_at_negative_even___                                     │
00:00:21 #668 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:21 #669 [Verbose] >
00:00:21 #670 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:21 #671 [Verbose] > inl test_trivial_zero_at_negative_even___ log = run_test log (2u8, 1u8) fun
00:00:21 #672 [Verbose] > zeta, gamma =>
00:00:21 #673 [Verbose] >     (join listm'.init_series -2f64 -40 -2)
00:00:21 #674 [Verbose] >     |> listm.iter fun n =>
00:00:21 #675 [Verbose] >         inl s = .^(n, 0)
00:00:21 #676 [Verbose] >         inl result = zeta s
00:00:21 #677 [Verbose] >
00:00:21 #678 [Verbose] >         result |> re |> _assert_eq 0
00:00:21 #679 [Verbose] >         result |> im |> _assert_eq 0
00:00:21 #680 [Verbose] > Building /tmp/dotnet-repl/20240329-2209-3811-1176-15e7d0814eec/main.spi
00:00:21 #681 [Verbose] >
00:00:21 #682 [Verbose] > ╭─[ 139.93ms - stdout ]────────────────────────────────────────────────────────╮
00:00:21 #683 [Verbose] > │ ()                                                                           │
00:00:21 #684 [Verbose] > │                                                                              │
00:00:21 #685 [Verbose] > │                                                                              │
00:00:21 #686 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:21 #687 [Verbose] >
00:00:21 #688 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:21 #689 [Verbose] > // // test
00:00:21 #690 [Verbose] > // // rust=
00:00:21 #691 [Verbose] > // // print_code=false
00:00:21 #692 [Verbose] >
00:00:21 #693 [Verbose] > types ()
00:00:21 #694 [Verbose] > test_trivial_zero_at_negative_even___ true
00:00:21 #695 [Verbose] > Building /tmp/dotnet-repl/20240329-2209-3825-2562-21c6f03b3a4a/main.spi
00:00:26 #696 [Verbose] >
00:00:26 #697 [Verbose] > ╭─[ 5.26s - return value ]─────────────────────────────────────────────────────╮
00:00:26 #698 [Verbose] > │ zeta_ / s: (-2.0, 0.0) / count: 0                                            │
00:00:26 #699 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(-2+0j), a=1, derivative=0, │
00:00:26 #700 [Verbose] > │ method=None, kwargs={} / f_lineno: 528 / f_code.co_filename:                 │
00:00:26 #701 [Verbose] > │ /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:26 #702 [Verbose] > │ / arg: None                                                                  │
00:00:26 #703 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(-2+0j), a=1, derivative=0, │
00:00:26 #704 [Verbose] > │ method=None, kwargs={} / f_lineno: 530 / f_code.co_filename:                 │
00:00:26 #705 [Verbose] > │ /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:26 #706 [Verbose] > │ / arg: None                                                                  │
00:00:26 #707 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(-2+0j), a=1, derivative=0, │
00:00:26 #708 [Verbose] > │ method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename:            │
00:00:26 #709 [Verbose] > │ /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:26 #710 [Verbose] > │ / arg: None                                                                  │
00:00:26 #711 [Verbose] > │ line(zeta_) / f_code.co_nam...                                               │
00:00:26 #712 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:26 #713 [Verbose] >
00:00:26 #714 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:26 #715 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:26 #716 [Verbose] > │ ## test_non_trivial_zero___                                                  │
00:00:26 #717 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:26 #718 [Verbose] >
00:00:26 #719 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:26 #720 [Verbose] > inl test_non_trivial_zero___ log = run_test log (3u8, 2u8) fun zeta, gamma =>
00:00:26 #721 [Verbose] >     ;[[
00:00:26 #722 [Verbose] >         .^(0.5, 14.134725)
00:00:26 #723 [Verbose] >         .^(0.5, 21.022040)
00:00:26 #724 [Verbose] >         .^(0.5, 25.010857)
00:00:26 #725 [Verbose] >         .^(0.5, 30.424876)
00:00:26 #726 [Verbose] >         .^(0.5, 32.935062)
00:00:26 #727 [Verbose] >         .^(0.5, 37.586178)
00:00:26 #728 [Verbose] >     ]]
00:00:26 #729 [Verbose] >     |> fun x => a x : _ i32 _
00:00:26 #730 [Verbose] >     |> am.iter fun x =>
00:00:26 #731 [Verbose] >             inl result = zeta x
00:00:26 #732 [Verbose] >             result |> re |> abs |> _assert_lt 0.0001
00:00:26 #733 [Verbose] >             result |> im |> abs |> _assert_lt 0.0001
00:00:26 #734 [Verbose] > Building /tmp/dotnet-repl/20240329-2209-4354-5430-55cd5c61823f/main.spi
00:00:26 #735 [Verbose] >
00:00:26 #736 [Verbose] > ╭─[ 149.73ms - stdout ]────────────────────────────────────────────────────────╮
00:00:26 #737 [Verbose] > │ ()                                                                           │
00:00:26 #738 [Verbose] > │                                                                              │
00:00:26 #739 [Verbose] > │                                                                              │
00:00:26 #740 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:26 #741 [Verbose] >
00:00:26 #742 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:26 #743 [Verbose] > // // test
00:00:26 #744 [Verbose] > // // rust=
00:00:26 #745 [Verbose] > // // print_code=false
00:00:26 #746 [Verbose] >
00:00:26 #747 [Verbose] > types ()
00:00:26 #748 [Verbose] > test_non_trivial_zero___ true
00:00:26 #749 [Verbose] > Building /tmp/dotnet-repl/20240329-2209-4369-6914-62d980c2b63b/main.spi
00:00:31 #750 [Verbose] >
00:00:31 #751 [Verbose] > ╭─[ 4.97s - return value ]─────────────────────────────────────────────────────╮
00:00:31 #752 [Verbose] > │ zeta_ / s: (0.5, 14.134725) / count: 0                                       │
00:00:31 #753 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(0.5+14.134725j), a=1,      │
00:00:31 #754 [Verbose] > │ derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename:   │
00:00:31 #755 [Verbose] > │ /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:31 #756 [Verbose] > │ / arg: None                                                                  │
00:00:31 #757 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(0.5+14.134725j), a=1,      │
00:00:31 #758 [Verbose] > │ derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename:   │
00:00:31 #759 [Verbose] > │ /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:31 #760 [Verbose] > │ / arg: None                                                                  │
00:00:31 #761 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(0.5+14.134725j), a=1,      │
00:00:31 #762 [Verbose] > │ derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 /                  │
00:00:31 #763 [Verbose] > │ f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25 /        │
00:00:31 #764 [Verbose] > │ f_back.f_code.co_filename:  / arg: ...                                       │
00:00:31 #765 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:31 #766 [Verbose] >
00:00:31 #767 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:31 #768 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:31 #769 [Verbose] > │ ## test_real_part_greater_than_one___                                        │
00:00:31 #770 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:31 #771 [Verbose] >
00:00:31 #772 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:31 #773 [Verbose] > inl test_real_part_greater_than_one___ log = run_test log (3u8, 2u8) fun zeta,
00:00:31 #774 [Verbose] > gamma =>
00:00:31 #775 [Verbose] >     inl points = ;[[2; 3; 4; 5; 10; 20; 50]]
00:00:31 #776 [Verbose] >     (a points : _ i32 _)
00:00:31 #777 [Verbose] >     |> am.iter fun point =>
00:00:31 #778 [Verbose] >         inl s = .^(point, 0)
00:00:31 #779 [Verbose] >         inl result = zeta s
00:00:31 #780 [Verbose] >         result |> re |> _assert_gt 0
00:00:31 #781 [Verbose] >         result |> im |> _assert_eq 0
00:00:31 #782 [Verbose] > Building /tmp/dotnet-repl/20240329-2209-4866-6647-611ccfb24ae4/main.spi
00:00:31 #783 [Verbose] >
00:00:31 #784 [Verbose] > ╭─[ 145.04ms - stdout ]────────────────────────────────────────────────────────╮
00:00:31 #785 [Verbose] > │ ()                                                                           │
00:00:31 #786 [Verbose] > │                                                                              │
00:00:31 #787 [Verbose] > │                                                                              │
00:00:31 #788 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:31 #789 [Verbose] >
00:00:31 #790 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:31 #791 [Verbose] > // // test
00:00:31 #792 [Verbose] > // // rust=
00:00:31 #793 [Verbose] > // // print_code=false
00:00:31 #794 [Verbose] >
00:00:31 #795 [Verbose] > types ()
00:00:31 #796 [Verbose] > test_real_part_greater_than_one___ true
00:00:31 #797 [Verbose] > Building /tmp/dotnet-repl/20240329-2209-4881-8103-87ee9f7c596e/main.spi
00:00:36 #798 [Verbose] >
00:00:36 #799 [Verbose] > ╭─[ 4.82s - return value ]─────────────────────────────────────────────────────╮
00:00:36 #800 [Verbose] > │ zeta_ / s: (2.0, 0.0) / count: 0                                             │
00:00:36 #801 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, derivative=0,  │
00:00:36 #802 [Verbose] > │ method=None, kwargs={} / f_lineno: 528 / f_code.co_filename:                 │
00:00:36 #803 [Verbose] > │ /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:36 #804 [Verbose] > │ / arg: None                                                                  │
00:00:36 #805 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, derivative=0,  │
00:00:36 #806 [Verbose] > │ method=None, kwargs={} / f_lineno: 530 / f_code.co_filename:                 │
00:00:36 #807 [Verbose] > │ /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:36 #808 [Verbose] > │ / arg: None                                                                  │
00:00:36 #809 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, derivative=0,  │
00:00:36 #810 [Verbose] > │ method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename:            │
00:00:36 #811 [Verbose] > │ /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:36 #812 [Verbose] > │ / arg: None                                                                  │
00:00:36 #813 [Verbose] > │ line(zeta_) / f_code.co_name: z...                                           │
00:00:36 #814 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:36 #815 [Verbose] >
00:00:36 #816 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:36 #817 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:36 #818 [Verbose] > │ ## test_zeta_at_1___                                                         │
00:00:36 #819 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:36 #820 [Verbose] >
00:00:36 #821 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:36 #822 [Verbose] > inl test_zeta_at_1___ log = run_test log (6u8, 5u8) fun zeta, gamma =>
00:00:36 #823 [Verbose] >     inl s = .^(1, 0)
00:00:36 #824 [Verbose] >     inl result = zeta s
00:00:36 #825 [Verbose] >     result |> re |> _assert_eq limit.max
00:00:36 #826 [Verbose] >     result |> im |> _assert_eq 0
00:00:36 #827 [Verbose] > Building /tmp/dotnet-repl/20240329-2209-5363-6392-6b22c2bfb8b3/main.spi
00:00:36 #828 [Verbose] >
00:00:36 #829 [Verbose] > ╭─[ 137.27ms - stdout ]────────────────────────────────────────────────────────╮
00:00:36 #830 [Verbose] > │ ()                                                                           │
00:00:36 #831 [Verbose] > │                                                                              │
00:00:36 #832 [Verbose] > │                                                                              │
00:00:36 #833 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:36 #834 [Verbose] >
00:00:36 #835 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:36 #836 [Verbose] > // // test
00:00:36 #837 [Verbose] > // // rust=
00:00:36 #838 [Verbose] > // // print_code=false
00:00:36 #839 [Verbose] >
00:00:36 #840 [Verbose] > types ()
00:00:36 #841 [Verbose] > test_zeta_at_1___ true
00:00:36 #842 [Verbose] > Building /tmp/dotnet-repl/20240329-2209-5377-7755-7081f2701366/main.spi
00:00:41 #843 [Verbose] >
00:00:41 #844 [Verbose] > ╭─[ 4.71s - return value ]─────────────────────────────────────────────────────╮
00:00:41 #845 [Verbose] > │ zeta_ / s: (1.0, 0.0) / count: 0                                             │
00:00:41 #846 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(1+0j), a=1, derivative=0,  │
00:00:41 #847 [Verbose] > │ method=None, kwargs={} / f_lineno: 528 / f_code.co_filename:                 │
00:00:41 #848 [Verbose] > │ /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:41 #849 [Verbose] > │ / arg: None                                                                  │
00:00:41 #850 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(1+0j), a=1, derivative=0,  │
00:00:41 #851 [Verbose] > │ method=None, kwargs={} / f_lineno: 530 / f_code.co_filename:                 │
00:00:41 #852 [Verbose] > │ /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:41 #853 [Verbose] > │ / arg: None                                                                  │
00:00:41 #854 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(1+0j), a=1, derivative=0,  │
00:00:41 #855 [Verbose] > │ method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename:            │
00:00:41 #856 [Verbose] > │ /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:41 #857 [Verbose] > │ / arg: None                                                                  │
00:00:41 #858 [Verbose] > │ line(zeta_) / f_code.co_name: z...                                           │
00:00:41 #859 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:41 #860 [Verbose] >
00:00:41 #861 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:41 #862 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:41 #863 [Verbose] > │ ## test_symmetry_across_real_axis___                                         │
00:00:41 #864 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:41 #865 [Verbose] >
00:00:41 #866 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:41 #867 [Verbose] > inl test_symmetry_across_real_axis___ log = run_test log (8u8, 7u8) fun zeta,
00:00:41 #868 [Verbose] > gamma =>
00:00:41 #869 [Verbose] >     inl s = .^(2, 10)
00:00:41 #870 [Verbose] >     inl result_positive_im = zeta s
00:00:41 #871 [Verbose] >     inl result_negative_im = zeta .^(re s, -(im s))
00:00:41 #872 [Verbose] >     inl conj = result_negative_im |> conj
00:00:41 #873 [Verbose] >     result_positive_im |> re |> _assert_eq (conj |> re)
00:00:41 #874 [Verbose] >     result_positive_im |> im |> _assert_eq (conj |> im)
00:00:41 #875 [Verbose] > Building /tmp/dotnet-repl/20240329-2209-5849-4941-4c5dc3e19d82/main.spi
00:00:41 #876 [Verbose] >
00:00:41 #877 [Verbose] > ╭─[ 137.95ms - stdout ]────────────────────────────────────────────────────────╮
00:00:41 #878 [Verbose] > │ ()                                                                           │
00:00:41 #879 [Verbose] > │                                                                              │
00:00:41 #880 [Verbose] > │                                                                              │
00:00:41 #881 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:41 #882 [Verbose] >
00:00:41 #883 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:41 #884 [Verbose] > // // test
00:00:41 #885 [Verbose] > // // rust=
00:00:41 #886 [Verbose] > // // print_code=false
00:00:41 #887 [Verbose] >
00:00:41 #888 [Verbose] > types ()
00:00:41 #889 [Verbose] > test_symmetry_across_real_axis___ true
00:00:41 #890 [Verbose] > Building /tmp/dotnet-repl/20240329-2209-5863-6317-6f55a11ad83a/main.spi
00:00:46 #891 [Verbose] >
00:00:46 #892 [Verbose] > ╭─[ 4.65s - return value ]─────────────────────────────────────────────────────╮
00:00:46 #893 [Verbose] > │ zeta_ / s: (2.0, 10.0) / count: 0                                            │
00:00:46 #894 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(2+10j), a=1, derivative=0, │
00:00:46 #895 [Verbose] > │ method=None, kwargs={} / f_lineno: 528 / f_code.co_filename:                 │
00:00:46 #896 [Verbose] > │ /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:46 #897 [Verbose] > │ / arg: None                                                                  │
00:00:46 #898 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+10j), a=1, derivative=0, │
00:00:46 #899 [Verbose] > │ method=None, kwargs={} / f_lineno: 530 / f_code.co_filename:                 │
00:00:46 #900 [Verbose] > │ /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:46 #901 [Verbose] > │ / arg: None                                                                  │
00:00:46 #902 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+10j), a=1, derivative=0, │
00:00:46 #903 [Verbose] > │ method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename:            │
00:00:46 #904 [Verbose] > │ /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:46 #905 [Verbose] > │ / arg: None                                                                  │
00:00:46 #906 [Verbose] > │ line(zeta_) / f_code.co_nam...                                               │
00:00:46 #907 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:46 #908 [Verbose] >
00:00:46 #909 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:46 #910 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:46 #911 [Verbose] > │ ## test_behavior_near_origin___                                              │
00:00:46 #912 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:46 #913 [Verbose] >
00:00:46 #914 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:46 #915 [Verbose] > inl test_behavior_near_origin___ log = run_test log (6u8, 5u8) fun zeta, gamma
00:00:46 #916 [Verbose] > =>
00:00:46 #917 [Verbose] >     inl s = .^(0.01, 0.01)
00:00:46 #918 [Verbose] >     inl result = zeta s
00:00:46 #919 [Verbose] >     result |> re |> _assert_lt limit.max
00:00:46 #920 [Verbose] >     result |> im |> _assert_lt limit.max
00:00:46 #921 [Verbose] > Building /tmp/dotnet-repl/20240329-2210-0328-2821-2e33c5b86d10/main.spi
00:00:46 #922 [Verbose] >
00:00:46 #923 [Verbose] > ╭─[ 138.73ms - stdout ]────────────────────────────────────────────────────────╮
00:00:46 #924 [Verbose] > │ ()                                                                           │
00:00:46 #925 [Verbose] > │                                                                              │
00:00:46 #926 [Verbose] > │                                                                              │
00:00:46 #927 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:46 #928 [Verbose] >
00:00:46 #929 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:46 #930 [Verbose] > // // test
00:00:46 #931 [Verbose] > // // rust=
00:00:46 #932 [Verbose] > // // print_code=false
00:00:46 #933 [Verbose] >
00:00:46 #934 [Verbose] > types ()
00:00:46 #935 [Verbose] > test_behavior_near_origin___ true
00:00:46 #936 [Verbose] > Building /tmp/dotnet-repl/20240329-2210-0342-4212-422dcf52d68b/main.spi
00:00:51 #937 [Verbose] >
00:00:51 #938 [Verbose] > ╭─[ 4.66s - return value ]─────────────────────────────────────────────────────╮
00:00:51 #939 [Verbose] > │ zeta_ / s: (0.01, 0.01) / count: 0                                           │
00:00:51 #940 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(0.01+0.01j), a=1,          │
00:00:51 #941 [Verbose] > │ derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename:   │
00:00:51 #942 [Verbose] > │ /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:51 #943 [Verbose] > │ / arg: None                                                                  │
00:00:51 #944 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(0.01+0.01j), a=1,          │
00:00:51 #945 [Verbose] > │ derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename:   │
00:00:51 #946 [Verbose] > │ /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:51 #947 [Verbose] > │ / arg: None                                                                  │
00:00:51 #948 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(0.01+0.01j), a=1,          │
00:00:51 #949 [Verbose] > │ derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 /                  │
00:00:51 #950 [Verbose] > │ f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25 /        │
00:00:51 #951 [Verbose] > │ f_back.f_code.co_filename:  / arg: None                                      │
00:00:51 #952 [Verbose] > │ line(zeta_)...                                                               │
00:00:51 #953 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:51 #954 [Verbose] >
00:00:51 #955 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:51 #956 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:51 #957 [Verbose] > │ ## test_imaginary_axis                                                       │
00:00:51 #958 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:51 #959 [Verbose] >
00:00:51 #960 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:51 #961 [Verbose] > inl test_imaginary_axis log = run_test log (3u8, 2u8) fun zeta, gamma =>
00:00:51 #962 [Verbose] >     (join a ;[[10; 20; 30; 40; 50; 60; 70; 80; 90; 100]] : _ i32 _)
00:00:51 #963 [Verbose] >     |> am.iter fun s =>
00:00:51 #964 [Verbose] >         inl s = .^(0, s)
00:00:51 #965 [Verbose] >         inl result = zeta s
00:00:51 #966 [Verbose] >         result |> re |> _assert_ne 0
00:00:51 #967 [Verbose] >         result |> im |> _assert_ne 0
00:00:51 #968 [Verbose] > Building /tmp/dotnet-repl/20240329-2210-0807-0785-0a4eb49ac3c6/main.spi
00:00:51 #969 [Verbose] >
00:00:51 #970 [Verbose] > ╭─[ 139.27ms - stdout ]────────────────────────────────────────────────────────╮
00:00:51 #971 [Verbose] > │ ()                                                                           │
00:00:51 #972 [Verbose] > │                                                                              │
00:00:51 #973 [Verbose] > │                                                                              │
00:00:51 #974 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:51 #975 [Verbose] >
00:00:51 #976 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:51 #977 [Verbose] > // // test
00:00:51 #978 [Verbose] > // // rust=
00:00:51 #979 [Verbose] > // // print_code=false
00:00:51 #980 [Verbose] >
00:00:51 #981 [Verbose] > types ()
00:00:51 #982 [Verbose] > test_imaginary_axis true
00:00:51 #983 [Verbose] > Building /tmp/dotnet-repl/20240329-2210-0821-2184-2c8a6acb2e48/main.spi
00:00:56 #984 [Verbose] >
00:00:56 #985 [Verbose] > ╭─[ 5.07s - return value ]─────────────────────────────────────────────────────╮
00:00:56 #986 [Verbose] > │ zeta_ / s: (0.0, 10.0) / count: 0                                            │
00:00:56 #987 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=10j, a=1, derivative=0,     │
00:00:56 #988 [Verbose] > │ method=None, kwargs={} / f_lineno: 528 / f_code.co_filename:                 │
00:00:56 #989 [Verbose] > │ /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:56 #990 [Verbose] > │ / arg: None                                                                  │
00:00:56 #991 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=10j, a=1, derivative=0,     │
00:00:56 #992 [Verbose] > │ method=None, kwargs={} / f_lineno: 530 / f_code.co_filename:                 │
00:00:56 #993 [Verbose] > │ /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:56 #994 [Verbose] > │ / arg: None                                                                  │
00:00:56 #995 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=10j, a=1, derivative=0,     │
00:00:56 #996 [Verbose] > │ method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename:            │
00:00:56 #997 [Verbose] > │ /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:56 #998 [Verbose] > │ / arg: None                                                                  │
00:00:56 #999 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_...                                   │
00:00:56 #1000 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:56 #1001 [Verbose] >
00:00:56 #1002 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:56 #1003 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:56 #1004 [Verbose] > │ ## test_critical_strip                                                       │
00:00:56 #1005 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:56 #1006 [Verbose] >
00:00:56 #1007 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:56 #1008 [Verbose] > inl test_critical_strip log = run_test log (3u8, 2u8) fun zeta, gamma =>
00:00:56 #1009 [Verbose] >     ;[[
00:00:56 #1010 [Verbose] >         .^(0.5, 14.134725)
00:00:56 #1011 [Verbose] >         .^(0.75, 20.5)
00:00:56 #1012 [Verbose] >         .^(1.25, 30.1)
00:00:56 #1013 [Verbose] >         .^(0.25, 40.0)
00:00:56 #1014 [Verbose] >         .^(1.0, 50.0)
00:00:56 #1015 [Verbose] >     ]]
00:00:56 #1016 [Verbose] >     |> fun x => a x : _ i32 _
00:00:56 #1017 [Verbose] >     |> am.iter fun s =>
00:00:56 #1018 [Verbose] >         inl result = zeta s
00:00:56 #1019 [Verbose] >         result |> re |> _assert_ne 0
00:00:56 #1020 [Verbose] >         result |> im |> _assert_ne 0
00:00:56 #1021 [Verbose] > Building /tmp/dotnet-repl/20240329-2210-1329-2972-2a08c3ed14fc/main.spi
00:00:56 #1022 [Verbose] >
00:00:56 #1023 [Verbose] > ╭─[ 142.20ms - stdout ]────────────────────────────────────────────────────────╮
00:00:56 #1024 [Verbose] > │ ()                                                                           │
00:00:56 #1025 [Verbose] > │                                                                              │
00:00:56 #1026 [Verbose] > │                                                                              │
00:00:56 #1027 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:56 #1028 [Verbose] >
00:00:56 #1029 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:56 #1030 [Verbose] > // // test
00:00:56 #1031 [Verbose] > // // rust=
00:00:56 #1032 [Verbose] > // // print_code=false
00:00:56 #1033 [Verbose] >
00:00:56 #1034 [Verbose] > types ()
00:00:56 #1035 [Verbose] > test_critical_strip true
00:00:56 #1036 [Verbose] > Building /tmp/dotnet-repl/20240329-2210-1343-4393-44a334580677/main.spi
00:01:01 #1037 [Verbose] >
00:01:01 #1038 [Verbose] > ╭─[ 4.87s - return value ]─────────────────────────────────────────────────────╮
00:01:01 #1039 [Verbose] > │ zeta_ / s: (0.5, 14.134725) / count: 0                                       │
00:01:01 #1040 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(0.5+14.134725j), a=1,      │
00:01:01 #1041 [Verbose] > │ derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename:   │
00:01:01 #1042 [Verbose] > │ /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:01:01 #1043 [Verbose] > │ / arg: None                                                                  │
00:01:01 #1044 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(0.5+14.134725j), a=1,      │
00:01:01 #1045 [Verbose] > │ derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename:   │
00:01:01 #1046 [Verbose] > │ /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:01:01 #1047 [Verbose] > │ / arg: None                                                                  │
00:01:01 #1048 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(0.5+14.134725j), a=1,      │
00:01:01 #1049 [Verbose] > │ derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 /                  │
00:01:01 #1050 [Verbose] > │ f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25 /        │
00:01:01 #1051 [Verbose] > │ f_back.f_code.co_filename:  / arg: ...                                       │
00:01:01 #1052 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:01 #1053 [Verbose] >
00:01:01 #1054 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:01 #1055 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:01 #1056 [Verbose] > │ ## test_reflection_formula_for_specific_value                                │
00:01:01 #1057 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:01 #1058 [Verbose] >
00:01:01 #1059 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:01 #1060 [Verbose] > inl test_reflection_formula_for_specific_value log = run_test log (3u8, 2u8) fun
00:01:01 #1061 [Verbose] > zeta, gamma =>
00:01:01 #1062 [Verbose] >     ;[[
00:01:01 #1063 [Verbose] >         .^(3, 4)
00:01:01 #1064 [Verbose] >         .^(2.5, -3.5)
00:01:01 #1065 [Verbose] >         .^(1.5, 2.5)
00:01:01 #1066 [Verbose] >         .^(0.5, 14.134725)
00:01:01 #1067 [Verbose] >     ]]
00:01:01 #1068 [Verbose] >     |> fun x => a x : _ i32 _
00:01:01 #1069 [Verbose] >     |> am.iter fun s =>
00:01:01 #1070 [Verbose] >         inl lhs = zeta s
00:01:01 #1071 [Verbose] >         inl reflection_coefficient =
00:01:01 #1072 [Verbose] >             (.^(2, 0) .** s)
00:01:01 #1073 [Verbose] >             .* (.^(pi, 0) .** (s .- .^(1, 0)))
00:01:01 #1074 [Verbose] >             .* (.^(pi, 0) .* s ./ .^(2, 0) |> complex_sin)
00:01:01 #1075 [Verbose] >             .* gamma (.^(1, 0) .- s)
00:01:01 #1076 [Verbose] >
00:01:01 #1077 [Verbose] >         inl one_minus_s = .^(1 - re s, -(im s))
00:01:01 #1078 [Verbose] >         inl rhs = reflection_coefficient .* zeta one_minus_s
00:01:01 #1079 [Verbose] >
00:01:01 #1080 [Verbose] >         re lhs - re rhs |> abs |> _assert_lt 0.0001
00:01:01 #1081 [Verbose] >         im lhs - im rhs |> abs |> _assert_lt 0.0001
00:01:01 #1082 [Verbose] > Building /tmp/dotnet-repl/20240329-2210-1831-3110-366287aa4e92/main.spi
00:01:01 #1083 [Verbose] >
00:01:01 #1084 [Verbose] > ╭─[ 152.01ms - stdout ]────────────────────────────────────────────────────────╮
00:01:01 #1085 [Verbose] > │ ()                                                                           │
00:01:01 #1086 [Verbose] > │                                                                              │
00:01:01 #1087 [Verbose] > │                                                                              │
00:01:01 #1088 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:01 #1089 [Verbose] >
00:01:01 #1090 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:01 #1091 [Verbose] > // // test
00:01:01 #1092 [Verbose] > // // rust=
00:01:01 #1093 [Verbose] > // // print_code=false
00:01:01 #1094 [Verbose] >
00:01:01 #1095 [Verbose] > types ()
00:01:01 #1096 [Verbose] > test_reflection_formula_for_specific_value true
00:01:01 #1097 [Verbose] > Building /tmp/dotnet-repl/20240329-2210-1846-4635-4c08e51690f4/main.spi
00:01:06 #1098 [Verbose] >
00:01:06 #1099 [Verbose] > ╭─[ 4.96s - return value ]─────────────────────────────────────────────────────╮
00:01:06 #1100 [Verbose] > │ zeta_ / s: (3.0, 4.0) / count: 0                                             │
00:01:06 #1101 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(3+4j), a=1, derivative=0,  │
00:01:06 #1102 [Verbose] > │ method=None, kwargs={} / f_lineno: 528 / f_code.co_filename:                 │
00:01:06 #1103 [Verbose] > │ /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:01:06 #1104 [Verbose] > │ / arg: None                                                                  │
00:01:06 #1105 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(3+4j), a=1, derivative=0,  │
00:01:06 #1106 [Verbose] > │ method=None, kwargs={} / f_lineno: 530 / f_code.co_filename:                 │
00:01:06 #1107 [Verbose] > │ /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:01:06 #1108 [Verbose] > │ / arg: None                                                                  │
00:01:06 #1109 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(3+4j), a=1, derivative=0,  │
00:01:06 #1110 [Verbose] > │ method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename:            │
00:01:06 #1111 [Verbose] > │ /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:01:06 #1112 [Verbose] > │ / arg: None                                                                  │
00:01:06 #1113 [Verbose] > │ line(zeta_) / f_code.co_name: z...                                           │
00:01:06 #1114 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:06 #1115 [Verbose] >
00:01:06 #1116 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:06 #1117 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:06 #1118 [Verbose] > │ ## test_euler_product_formula                                                │
00:01:06 #1119 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:06 #1120 [Verbose] >
00:01:06 #1121 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:06 #1122 [Verbose] > inl test_euler_product_formula log = run_test log (3u8, 2u8) fun zeta, gamma =>
00:01:06 #1123 [Verbose] >     inl s_values = ;[[2; 2.5; 3; 3.5; 4; 4.5; 5]]
00:01:06 #1124 [Verbose] >     inl primes = ;[[2; 3; 5; 7; 11; 13; 17; 19; 23; 29; 31; 37; 41; 43; 47; 53;
00:01:06 #1125 [Verbose] > 59; 61; 67; 71]]
00:01:06 #1126 [Verbose] >     (a s_values : _ i32 _)
00:01:06 #1127 [Verbose] >     |> am.iter fun s_re =>
00:01:06 #1128 [Verbose] >         inl s = .^(s_re, 0)
00:01:06 #1129 [Verbose] >         inl product =
00:01:06 #1130 [Verbose] >             (1, (a primes : _ i32 _))
00:01:06 #1131 [Verbose] >             ||> am.fold fun acc x =>
00:01:06 #1132 [Verbose] >                 acc * 1 / (1 - x ** -s_re)
00:01:06 #1133 [Verbose] >
00:01:06 #1134 [Verbose] >         inl result = zeta s
00:01:06 #1135 [Verbose] >         re result - product |> abs |> _assert_lt 0.01
00:01:06 #1136 [Verbose] >         result |> im |> _assert_lt 0.01
00:01:06 #1137 [Verbose] > Building /tmp/dotnet-repl/20240329-2210-2343-4354-439dffe9fd4e/main.spi
00:01:06 #1138 [Verbose] >
00:01:06 #1139 [Verbose] > ╭─[ 141.95ms - stdout ]────────────────────────────────────────────────────────╮
00:01:06 #1140 [Verbose] > │ ()                                                                           │
00:01:06 #1141 [Verbose] > │                                                                              │
00:01:06 #1142 [Verbose] > │                                                                              │
00:01:06 #1143 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:06 #1144 [Verbose] >
00:01:06 #1145 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:06 #1146 [Verbose] > // // test
00:01:06 #1147 [Verbose] > // // rust=
00:01:06 #1148 [Verbose] > // // print_code=false
00:01:06 #1149 [Verbose] >
00:01:06 #1150 [Verbose] > types ()
00:01:06 #1151 [Verbose] > test_euler_product_formula true
00:01:06 #1152 [Verbose] > Building /tmp/dotnet-repl/20240329-2210-2357-5767-57a342a8b6fd/main.spi
00:01:11 #1153 [Verbose] >
00:01:11 #1154 [Verbose] > ╭─[ 4.90s - return value ]─────────────────────────────────────────────────────╮
00:01:11 #1155 [Verbose] > │ zeta_ / s: (2.0, 0.0) / count: 0                                             │
00:01:11 #1156 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, derivative=0,  │
00:01:11 #1157 [Verbose] > │ method=None, kwargs={} / f_lineno: 528 / f_code.co_filename:                 │
00:01:11 #1158 [Verbose] > │ /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:01:11 #1159 [Verbose] > │ / arg: None                                                                  │
00:01:11 #1160 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, derivative=0,  │
00:01:11 #1161 [Verbose] > │ method=None, kwargs={} / f_lineno: 530 / f_code.co_filename:                 │
00:01:11 #1162 [Verbose] > │ /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:01:11 #1163 [Verbose] > │ / arg: None                                                                  │
00:01:11 #1164 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, derivative=0,  │
00:01:11 #1165 [Verbose] > │ method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename:            │
00:01:11 #1166 [Verbose] > │ /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:01:11 #1167 [Verbose] > │ / arg: None                                                                  │
00:01:11 #1168 [Verbose] > │ line(zeta_) / f_code.co_name: z...                                           │
00:01:11 #1169 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:11 #1170 [Verbose] >
00:01:11 #1171 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:11 #1172 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:11 #1173 [Verbose] > │ ## graph                                                                     │
00:01:11 #1174 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:11 #1175 [Verbose] >
00:01:11 #1176 [Verbose] > ── mermaid ─────────────────────────────────────────────────────────────────────
00:01:11 #1177 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:11 #1178 [Verbose] > │ <div class="mermaidMarkdownContainer" style="background-color:white">        │
00:01:11 #1179 [Verbose] > │ <link rel="stylesheet"                                                       │
00:01:11 #1180 [Verbose] > │ href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.0/css/all.min. │
00:01:11 #1181 [Verbose] > │ css">                                                                        │
00:01:11 #1182 [Verbose] > │ <div id="a7be21e35960496c93cd6c705b73a2df"></div>                            │
00:01:11 #1183 [Verbose] > │ <script type="module">                                                       │
00:01:11 #1184 [Verbose] > │                                                                              │
00:01:11 #1185 [Verbose] > │             import mermaid from                                              │
00:01:11 #1186 [Verbose] > │ 'https://cdn.jsdelivr.net/npm/mermaid@10.6.1/dist/mermaid.esm.min.mjs';      │
00:01:11 #1187 [Verbose] > │             let renderTarget =                                               │
00:01:11 #1188 [Verbose] > │ document.getElementById('a7be21e35960496c93cd6c705b73a2df');                 │
00:01:11 #1189 [Verbose] > │             try {                                                            │
00:01:11 #1190 [Verbose] > │                 const {svg, bindFunctions} = await                           │
00:01:11 #1191 [Verbose] > │ mermaid.mermaidAPI.render(                                                   │
00:01:11 #1192 [Verbose] > │                     'mermaid_a7be21e35960496c93cd6c705b73a2df',              │
00:01:11 #1193 [Verbose] > │                     `graph TD                                                │
00:01:11 #1194 [Verbose] > │     zeta("zeta()") --> convert                                               │
00:01:11 #1195 [Verbose] > │     zeta --> f["f()"]                                                        │
00:01:11 #1196 [Verbose] > │     f --> mpc_f["mpc_zeta()"]                                                │
00:01:11 #1197 [Verbose] > │     f --> mpf_f["mpf_zeta()"]                                                │
00:01:11 #1198 [Verbose] > │     convert --> from_float                                                   │
00:01:11 #1199 [Verbose] > │     from_float --> from_man_exp                                              │
00:01:11 #1200 [Verbose] > │     from_man_exp --> python_bitcount                                         │
00:01:11 #1201 [Verbose] > │     python_bitcount --> _normalize                                           │
00:01:11 #1202 [Verbose] > │     _normalize --> make_mpc                                                  │
00:01:11 #1203 [Verbose] > │     make_mpc --> mpc_zeta["mpc_zeta()"]                                      │
00:01:11 #1204 [Verbose] > │     mpc_zeta --> mpf_zeta["mpf_zeta()"]                                      │
00:01:11 #1205 [Verbose] > │     mpf_zeta --> to_int                                                      │
00:01:11 #1206 [Verbose] > │     to_int --> mpf_zeta_int["mpf_zeta_int()"]                                │
00:01:11 #1207 [Verbose] > │     mpf_zeta_int --> borwein_coefficients                                    │
00:01:11 #1208 [Verbose] > │     borwein_coefficients --> from_man_exp_2("from_man_exp()")                │
00:01:11 #1209 [Verbose] > │     from_man_exp_2 --> python_bitcount_2("python_bitcount()")                │
00:01:11 #1210 [Verbose] > │     python_bitcount_2 --> _normalize_2("_normalize()")                       │
00:01:11 #1211 [Verbose] > │     _normalize_2 --> make_mpc_2("make_mpc()")                                │
00:01:11 #1212 [Verbose] > │     make_mpc_2 --> stop_trace                                                │
00:01:11 #1213 [Verbose] > │     mpf_zeta_int --> mpf_bernoulli                                           │
00:01:11 #1214 [Verbose] > │     mpf_bernoulli --> bernoulli_size                                         │
00:01:11 #1215 [Verbose] > │     bernoulli_size --> mpf_rdiv_int                                          │
00:01:11 #1216 [Verbose] > │     mpf_rdiv_int --> python_bitcount_3("python_bitcount()")                  │
00:01:11 #1217 [Verbose] > │     python_bitcount_3 --> _normalize1                                        │
00:01:11 #1218 [Verbose] > │     _normalize1 --> from_man_exp_3("from_man_exp()")                         │
00:01:11 #1219 [Verbose] > │     from_man_exp_3 --> _normalize_3("_normalize()")                          │
00:01:11 #1220 [Verbose] > │     _normalize_3 --> mpf_sub                                                 │
00:01:11 #1221 [Verbose] > │     mpf_sub --> mpf_add                                                      │
00:01:11 #1222 [Verbose] > │     mpf_add --> mpf_neg                                                      │
00:01:11 #1223 [Verbose] > │     mpf_neg --> _normalize1_2("_normalize1()")                               │
00:01:11 #1224 [Verbose] > │     _normalize1_2 --> from_int                                               │
00:01:11 #1225 [Verbose] > │     from_int --> mpf_div                                                     │
00:01:11 #1226 [Verbose] > │     mpf_div --> python_bitcount_4("python_bitcount()")                       │
00:01:11 #1227 [Verbose] > │     python_bitcount_4 --> _normalize1_3("_normalize1()")                     │
00:01:11 #1228 [Verbose] > │     _normalize1_3 --> make_mpc_3("make_mpc()")                               │
00:01:11 #1229 [Verbose] > │     make_mpc_3 --> final_stop["stop_trace()"]`);                             │
00:01:11 #1230 [Verbose] > │                 renderTarget.innerHTML = svg;                                │
00:01:11 #1231 [Verbose] > │                 bindFunctions?.(renderTarget);                               │
00:01:11 #1232 [Verbose] > │             }                                                                │
00:01:11 #1233 [Verbose] > │             catch (error) {                                                  │
00:01:11 #1234 [Verbose] > │                 console.log(error);                                          │
00:01:11 #1235 [Verbose] > │             }                                                                │
00:01:11 #1236 [Verbose] > │ </script>                                                                    │
00:01:11 #1237 [Verbose] > │ </div>                                                                       │
00:01:11 #1238 [Verbose] > │                                                                              │
00:01:11 #1239 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:11 #1240 [Verbose] >
00:01:11 #1241 [Verbose] > ── mermaid ─────────────────────────────────────────────────────────────────────
00:01:11 #1242 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:11 #1243 [Verbose] > │ <div class="mermaidMarkdownContainer" style="background-color:white">        │
00:01:11 #1244 [Verbose] > │ <link rel="stylesheet"                                                       │
00:01:11 #1245 [Verbose] > │ href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.0/css/all.min. │
00:01:11 #1246 [Verbose] > │ css">                                                                        │
00:01:11 #1247 [Verbose] > │ <div id="e6a14f99a1ab40788da20fced4f88272"></div>                            │
00:01:11 #1248 [Verbose] > │ <script type="module">                                                       │
00:01:11 #1249 [Verbose] > │                                                                              │
00:01:11 #1250 [Verbose] > │             import mermaid from                                              │
00:01:11 #1251 [Verbose] > │ 'https://cdn.jsdelivr.net/npm/mermaid@10.6.1/dist/mermaid.esm.min.mjs';      │
00:01:11 #1252 [Verbose] > │             let renderTarget =                                               │
00:01:11 #1253 [Verbose] > │ document.getElementById('e6a14f99a1ab40788da20fced4f88272');                 │
00:01:11 #1254 [Verbose] > │             try {                                                            │
00:01:11 #1255 [Verbose] > │                 const {svg, bindFunctions} = await                           │
00:01:11 #1256 [Verbose] > │ mermaid.mermaidAPI.render(                                                   │
00:01:11 #1257 [Verbose] > │                     'mermaid_e6a14f99a1ab40788da20fced4f88272',              │
00:01:11 #1258 [Verbose] > │                     `graph TD                                                │
00:01:11 #1259 [Verbose] > │     zeta_rust("zeta() - Rust") --> num_traits("num-traits")                  │
00:01:11 #1260 [Verbose] > │     zeta_rust --> num_bigint("num-bigint")                                   │
00:01:11 #1261 [Verbose] > │     zeta_rust --> rust_decimal("rust_decimal for precision")                 │
00:01:11 #1262 [Verbose] > │     zeta_rust --> error_handling("Rust Error Handling")                      │
00:01:11 #1263 [Verbose] > │                                                                              │
00:01:11 #1264 [Verbose] > │     num_traits --> num_traits_usage("Use for common traits")                 │
00:01:11 #1265 [Verbose] > │     num_bigint --> bigint_operations("Arbitrary-precision arithmetic         │
00:01:11 #1266 [Verbose] > │ operations")                                                                 │
00:01:11 #1267 [Verbose] > │     rust_decimal --> decimal_operations("High-precision decimal operations") │
00:01:11 #1268 [Verbose] > │     error_handling --> result_type("Use Result<T, E> for error handling")    │
00:01:11 #1269 [Verbose] > │                                                                              │
00:01:11 #1270 [Verbose] > │     bigint_operations --> convert_rust("convert() - Rust")                   │
00:01:11 #1271 [Verbose] > │     bigint_operations --> normalize_rust("_normalize() - Rust")              │
00:01:11 #1272 [Verbose] > │                                                                              │
00:01:11 #1273 [Verbose] > │     convert_rust --> from_float_rust("from_float() - Rust")                  │
00:01:11 #1274 [Verbose] > │     from_float_rust --> from_man_exp_rust("from_man_exp() - Rust")           │
00:01:11 #1275 [Verbose] > │     from_man_exp_rust --> bitcount_rust("bitcount() - Rust")                 │
00:01:11 #1276 [Verbose] > │     bitcount_rust --> normalize_rust                                         │
00:01:11 #1277 [Verbose] > │     normalize_rust --> mpc_zeta_rust("mpc_zeta() - Rust")                    │
00:01:11 #1278 [Verbose] > │     mpc_zeta_rust --> mpf_zeta_rust("mpf_zeta() - Rust")                     │
00:01:11 #1279 [Verbose] > │     mpf_zeta_rust --> to_int_rust("to_int() - Rust")                         │
00:01:11 #1280 [Verbose] > │     to_int_rust --> mpf_zeta_int_rust("mpf_zeta_int() - Rust")               │
00:01:11 #1281 [Verbose] > │                                                                              │
00:01:11 #1282 [Verbose] > │     mpf_zeta_int_rust --> borwein_coefficients_rust("borwein_coefficients()  │
00:01:11 #1283 [Verbose] > │ - Rust")                                                                     │
00:01:11 #1284 [Verbose] > │     borwein_coefficients_rust --> from_man_exp_rust_2("from_man_exp() -      │
00:01:11 #1285 [Verbose] > │ Rust")                                                                       │
00:01:11 #1286 [Verbose] > │     from_man_exp_rust_2 --> bitcount_rust_2("bitcount() - Rust")             │
00:01:11 #1287 [Verbose] > │     bitcount_rust_2 --> normalize_rust_2("_normalize() - Rust")              │
00:01:11 #1288 [Verbose] > │     normalize_rust_2 --> make_mpc_rust("make_mpc() - Rust")                  │
00:01:11 #1289 [Verbose] > │                                                                              │
00:01:11 #1290 [Verbose] > │     mpf_zeta_int_rust --> mpf_bernoulli_rust("mpf_bernoulli() - Rust")       │
00:01:11 #1291 [Verbose] > │     mpf_bernoulli_rust --> bernoulli_size_rust("bernoulli_size() - Rust")    │
00:01:11 #1292 [Verbose] > │     bernoulli_size_rust --> mpf_rdiv_int_rust("mpf_rdiv_int() - Rust")       │
00:01:11 #1293 [Verbose] > │     mpf_rdiv_int_rust --> bitcount_rust_3("bitcount() - Rust")               │
00:01:11 #1294 [Verbose] > │     bitcount_rust_3 --> normalize1_rust("_normalize1() - Rust")              │
00:01:11 #1295 [Verbose] > │     normalize1_rust --> from_man_exp_rust_3("from_man_exp() - Rust")         │
00:01:11 #1296 [Verbose] > │     from_man_exp_rust_3 --> normalize_rust_3("_normalize() - Rust")          │
00:01:11 #1297 [Verbose] > │     normalize_rust_3 --> mpf_sub_rust("mpf_sub() - Rust")                    │
00:01:11 #1298 [Verbose] > │     mpf_sub_rust --> mpf_add_rust("mpf_add() - Rust")                        │
00:01:11 #1299 [Verbose] > │     mpf_add_rust --> mpf_neg_rust("mpf_neg() - Rust")                        │
00:01:11 #1300 [Verbose] > │     mpf_neg_rust --> normalize1_rust_2("_normalize1() - Rust")               │
00:01:11 #1301 [Verbose] > │     normalize1_rust_2 --> from_int_rust("from_int() - Rust")                 │
00:01:11 #1302 [Verbose] > │     from_int_rust --> mpf_div_rust("mpf_div() - Rust")                       │
00:01:11 #1303 [Verbose] > │     mpf_div_rust --> bitcount_rust_4("bitcount() - Rust")                    │
00:01:11 #1304 [Verbose] > │     bitcount_rust_4 --> normalize1_rust_3("_normalize1() - Rust")            │
00:01:11 #1305 [Verbose] > │                                                                              │
00:01:11 #1306 [Verbose] > │     style zeta_rust fill:#f9f,stroke:#333,stroke-width:4px                   │
00:01:11 #1307 [Verbose] > │     style num_traits fill:#bbf,stroke:#333,stroke-width:2px                  │
00:01:11 #1308 [Verbose] > │     style num_bigint fill:#bbf,stroke:#333,stroke-width:2px                  │
00:01:11 #1309 [Verbose] > │     style rust_decimal fill:#bbf,stroke:#333,stroke-width:2px                │
00:01:11 #1310 [Verbose] > │     style error_handling fill:#bbf,stroke:#333,stroke-width:2px              │
00:01:11 #1311 [Verbose] > │     style bigint_operations fill:#bfb,stroke:#333,stroke-width:2px           │
00:01:11 #1312 [Verbose] > │     style decimal_operations fill:#bfb,stroke:#333,stroke-width:2px          │
00:01:11 #1313 [Verbose] > │     style result_type fill:#bfb,stroke:#333,stroke-width:2px`);              │
00:01:11 #1314 [Verbose] > │                 renderTarget.innerHTML = svg;                                │
00:01:11 #1315 [Verbose] > │                 bindFunctions?.(renderTarget);                               │
00:01:11 #1316 [Verbose] > │             }                                                                │
00:01:11 #1317 [Verbose] > │             catch (error) {                                                  │
00:01:11 #1318 [Verbose] > │                 console.log(error);                                          │
00:01:11 #1319 [Verbose] > │             }                                                                │
00:01:11 #1320 [Verbose] > │ </script>                                                                    │
00:01:11 #1321 [Verbose] > │ </div>                                                                       │
00:01:11 #1322 [Verbose] > │                                                                              │
00:01:11 #1323 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:11 #1324 [Verbose] >
00:01:11 #1325 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:11 #1326 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:11 #1327 [Verbose] > │ ## tests                                                                     │
00:01:11 #1328 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:11 #1329 [Verbose] >
00:01:11 #1330 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:11 #1331 [Verbose] > inl tests () =
00:01:11 #1332 [Verbose] >     !\($'"}//"') : ()
00:01:11 #1333 [Verbose] >
00:01:11 #1334 [Verbose] >     !\($'"#[[test]] fn test_zeta_at_known_values_() { //"') : ()
00:01:11 #1335 [Verbose] >     test_zeta_at_known_values_ false
00:01:11 #1336 [Verbose] >     !\($'"} #[[test]] fn test_zeta_at_2_minus2() { //"') : ()
00:01:11 #1337 [Verbose] >     test_zeta_at_2_minus2 false
00:01:11 #1338 [Verbose] >     !\($'"} #[[test]] fn test_trivial_zero_at_negative_even___() { //"') : ()
00:01:11 #1339 [Verbose] >     test_trivial_zero_at_negative_even___ false
00:01:11 #1340 [Verbose] >     !\($'"} #[[test]] fn test_non_trivial_zero___() { //"') : ()
00:01:11 #1341 [Verbose] >     test_non_trivial_zero___ false
00:01:11 #1342 [Verbose] >     !\($'"} #[[test]] fn test_real_part_greater_than_one___() { //"') : ()
00:01:11 #1343 [Verbose] >     test_real_part_greater_than_one___ false
00:01:11 #1344 [Verbose] >     !\($'"} #[[test]] fn test_zeta_at_1___() { //"') : ()
00:01:11 #1345 [Verbose] >     test_zeta_at_1___ false
00:01:11 #1346 [Verbose] >     !\($'"} #[[test]] fn test_symmetry_across_real_axis___() { //"') : ()
00:01:11 #1347 [Verbose] >     test_symmetry_across_real_axis___ false
00:01:11 #1348 [Verbose] >     !\($'"} #[[test]] fn test_behavior_near_origin___() { //"') : ()
00:01:11 #1349 [Verbose] >     test_behavior_near_origin___ false
00:01:11 #1350 [Verbose] >     !\($'"} #[[test]] fn test_imaginary_axis() { //"') : ()
00:01:11 #1351 [Verbose] >     test_imaginary_axis false
00:01:11 #1352 [Verbose] >     !\($'"} #[[test]] fn test_critical_strip() { //"') : ()
00:01:11 #1353 [Verbose] >     test_critical_strip false
00:01:11 #1354 [Verbose] >     !\($'"} #[[test]] fn test_reflection_formula_for_specific_value() { //"') :
00:01:11 #1355 [Verbose] > ()
00:01:11 #1356 [Verbose] >     test_reflection_formula_for_specific_value false
00:01:11 #1357 [Verbose] >     !\($'"} #[[test]] fn test_euler_product_formula() { //"') : ()
00:01:11 #1358 [Verbose] >     test_euler_product_formula false
00:01:11 #1359 [Verbose] > Building /tmp/dotnet-repl/20240329-2210-2849-4966-417e70ff789f/main.spi
00:01:11 #1360 [Verbose] >
00:01:11 #1361 [Verbose] > ╭─[ 152.46ms - stdout ]────────────────────────────────────────────────────────╮
00:01:11 #1362 [Verbose] > │ ()                                                                           │
00:01:11 #1363 [Verbose] > │                                                                              │
00:01:11 #1364 [Verbose] > │                                                                              │
00:01:11 #1365 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:11 #1366 [Verbose] >
00:01:11 #1367 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:11 #1368 [Verbose] > // // rust=
00:01:11 #1369 [Verbose] >
00:01:11 #1370 [Verbose] > inl main (_args : array_base string) =
00:01:11 #1371 [Verbose] >     inl value = 1i32
00:01:11 #1372 [Verbose] >     console.write_line ($"$\"value: {!value}\"" : string)
00:01:11 #1373 [Verbose] >     0i32
00:01:11 #1374 [Verbose] >
00:01:11 #1375 [Verbose] > inl main () =
00:01:11 #1376 [Verbose] >     types ()
00:01:11 #1377 [Verbose] >     $"let tests () = !tests ()" : ()
00:01:11 #1378 [Verbose] >     $"let main args = !main args" : ()
00:01:11 #1379 [Verbose] > Building /tmp/dotnet-repl/20240329-2210-2864-6487-6a89c874b0c0/main.spi
00:01:11 #1380 [Verbose] >
00:01:11 #1381 [Verbose] > ╭─[ 220.82ms - stdout ]────────────────────────────────────────────────────────╮
00:01:11 #1382 [Verbose] > │                                                                              │
00:01:11 #1383 [Verbose] > │ .fsx:                                                                        │
00:01:11 #1384 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Func0<$0>")>] type Func0<'T> = class    │
00:01:11 #1385 [Verbose] > │ end                                                                          │
00:01:11 #1386 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Func1<$0, $1>")>] type Func0<'T, 'U> =  │
00:01:11 #1387 [Verbose] > │ class end                                                                    │
00:01:11 #1388 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Box<$0>")>] type Box<'T> = class end    │
00:01:11 #1389 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("dyn $0")>] type Dyn<'T> = class end     │
00:01:11 #1390 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Fn() -> $0")>] type Fn<'T> = class end  │
00:01:11 #1391 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Fn()")>] type FnUnit = class end        │
00:01:11 #1392 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("FnOnce() -> $0")>] type FnOnce<'T> =    │
00:01:11 #1393 [Verbose] > │ class end                                                                    │
00:01:11 #1394 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Fn($0, $1)")>] type ActionFn2<'T, 'U> = │
00:01:11 #1395 [Verbose] > │ class end                                                                    │
00:01:11 #1396 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("impl $0")>] type Impl<'T> = class end   │
00:01:11 #1397 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("mut $0")>] type Mut<'T> = class end     │
00:01:11 #1398 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("&$0")>] type Ref<'T> = class end        │
00:01:11 #1399 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("&'static $0")>] type StaticRef<'T> =    │
00:01:11 #1400 [Verbose] > │ class end                                                                    │
00:01:11 #1401 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("MutCell<$0>")>] type MutCell<'T> =      │
00:01:11 #1402 [Verbose] > │ class end                                                                    │
00:01:11 #1403 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::any::Any")>] type std_any_Any =    │
00:01:11 #1404 [Verbose] > │ class end                                                                    │
00:01:11 #1405 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::cell::RefCell<$0>")>] type         │
00:01:11 #1406 [Verbose] > │ std_cell_RefCell<'T> = class end                                             │
00:01:11 #1407 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::pin::Pin<$0>")>] type              │
00:01:11 #1408 [Verbose] > │ std_pin_Pin<'T> = class end                                                  │
00:01:11 #1409 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::rc::Rc<$0>")>] type std_rc_Rc<'T>  │
00:01:11 #1410 [Verbose] > │ = class end                                                                  │
00:01:11 #1411 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::rc::Weak<$0>")>] type              │
00:01:11 #1412 [Verbose] > │ std_rc_Weak<'T> = class end                                                  │
00:01:11 #1413 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::sync::Arc<$0>")>] type             │
00:01:11 #1414 [Verbose] > │ std_sync_Arc<'T> = class end                                                 │
00:01:11 #1415 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("str")>] type Str = class end            │
00:01:11 #1416 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>] type            │
00:01:11 #1417 [Verbose] > │ base64_DecodeError = class end                                               │
00:01:11 #1418 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>] type               │
00:01:11 #1419 [Verbose] > │ borsh_io_Error = class end                                                   │
00:01:11 #1420 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>] type               │
00:01:11 #1421 [Verbose] > │ js_sys_JsString = class end                                                  │
00:01:11 #1422 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>] type              │
00:01:11 #1423 [Verbose] > │ serde_json_Error = class end                                                 │
00:01:11 #1424 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>] type              │
00:01:11 #1425 [Verbose] > │ serde_json_Value = class end                                                 │
00:01:11 #1426 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>] type      │
00:01:11 #1427 [Verbose] > │ serde_wasm_bindgen_Error = class end                                         │
00:01:11 #1428 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::str::Utf8Error")>] type            │
00:01:11 #1429 [Verbose] > │ std_str_Utf8Error = class end                                                │
00:01:11 #1430 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] type            │
00:01:11 #1431 [Verbose] > │ std_string_String = class end                                                │
00:01:11 #1432 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("num_complex::Complex<$0>")>] type       │
00:01:11 #1433 [Verbose] > │ num_complex_Complex<'T> = class end                                          │
00:01:11 #1434 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("pyo3::types::PyModule")>] type          │
00:01:11 #1435 [Verbose] > │ pyo3_types_PyModule = class end                                              │
00:01:11 #1436 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("pyo3::Bound<$0>")>] type pyo3_Bound<'T> │
00:01:11 #1437 [Verbose] > │ = class end                                                                  │
00:01:11 #1438 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("pyo3::Python")>] type pyo3_Python =     │
00:01:11 #1439 [Verbose] > │ class end                                                                    │
00:01:11 #1440 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("pyo3::PyAny")>] type pyo3_PyAny = class │
00:01:11 #1441 [Verbose] > │ end                                                                          │
00:01:11 #1442 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("pyo3::PyErr")>] type pyo3_PyErr = class │
00:01:11 #1443 [Verbose] > │ end                                                                          │
00:01:11 #1444 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () ");                                   │
00:01:11 #1445 [Verbose] > │ use pyo3::prelude::PyAnyMethods;                                             │
00:01:11 #1446 [Verbose] > │ //"                                                                          │
00:01:11 #1447 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │
00:01:11 #1448 [Verbose] > │ and Mut1 = {mutable l0 : int32; mutable l1 : string}                         │
00:01:11 #1449 [Verbose] > │ and Mut2 = {mutable l0 : int32; mutable l1 : num_complex_Complex<float>}     │
00:01:11 #1450 [Verbose] > │ and [<Struct>] US0 =                                                         │
00:01:11 #1451 [Verbose] > │     | US0_0                                                                  │
00:01:11 #1452 [Verbose] > │     | US0_1 of f1_0 : num_complex_Complex<float>                             │
00:01:11 #1453 [Verbose] > │ and UH0 =                                                                    │
00:01:11 #1454 [Verbose] > │     | UH0_0 of float * UH0                                                   │
00:01:11 #1455 [Verbose] > │     | UH0_1                                                                  │
00:01:11 #1456 [Verbose] > │ and Mut3 = {mutable l0 : int32; mutable l1 : float}                          │
00:01:11 #1457 [Verbose] > │ let rec method2 () : float =                                                 │
00:01:11 #1458 [Verbose] > │     2.0                                                                      │
00:01:11 #1459 [Verbose] > │ and method3 (v0 : float) : float =                                           │
00:01:11 #1460 [Verbose] > │     v0                                                                       │
00:01:11 #1461 [Verbose] > │ and method4 () : float =                                                     │
00:01:11 #1462 [Verbose] > │     0.0                                                                      │
00:01:11 #1463 [Verbose] > │ and method5 () : float =                                                     │
00:01:11 #1464 [Verbose] > │     -1.0                                                                     │
00:01:11 #1465 [Verbose] > │ and method6 (v0 : (struct (num_complex_Complex<float> * float) [])) :        │
00:01:11 #1466 [Verbose] > │ (struct (num_complex_Complex<float> * float) []) =                           │
00:01:11 #1467 [Verbose] > │     v0                                                                       │
00:01:11 #1468 [Verbose] > │ and method7 (v0 : int32, v1 : Mut0) : bool =                                 │
00:01:11 #1469 [Verbose] > │     let v2 : int32 = v1.l0                                                   │
00:01:11 #1470 [Verbose] > │     let v3 : bool = v2 < v0                                                  │
00:01:11 #1471 [Verbose] > │     v3                                                                       │
00:01:11 #1472 [Verbose] > │ and method8 (v0 : num_complex_Complex<float>) : num_complex_Complex<float> = │
00:01:11 #1473 [Verbose] > │     v0                                                                       │
00:01:11 #1474 [Verbose] > │ and method10 (v0 : (string [])) : (string []) =                              │
00:01:11 #1475 [Verbose] > │     v0                                                                       │
00:01:11 #1476 [Verbose] > │ and method12 (v0 : int32, v1 : Mut1) : bool =                                │
00:01:11 #1477 [Verbose] > │     let v2 : int32 = v1.l0                                                   │
00:01:11 #1478 [Verbose] > │     let v3 : bool = v2 < v0                                                  │
00:01:11 #1479 [Verbose] > │     v3                                                                       │
00:01:11 #1480 [Verbose] > │ and method11 (v0 : (string [])) : string =                                   │
00:01:11 #1481 [Verbose] > │     let v1 : int32 = v0.Length                                               │
00:01:11 #1482 [Verbose] > │     let v2 : string = ""                                                     │
00:01:11 #1483 [Verbose] > │     let v3 : Mut1 = {l0 = 0; l1 = v2} : Mut1                                 │
00:01:11 #1484 [Verbose] > │     while method12(v1, v3) do                                                │
00:01:11 #1485 [Verbose] > │         let v5 : int32 = v3.l0                                               │
00:01:11 #1486 [Verbose] > │         let v6 : string = v3.l1                                              │
00:01:11 #1487 [Verbose] > │         let v7 : string = v0.[int v5]                                        │
00:01:11 #1488 [Verbose] > │         let v8 : string = "\n"                                               │
00:01:11 #1489 [Verbose] > │         let v9 : string = v6 + v7 + v8 + ""                                  │
00:01:11 #1490 [Verbose] > │         let v10 : int32 = v5 + 1                                             │
00:01:11 #1491 [Verbose] > │         v3.l0 <- v10                                                         │
00:01:11 #1492 [Verbose] > │         v3.l1 <- v9                                                          │
00:01:11 #1493 [Verbose] > │         ()                                                                   │
00:01:11 #1494 [Verbose] > │     let v11 : string = v3.l1                                                 │
00:01:11 #1495 [Verbose] > │     v11                                                                      │
00:01:11 #1496 [Verbose] > │ and method13 (v0 : num_complex_Complex<float>) : num_complex_Complex<float>  │
00:01:11 #1497 [Verbose] > │ =                                                                            │
00:01:11 #1498 [Verbose] > │     v0                                                                       │
00:01:11 #1499 [Verbose] > │ and method14 (v0 : num_complex_Complex<float>) : num_complex_Complex<float>  │
00:01:11 #1500 [Verbose] > │ =                                                                            │
00:01:11 #1501 [Verbose] > │     v0                                                                       │
00:01:11 #1502 [Verbose] > │ and method15 (v0 : pyo3_Python) : pyo3_Python =                              │
00:01:11 #1503 [Verbose] > │     v0                                                                       │
00:01:11 #1504 [Verbose] > │ and method16 (v0 : string) : string =                                        │
00:01:11 #1505 [Verbose] > │     v0                                                                       │
00:01:11 #1506 [Verbose] > │ and closure1 () (v0 : pyo3_PyErr) : std_string_String =                      │
00:01:11 #1507 [Verbose] > │     let v1 : string = @$"format!(""{{}}"", $0)"                              │
00:01:11 #1508 [Verbose] > │     let v2 : std_string_String = Fable.Core.RustInterop.emitRustExpr v0 v1   │
00:01:11 #1509 [Verbose] > │     v2                                                                       │
00:01:11 #1510 [Verbose] > │ and method17 () : (pyo3_PyErr -> std_string_String) =                        │
00:01:11 #1511 [Verbose] > │     closure1()                                                               │
00:01:11 #1512 [Verbose] > │ and method18 (v0 : Result<pyo3_Bound<pyo3_types_PyModule>, pyo3_PyErr>) :    │
00:01:11 #1513 [Verbose] > │ Result<pyo3_Bound<pyo3_types_PyModule>, pyo3_PyErr> =                        │
00:01:11 #1514 [Verbose] > │     v0                                                                       │
00:01:11 #1515 [Verbose] > │ and method19 (v0 : Result<pyo3_Bound<pyo3_types_PyModule>,                   │
00:01:11 #1516 [Verbose] > │ std_string_String>) : Result<pyo3_Bound<pyo3_types_PyModule>,                │
00:01:11 #1517 [Verbose] > │ std_string_String> =                                                         │
00:01:11 #1518 [Verbose] > │     v0                                                                       │
00:01:11 #1519 [Verbose] > │ and method20 () : string =                                                   │
00:01:11 #1520 [Verbose] > │     let v0 : string = "fn"                                                   │
00:01:11 #1521 [Verbose] > │     v0                                                                       │
00:01:11 #1522 [Verbose] > │ and method21 (v0 : pyo3_Bound<pyo3_types_PyModule>) :                        │
00:01:11 #1523 [Verbose] > │ pyo3_Bound<pyo3_types_PyModule> =                                            │
00:01:11 #1524 [Verbose] > │     v0                                                                       │
00:01:11 #1525 [Verbose] > │ and closure2 () (v0 : pyo3_PyErr) : std_string_String =                      │
00:01:11 #1526 [Verbose] > │     let v1 : string = @$"format!(""{{}}"", $0)"                              │
00:01:11 #1527 [Verbose] > │     let v2 : std_string_String = Fable.Core.RustInterop.emitRustExpr v0 v1   │
00:01:11 #1528 [Verbose] > │     v2                                                                       │
00:01:11 #1529 [Verbose] > │ and method22 () : (pyo3_PyErr -> std_string_String) =                        │
00:01:11 #1530 [Verbose] > │     closure2()                                                               │
00:01:11 #1531 [Verbose] > │ and method23 (v0 : Result<pyo3_Bound<pyo3_PyAny>, pyo3_PyErr>) :             │
00:01:11 #1532 [Verbose] > │ Result<pyo3_Bound<pyo3_PyAny>, pyo3_PyErr> =                                 │
00:01:11 #1533 [Verbose] > │     v0                                                                       │
00:01:11 #1534 [Verbose] > │ and method24 (v0 : Result<pyo3_Bound<pyo3_PyAny>, std_string_String>) :      │
00:01:11 #1535 [Verbose] > │ Result<pyo3_Bound<pyo3_PyAny>, std_string_String> =                          │
00:01:11 #1536 [Verbose] > │     v0                                                                       │
00:01:11 #1537 [Verbose] > │ and method25 (v0 : (bool * (float * float))) : (bool * (float * float)) =    │
00:01:11 #1538 [Verbose] > │     v0                                                                       │
00:01:11 #1539 [Verbose] > │ and method26 (v0 : pyo3_Bound<pyo3_PyAny>) : pyo3_Bound<pyo3_PyAny> =        │
00:01:11 #1540 [Verbose] > │     v0                                                                       │
00:01:11 #1541 [Verbose] > │ and closure3 () (v0 : pyo3_PyErr) : std_string_String =                      │
00:01:11 #1542 [Verbose] > │     let v1 : string = @$"format!(""{{}}"", $0)"                              │
00:01:11 #1543 [Verbose] > │     let v2 : std_string_String = Fable.Core.RustInterop.emitRustExpr v0 v1   │
00:01:11 #1544 [Verbose] > │     v2                                                                       │
00:01:11 #1545 [Verbose] > │ and method27 () : (pyo3_PyErr -> std_string_String) =                        │
00:01:11 #1546 [Verbose] > │     closure3()                                                               │
00:01:11 #1547 [Verbose] > │ and method28 (v0 : pyo3_Bound<pyo3_PyAny>) : pyo3_Bound<pyo3_PyAny> =        │
00:01:11 #1548 [Verbose] > │     v0                                                                       │
00:01:11 #1549 [Verbose] > │ and closure4 () (v0 : pyo3_PyErr) : std_string_String =                      │
00:01:11 #1550 [Verbose] > │     let v1 : string = @$"format!(""{{}}"", $0)"                              │
00:01:11 #1551 [Verbose] > │     let v2 : std_string_String = Fable.Core.RustInterop.emitRustExpr v0 v1   │
00:01:11 #1552 [Verbose] > │     v2                                                                       │
00:01:11 #1553 [Verbose] > │ and method29 () : (pyo3_PyErr -> std_string_String) =                        │
00:01:11 #1554 [Verbose] > │     closure4()                                                               │
00:01:11 #1555 [Verbose] > │ and method30 (v0 : Result<struct (float * float), pyo3_PyErr>) :             │
00:01:11 #1556 [Verbose] > │ Result<struct (float * float), pyo3_PyErr> =                                 │
00:01:11 #1557 [Verbose] > │     v0                                                                       │
00:01:11 #1558 [Verbose] > │ and method31 (v0 : float) : float =                                          │
00:01:11 #1559 [Verbose] > │     v0                                                                       │
00:01:11 #1560 [Verbose] > │ and method32 (v0 : float) : float =                                          │
00:01:11 #1561 [Verbose] > │     v0                                                                       │
00:01:11 #1562 [Verbose] > │ and method9 (v0 : pyo3_Python, v1 : string, v2 : num_complex_Complex<float>) │
00:01:11 #1563 [Verbose] > │ : Result<num_complex_Complex<float>, std_string_String> =                    │
00:01:11 #1564 [Verbose] > │     let v3 : string = $"import sys"                                          │
00:01:11 #1565 [Verbose] > │     let v4 : string = $"import traceback"                                    │
00:01:11 #1566 [Verbose] > │     let v5 : string = $"import re"                                           │
00:01:11 #1567 [Verbose] > │     let v6 : string = $"count = 0"                                           │
00:01:11 #1568 [Verbose] > │     let v7 : string = $"memory_address_pattern = re.compile(r' at 0x[        │
00:01:11 #1569 [Verbose] > │ 0-9a-fA-F]+')"                                                               │
00:01:11 #1570 [Verbose] > │     let v8 : string = $"def trace_calls(frame, event, arg):"                 │
00:01:11 #1571 [Verbose] > │     let v9 : string = $"    global count"                                    │
00:01:11 #1572 [Verbose] > │     let v10 : string = $"    count += 1"                                     │
00:01:11 #1573 [Verbose] > │     let v11 : string = $"    if count < 200:"                                │
00:01:11 #1574 [Verbose] > │     let v12 : string = $"        try:"                                       │
00:01:11 #1575 [Verbose] > │     let v13 : string = $"            args = {{ k: v for k, v in              │
00:01:11 #1576 [Verbose] > │ frame.f_locals.items() if frame.f_code.co_name != 'make_mpc' and k not in [  │
00:01:11 #1577 [Verbose] > │ 'ctx'] and not callable(v) }}"                                               │
00:01:11 #1578 [Verbose] > │     let v14 : string = $"            args_str = ', '.join([                  │
00:01:11 #1579 [Verbose] > │ f\"{{k}}={{re.sub(memory_address_pattern, ' at 0x<?>', repr(v))}}\" for k, v │
00:01:11 #1580 [Verbose] > │ in args.items() ])"                                                          │
00:01:11 #1581 [Verbose] > │     let v15 : string = "zeta_"                                               │
00:01:11 #1582 [Verbose] > │     let v16 : string = $"            print(f\"{{event}}({v15}) /             │
00:01:11 #1583 [Verbose] > │ f_code.co_name: {{frame.f_code.co_name}} / f_locals: {{args_str}} /          │
00:01:11 #1584 [Verbose] > │ f_lineno: {{frame.f_lineno}} / f_code.co_filename:                           │
00:01:11 #1585 [Verbose] > │ {{frame.f_code.co_filename.split('site-packages')[-1]}} / f_back.f_lineno:   │
00:01:11 #1586 [Verbose] > │ {{ '' if frame.f_back is None else frame.f_back.f_lineno }} /                │
00:01:11 #1587 [Verbose] > │ f_back.f_code.co_filename: {{ '' if frame.f_back is None else                │
00:01:11 #1588 [Verbose] > │ frame.f_back.f_code.co_filename.split('site-packages')[-1] }} / arg:         │
00:01:11 #1589 [Verbose] > │ {{re.sub(memory_address_pattern, ' at 0x<?>', repr(arg))}}\", flush=True)"   │
00:01:11 #1590 [Verbose] > │     let v17 : string = $"        except ValueError as e:"                    │
00:01:11 #1591 [Verbose] > │     let v18 : string = $"            print(f'{v15} / e: {{e}}', flush=True)" │
00:01:11 #1592 [Verbose] > │     let v19 : string = $"        return trace_calls"                         │
00:01:11 #1593 [Verbose] > │     let v20 : string = $"import mpmath"                                      │
00:01:11 #1594 [Verbose] > │     let v21 : string = $"def fn(log, s):"                                    │
00:01:11 #1595 [Verbose] > │     let v22 : string = $"    global count"                                   │
00:01:11 #1596 [Verbose] > │     let v23 : string = $"    if log:"                                        │
00:01:11 #1597 [Verbose] > │     let v24 : string = $"        print(f'{v15} / s: {{s}} / count:           │
00:01:11 #1598 [Verbose] > │ {{count}}', flush=True)"                                                     │
00:01:11 #1599 [Verbose] > │     let v25 : string = $"    s = complex(*s)"                                │
00:01:11 #1600 [Verbose] > │     let v26 : string = $"    try:"                                           │
00:01:11 #1601 [Verbose] > │     let v27 : string = $"        if log: sys.settrace(trace_calls)"          │
00:01:11 #1602 [Verbose] > │     let v28 : string = $"        if log:"                                    │
00:01:11 #1603 [Verbose] > │     let v29 : string = $"            sys.settrace(None)"                     │
00:01:11 #1604 [Verbose] > │     let v30 : string = $"            print(f'{v15} / result: {{s}} / count:  │
00:01:11 #1605 [Verbose] > │ {{count}}', flush=True)"                                                     │
00:01:11 #1606 [Verbose] > │     let v31 : string = $"    except ValueError as e:"                        │
00:01:11 #1607 [Verbose] > │     let v32 : string = $"        if s.real == 1:"                            │
00:01:11 #1608 [Verbose] > │     let v33 : string = $"            s = complex(float('inf'), 0)"           │
00:01:11 #1609 [Verbose] > │     let v34 : string = $"    return (s.real, s.imag)"                        │
00:01:11 #1610 [Verbose] > │     let v35 : (string []) = [|v3; v4; v5; v6; v7; v8; v9; v10; v11; v12;     │
00:01:11 #1611 [Verbose] > │ v13; v14; v16; v17; v18; v19; v20; v21; v22; v23; v24; v25; v26; v27; v1;    │
00:01:11 #1612 [Verbose] > │ v28; v29; v30; v31; v32; v33; v34|]                                          │
00:01:11 #1613 [Verbose] > │     let v36 : (string []) = method10(v35)                                    │
00:01:11 #1614 [Verbose] > │     let v37 : string = method11(v36)                                         │
00:01:11 #1615 [Verbose] > │     let v38 : num_complex_Complex<float> = method13(v2)                      │
00:01:11 #1616 [Verbose] > │     let v39 : string = "v38.re"                                              │
00:01:11 #1617 [Verbose] > │     let v40 : float = Fable.Core.RustInterop.emitRustExpr () v39             │
00:01:11 #1618 [Verbose] > │     let v41 : num_complex_Complex<float> = method14(v2)                      │
00:01:11 #1619 [Verbose] > │     let v42 : string = "v41.im"                                              │
00:01:11 #1620 [Verbose] > │     let v43 : float = Fable.Core.RustInterop.emitRustExpr () v42             │
00:01:11 #1621 [Verbose] > │     let v44 : (float * float) = v40, v43                                     │
00:01:11 #1622 [Verbose] > │     let v45 : (bool * (float * float)) = false, v44                          │
00:01:11 #1623 [Verbose] > │     let v46 : pyo3_Python = method15(v0)                                     │
00:01:11 #1624 [Verbose] > │     let v47 : string = method16(v37)                                         │
00:01:11 #1625 [Verbose] > │     let v48 : string = $"fable_library_rust::String_::LrcStr::as_str(&v47)"  │
00:01:11 #1626 [Verbose] > │     let v49 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr () v48          │
00:01:11 #1627 [Verbose] > │     let v50 : string = "pyo3::types::PyModule::from_code_bound(v46, v49,     │
00:01:11 #1628 [Verbose] > │ \"\", \"\")"                                                                 │
00:01:11 #1629 [Verbose] > │     let v51 : Result<pyo3_Bound<pyo3_types_PyModule>, pyo3_PyErr> =          │
00:01:11 #1630 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v50                                   │
00:01:11 #1631 [Verbose] > │     let v52 : (pyo3_PyErr -> std_string_String) = method17()                 │
00:01:11 #1632 [Verbose] > │     let v53 : Result<pyo3_Bound<pyo3_types_PyModule>, pyo3_PyErr> =          │
00:01:11 #1633 [Verbose] > │ method18(v51)                                                                │
00:01:11 #1634 [Verbose] > │     let v54 : string = "v53.map_err(|x| v52(x))"                             │
00:01:11 #1635 [Verbose] > │     let v55 : Result<pyo3_Bound<pyo3_types_PyModule>, std_string_String> =   │
00:01:11 #1636 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v54                                   │
00:01:11 #1637 [Verbose] > │     let v56 : Result<pyo3_Bound<pyo3_types_PyModule>, std_string_String> =   │
00:01:11 #1638 [Verbose] > │ method19(v55)                                                                │
00:01:11 #1639 [Verbose] > │     let v57 : string = "v56.unwrap()"                                        │
00:01:11 #1640 [Verbose] > │     let v58 : pyo3_Bound<pyo3_types_PyModule> =                              │
00:01:11 #1641 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v57                                   │
00:01:11 #1642 [Verbose] > │     let v59 : string = method20()                                            │
00:01:11 #1643 [Verbose] > │     let v60 : string = $"fable_library_rust::String_::LrcStr::as_str(&v59)"  │
00:01:11 #1644 [Verbose] > │     let v61 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr () v60          │
00:01:11 #1645 [Verbose] > │     let v62 : pyo3_Bound<pyo3_types_PyModule> = method21(v58)                │
00:01:11 #1646 [Verbose] > │     let v63 : string = "v62.getattr(v61)"                                    │
00:01:11 #1647 [Verbose] > │     let v64 : Result<pyo3_Bound<pyo3_PyAny>, pyo3_PyErr> =                   │
00:01:11 #1648 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v63                                   │
00:01:11 #1649 [Verbose] > │     let v65 : (pyo3_PyErr -> std_string_String) = method22()                 │
00:01:11 #1650 [Verbose] > │     let v66 : Result<pyo3_Bound<pyo3_PyAny>, pyo3_PyErr> = method23(v64)     │
00:01:11 #1651 [Verbose] > │     let v67 : string = "v66.map_err(|x| v65(x))"                             │
00:01:11 #1652 [Verbose] > │     let v68 : Result<pyo3_Bound<pyo3_PyAny>, std_string_String> =            │
00:01:11 #1653 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v67                                   │
00:01:11 #1654 [Verbose] > │     let v69 : Result<pyo3_Bound<pyo3_PyAny>, std_string_String> =            │
00:01:11 #1655 [Verbose] > │ method24(v68)                                                                │
00:01:11 #1656 [Verbose] > │     let v70 : string = "v69.unwrap()"                                        │
00:01:11 #1657 [Verbose] > │     let v71 : pyo3_Bound<pyo3_PyAny> = Fable.Core.RustInterop.emitRustExpr   │
00:01:11 #1658 [Verbose] > │ () v70                                                                       │
00:01:11 #1659 [Verbose] > │     let v72 : (bool * (float * float)) = method25(v45)                       │
00:01:11 #1660 [Verbose] > │     let v73 : pyo3_Bound<pyo3_PyAny> = method26(v71)                         │
00:01:11 #1661 [Verbose] > │     let v74 : string = "pyo3::prelude::PyAnyMethods::call(&v73, ((*v72).0,   │
00:01:11 #1662 [Verbose] > │ *(*v72).1), None)"                                                           │
00:01:11 #1663 [Verbose] > │     let v75 : Result<pyo3_Bound<pyo3_PyAny>, pyo3_PyErr> =                   │
00:01:11 #1664 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v74                                   │
00:01:11 #1665 [Verbose] > │     let v76 : (pyo3_PyErr -> std_string_String) = method27()                 │
00:01:11 #1666 [Verbose] > │     let v77 : Result<pyo3_Bound<pyo3_PyAny>, pyo3_PyErr> = method23(v75)     │
00:01:11 #1667 [Verbose] > │     let v78 : string = "v77.map_err(|x| v76(x))"                             │
00:01:11 #1668 [Verbose] > │     let v79 : Result<pyo3_Bound<pyo3_PyAny>, std_string_String> =            │
00:01:11 #1669 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v78                                   │
00:01:11 #1670 [Verbose] > │     let v80 : string = "v79?"                                                │
00:01:11 #1671 [Verbose] > │     let v81 : pyo3_Bound<pyo3_PyAny> = Fable.Core.RustInterop.emitRustExpr   │
00:01:11 #1672 [Verbose] > │ () v80                                                                       │
00:01:11 #1673 [Verbose] > │     let v82 : pyo3_Bound<pyo3_PyAny> = method28(v81)                         │
00:01:11 #1674 [Verbose] > │     let v83 : string = "v82.extract()"                                       │
00:01:11 #1675 [Verbose] > │     let v84 : Result<struct (float * float), pyo3_PyErr> =                   │
00:01:11 #1676 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v83                                   │
00:01:11 #1677 [Verbose] > │     let v85 : (pyo3_PyErr -> std_string_String) = method29()                 │
00:01:11 #1678 [Verbose] > │     let v86 : Result<struct (float * float), pyo3_PyErr> = method30(v84)     │
00:01:11 #1679 [Verbose] > │     let v87 : string = "v86.map_err(|x| v85(x))"                             │
00:01:11 #1680 [Verbose] > │     let v88 : Result<struct (float * float), std_string_String> =            │
00:01:11 #1681 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v87                                   │
00:01:11 #1682 [Verbose] > │     let v89 : string = "v88?"                                                │
00:01:11 #1683 [Verbose] > │     let struct (v90 : float, v91 : float) =                                  │
00:01:11 #1684 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v89                                   │
00:01:11 #1685 [Verbose] > │     let v92 : float = method31(v90)                                          │
00:01:11 #1686 [Verbose] > │     let v93 : float = method3(v92)                                           │
00:01:11 #1687 [Verbose] > │     let v94 : float = method32(v91)                                          │
00:01:11 #1688 [Verbose] > │     let v95 : string = "num_complex::Complex::new(v93, v94)"                 │
00:01:11 #1689 [Verbose] > │     let v96 : num_complex_Complex<float> =                                   │
00:01:11 #1690 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v95                                   │
00:01:11 #1691 [Verbose] > │     let v97 : Result<num_complex_Complex<float>, std_string_String> = Ok v96 │
00:01:11 #1692 [Verbose] > │     v97                                                                      │
00:01:11 #1693 [Verbose] > │ and method34 (v0 : num_complex_Complex<float>) : num_complex_Complex<float>  │
00:01:11 #1694 [Verbose] > │ =                                                                            │
00:01:11 #1695 [Verbose] > │     v0                                                                       │
00:01:11 #1696 [Verbose] > │ and method35 () : float =                                                    │
00:01:11 #1697 [Verbose] > │     0.0                                                                      │
00:01:11 #1698 [Verbose] > │ and method36 (v0 : Mut0) : bool =                                            │
00:01:11 #1699 [Verbose] > │     let v1 : int32 = v0.l0                                                   │
00:01:11 #1700 [Verbose] > │     let v2 : bool = v1 < 10000                                               │
00:01:11 #1701 [Verbose] > │     v2                                                                       │
00:01:11 #1702 [Verbose] > │ and method37 (v0 : int32, v1 : Mut2) : bool =                                │
00:01:11 #1703 [Verbose] > │     let v2 : int32 = v1.l0                                                   │
00:01:11 #1704 [Verbose] > │     let v3 : bool = v2 < v0                                                  │
00:01:11 #1705 [Verbose] > │     v3                                                                       │
00:01:11 #1706 [Verbose] > │ and method38 () : float =                                                    │
00:01:11 #1707 [Verbose] > │     1.0                                                                      │
00:01:11 #1708 [Verbose] > │ and method39 (v0 : num_complex_Complex<float>) : num_complex_Complex<float>  │
00:01:11 #1709 [Verbose] > │ =                                                                            │
00:01:11 #1710 [Verbose] > │     v0                                                                       │
00:01:11 #1711 [Verbose] > │ and method40 (v0 : num_complex_Complex<float>) : num_complex_Complex<float>  │
00:01:11 #1712 [Verbose] > │ =                                                                            │
00:01:11 #1713 [Verbose] > │     v0                                                                       │
00:01:11 #1714 [Verbose] > │ and method41 (v0 : pyo3_Python, v1 : string, v2 :                            │
00:01:11 #1715 [Verbose] > │ num_complex_Complex<float>) : Result<num_complex_Complex<float>,             │
00:01:11 #1716 [Verbose] > │ std_string_String> =                                                         │
00:01:11 #1717 [Verbose] > │     let v3 : string = $"import sys"                                          │
00:01:11 #1718 [Verbose] > │     let v4 : string = $"import traceback"                                    │
00:01:11 #1719 [Verbose] > │     let v5 : string = $"import re"                                           │
00:01:11 #1720 [Verbose] > │     let v6 : string = $"count = 0"                                           │
00:01:11 #1721 [Verbose] > │     let v7 : string = $"memory_address_pattern = re.compile(r' at 0x[        │
00:01:11 #1722 [Verbose] > │ 0-9a-fA-F]+')"                                                               │
00:01:11 #1723 [Verbose] > │     let v8 : string = $"def trace_calls(frame, event, arg):"                 │
00:01:11 #1724 [Verbose] > │     let v9 : string = $"    global count"                                    │
00:01:11 #1725 [Verbose] > │     let v10 : string = $"    count += 1"                                     │
00:01:11 #1726 [Verbose] > │     let v11 : string = $"    if count < 200:"                                │
00:01:11 #1727 [Verbose] > │     let v12 : string = $"        try:"                                       │
00:01:11 #1728 [Verbose] > │     let v13 : string = $"            args = {{ k: v for k, v in              │
00:01:11 #1729 [Verbose] > │ frame.f_locals.items() if frame.f_code.co_name != 'make_mpc' and k not in [  │
00:01:11 #1730 [Verbose] > │ 'ctx'] and not callable(v) }}"                                               │
00:01:11 #1731 [Verbose] > │     let v14 : string = $"            args_str = ', '.join([                  │
00:01:11 #1732 [Verbose] > │ f\"{{k}}={{re.sub(memory_address_pattern, ' at 0x<?>', repr(v))}}\" for k, v │
00:01:11 #1733 [Verbose] > │ in args.items() ])"                                                          │
00:01:11 #1734 [Verbose] > │     let v15 : string = "gamma_"                                              │
00:01:11 #1735 [Verbose] > │     let v16 : string = $"            print(f\"{{event}}({v15}) /             │
00:01:11 #1736 [Verbose] > │ f_code.co_name: {{frame.f_code.co_name}} / f_locals: {{args_str}} /          │
00:01:11 #1737 [Verbose] > │ f_lineno: {{frame.f_lineno}} / f_code.co_filename:                           │
00:01:11 #1738 [Verbose] > │ {{frame.f_code.co_filename.split('site-packages')[-1]}} / f_back.f_lineno:   │
00:01:11 #1739 [Verbose] > │ {{ '' if frame.f_back is None else frame.f_back.f_lineno }} /                │
00:01:11 #1740 [Verbose] > │ f_back.f_code.co_filename: {{ '' if frame.f_back is None else                │
00:01:11 #1741 [Verbose] > │ frame.f_back.f_code.co_filename.split('site-packages')[-1] }} / arg:         │
00:01:11 #1742 [Verbose] > │ {{re.sub(memory_address_pattern, ' at 0x<?>', repr(arg))}}\", flush=True)"   │
00:01:11 #1743 [Verbose] > │     let v17 : string = $"        except ValueError as e:"                    │
00:01:11 #1744 [Verbose] > │     let v18 : string = $"            print(f'{v15} / e: {{e}}', flush=True)" │
00:01:11 #1745 [Verbose] > │     let v19 : string = $"        return trace_calls"                         │
00:01:11 #1746 [Verbose] > │     let v20 : string = $"import mpmath"                                      │
00:01:11 #1747 [Verbose] > │     let v21 : string = $"def fn(log, s):"                                    │
00:01:11 #1748 [Verbose] > │     let v22 : string = $"    global count"                                   │
00:01:11 #1749 [Verbose] > │     let v23 : string = $"    if log:"                                        │
00:01:11 #1750 [Verbose] > │     let v24 : string = $"        print(f'{v15} / s: {{s}} / count:           │
00:01:11 #1751 [Verbose] > │ {{count}}', flush=True)"                                                     │
00:01:11 #1752 [Verbose] > │     let v25 : string = $"    s = complex(*s)"                                │
00:01:11 #1753 [Verbose] > │     let v26 : string = $"    try:"                                           │
00:01:11 #1754 [Verbose] > │     let v27 : string = $"        if log: sys.settrace(trace_calls)"          │
00:01:11 #1755 [Verbose] > │     let v28 : string = $"        if log:"                                    │
00:01:11 #1756 [Verbose] > │     let v29 : string = $"            sys.settrace(None)"                     │
00:01:11 #1757 [Verbose] > │     let v30 : string = $"            print(f'{v15} / result: {{s}} / count:  │
00:01:11 #1758 [Verbose] > │ {{count}}', flush=True)"                                                     │
00:01:11 #1759 [Verbose] > │     let v31 : string = $"    except ValueError as e:"                        │
00:01:11 #1760 [Verbose] > │     let v32 : string = $"        if s.real == 1:"                            │
00:01:11 #1761 [Verbose] > │     let v33 : string = $"            s = complex(float('inf'), 0)"           │
00:01:11 #1762 [Verbose] > │     let v34 : string = $"    return (s.real, s.imag)"                        │
00:01:11 #1763 [Verbose] > │     let v35 : (string []) = [|v3; v4; v5; v6; v7; v8; v9; v10; v11; v12;     │
00:01:11 #1764 [Verbose] > │ v13; v14; v16; v17; v18; v19; v20; v21; v22; v23; v24; v25; v26; v27; v1;    │
00:01:11 #1765 [Verbose] > │ v28; v29; v30; v31; v32; v33; v34|]                                          │
00:01:11 #1766 [Verbose] > │     let v36 : (string []) = method10(v35)                                    │
00:01:11 #1767 [Verbose] > │     let v37 : string = method11(v36)                                         │
00:01:11 #1768 [Verbose] > │     let v38 : num_complex_Complex<float> = method13(v2)                      │
00:01:11 #1769 [Verbose] > │     let v39 : string = "v38.re"                                              │
00:01:11 #1770 [Verbose] > │     let v40 : float = Fable.Core.RustInterop.emitRustExpr () v39             │
00:01:11 #1771 [Verbose] > │     let v41 : num_complex_Complex<float> = method14(v2)                      │
00:01:11 #1772 [Verbose] > │     let v42 : string = "v41.im"                                              │
00:01:11 #1773 [Verbose] > │     let v43 : float = Fable.Core.RustInterop.emitRustExpr () v42             │
00:01:11 #1774 [Verbose] > │     let v44 : (float * float) = v40, v43                                     │
00:01:11 #1775 [Verbose] > │     let v45 : (bool * (float * float)) = false, v44                          │
00:01:11 #1776 [Verbose] > │     let v46 : pyo3_Python = method15(v0)                                     │
00:01:11 #1777 [Verbose] > │     let v47 : string = method16(v37)                                         │
00:01:11 #1778 [Verbose] > │     let v48 : string = $"fable_library_rust::String_::LrcStr::as_str(&v47)"  │
00:01:11 #1779 [Verbose] > │     let v49 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr () v48          │
00:01:11 #1780 [Verbose] > │     let v50 : string = "pyo3::types::PyModule::from_code_bound(v46, v49,     │
00:01:11 #1781 [Verbose] > │ \"\", \"\")"                                                                 │
00:01:11 #1782 [Verbose] > │     let v51 : Result<pyo3_Bound<pyo3_types_PyModule>, pyo3_PyErr> =          │
00:01:11 #1783 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v50                                   │
00:01:11 #1784 [Verbose] > │     let v52 : (pyo3_PyErr -> std_string_String) = method17()                 │
00:01:11 #1785 [Verbose] > │     let v53 : Result<pyo3_Bound<pyo3_types_PyModule>, pyo3_PyErr> =          │
00:01:11 #1786 [Verbose] > │ method18(v51)                                                                │
00:01:11 #1787 [Verbose] > │     let v54 : string = "v53.map_err(|x| v52(x))"                             │
00:01:11 #1788 [Verbose] > │     let v55 : Result<pyo3_Bound<pyo3_types_PyModule>, std_string_String> =   │
00:01:11 #1789 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v54                                   │
00:01:11 #1790 [Verbose] > │     let v56 : Result<pyo3_Bound<pyo3_types_PyModule>, std_string_String> =   │
00:01:11 #1791 [Verbose] > │ method19(v55)                                                                │
00:01:11 #1792 [Verbose] > │     let v57 : string = "v56.unwrap()"                                        │
00:01:11 #1793 [Verbose] > │     let v58 : pyo3_Bound<pyo3_types_PyModule> =                              │
00:01:11 #1794 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v57                                   │
00:01:11 #1795 [Verbose] > │     let v59 : string = method20()                                            │
00:01:11 #1796 [Verbose] > │     let v60 : string = $"fable_library_rust::String_::LrcStr::as_str(&v59)"  │
00:01:11 #1797 [Verbose] > │     let v61 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr () v60          │
00:01:11 #1798 [Verbose] > │     let v62 : pyo3_Bound<pyo3_types_PyModule> = method21(v58)                │
00:01:11 #1799 [Verbose] > │     let v63 : string = "v62.getattr(v61)"                                    │
00:01:11 #1800 [Verbose] > │     let v64 : Result<pyo3_Bound<pyo3_PyAny>, pyo3_PyErr> =                   │
00:01:11 #1801 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v63                                   │
00:01:11 #1802 [Verbose] > │     let v65 : (pyo3_PyErr -> std_string_String) = method22()                 │
00:01:11 #1803 [Verbose] > │     let v66 : Result<pyo3_Bound<pyo3_PyAny>, pyo3_PyErr> = method23(v64)     │
00:01:11 #1804 [Verbose] > │     let v67 : string = "v66.map_err(|x| v65(x))"                             │
00:01:11 #1805 [Verbose] > │     let v68 : Result<pyo3_Bound<pyo3_PyAny>, std_string_String> =            │
00:01:11 #1806 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v67                                   │
00:01:11 #1807 [Verbose] > │     let v69 : Result<pyo3_Bound<pyo3_PyAny>, std_string_String> =            │
00:01:11 #1808 [Verbose] > │ method24(v68)                                                                │
00:01:11 #1809 [Verbose] > │     let v70 : string = "v69.unwrap()"                                        │
00:01:11 #1810 [Verbose] > │     let v71 : pyo3_Bound<pyo3_PyAny> = Fable.Core.RustInterop.emitRustExpr   │
00:01:11 #1811 [Verbose] > │ () v70                                                                       │
00:01:11 #1812 [Verbose] > │     let v72 : (bool * (float * float)) = method25(v45)                       │
00:01:11 #1813 [Verbose] > │     let v73 : pyo3_Bound<pyo3_PyAny> = method26(v71)                         │
00:01:11 #1814 [Verbose] > │     let v74 : string = "pyo3::prelude::PyAnyMethods::call(&v73, ((*v72).0,   │
00:01:11 #1815 [Verbose] > │ *(*v72).1), None)"                                                           │
00:01:11 #1816 [Verbose] > │     let v75 : Result<pyo3_Bound<pyo3_PyAny>, pyo3_PyErr> =                   │
00:01:11 #1817 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v74                                   │
00:01:11 #1818 [Verbose] > │     let v76 : (pyo3_PyErr -> std_string_String) = method27()                 │
00:01:11 #1819 [Verbose] > │     let v77 : Result<pyo3_Bound<pyo3_PyAny>, pyo3_PyErr> = method23(v75)     │
00:01:11 #1820 [Verbose] > │     let v78 : string = "v77.map_err(|x| v76(x))"                             │
00:01:11 #1821 [Verbose] > │     let v79 : Result<pyo3_Bound<pyo3_PyAny>, std_string_String> =            │
00:01:11 #1822 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v78                                   │
00:01:11 #1823 [Verbose] > │     let v80 : string = "v79?"                                                │
00:01:11 #1824 [Verbose] > │     let v81 : pyo3_Bound<pyo3_PyAny> = Fable.Core.RustInterop.emitRustExpr   │
00:01:11 #1825 [Verbose] > │ () v80                                                                       │
00:01:11 #1826 [Verbose] > │     let v82 : pyo3_Bound<pyo3_PyAny> = method28(v81)                         │
00:01:11 #1827 [Verbose] > │     let v83 : string = "v82.extract()"                                       │
00:01:11 #1828 [Verbose] > │     let v84 : Result<struct (float * float), pyo3_PyErr> =                   │
00:01:11 #1829 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v83                                   │
00:01:11 #1830 [Verbose] > │     let v85 : (pyo3_PyErr -> std_string_String) = method29()                 │
00:01:11 #1831 [Verbose] > │     let v86 : Result<struct (float * float), pyo3_PyErr> = method30(v84)     │
00:01:11 #1832 [Verbose] > │     let v87 : string = "v86.map_err(|x| v85(x))"                             │
00:01:11 #1833 [Verbose] > │     let v88 : Result<struct (float * float), std_string_String> =            │
00:01:11 #1834 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v87                                   │
00:01:11 #1835 [Verbose] > │     let v89 : string = "v88?"                                                │
00:01:11 #1836 [Verbose] > │     let struct (v90 : float, v91 : float) =                                  │
00:01:11 #1837 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v89                                   │
00:01:11 #1838 [Verbose] > │     let v92 : float = method31(v90)                                          │
00:01:11 #1839 [Verbose] > │     let v93 : float = method3(v92)                                           │
00:01:11 #1840 [Verbose] > │     let v94 : float = method32(v91)                                          │
00:01:11 #1841 [Verbose] > │     let v95 : string = "num_complex::Complex::new(v93, v94)"                 │
00:01:11 #1842 [Verbose] > │     let v96 : num_complex_Complex<float> =                                   │
00:01:11 #1843 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v95                                   │
00:01:11 #1844 [Verbose] > │     let v97 : Result<num_complex_Complex<float>, std_string_String> = Ok v96 │
00:01:11 #1845 [Verbose] > │     v97                                                                      │
00:01:11 #1846 [Verbose] > │ and closure5 () (v0 : num_complex_Complex<float>) : US0 =                    │
00:01:11 #1847 [Verbose] > │     US0_1(v0)                                                                │
00:01:11 #1848 [Verbose] > │ and method42 () : float =                                                    │
00:01:11 #1849 [Verbose] > │     3.141592653589793                                                        │
00:01:11 #1850 [Verbose] > │ and method33 (v0 : pyo3_Python, v1 : num_complex_Complex<float>) :           │
00:01:11 #1851 [Verbose] > │ num_complex_Complex<float> =                                                 │
00:01:11 #1852 [Verbose] > │     let v2 : num_complex_Complex<float> = method34(v1)                       │
00:01:11 #1853 [Verbose] > │     let v3 : string = "println!(\"zeta / count: {:?} / s: {:?}\", 0, v2)"    │
00:01:11 #1854 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v3                                │
00:01:11 #1855 [Verbose] > │     let v4 : num_complex_Complex<float> = method13(v2)                       │
00:01:11 #1856 [Verbose] > │     let v5 : string = "v4.re"                                                │
00:01:11 #1857 [Verbose] > │     let v6 : float = Fable.Core.RustInterop.emitRustExpr () v5               │
00:01:11 #1858 [Verbose] > │     let v7 : bool = v6 > 1.0                                                 │
00:01:11 #1859 [Verbose] > │     if v7 then                                                               │
00:01:11 #1860 [Verbose] > │         let v8 : float = method35()                                          │
00:01:11 #1861 [Verbose] > │         let v9 : float = method3(v8)                                         │
00:01:11 #1862 [Verbose] > │         let v10 : float = method4()                                          │
00:01:11 #1863 [Verbose] > │         let v11 : string = "num_complex::Complex::new(v9, v10)"              │
00:01:11 #1864 [Verbose] > │         let v12 : num_complex_Complex<float> =                               │
00:01:11 #1865 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v11                                   │
00:01:11 #1866 [Verbose] > │         let v13 : (int32 []) = Array.zeroCreate<int32> (10000)               │
00:01:11 #1867 [Verbose] > │         let v14 : Mut0 = {l0 = 0} : Mut0                                     │
00:01:11 #1868 [Verbose] > │         while method36(v14) do                                               │
00:01:11 #1869 [Verbose] > │             let v16 : int32 = v14.l0                                         │
00:01:11 #1870 [Verbose] > │             v13.[int v16] <- v16                                             │
00:01:11 #1871 [Verbose] > │             let v17 : int32 = v16 + 1                                        │
00:01:11 #1872 [Verbose] > │             v14.l0 <- v17                                                    │
00:01:11 #1873 [Verbose] > │             ()                                                               │
00:01:11 #1874 [Verbose] > │         let v18 : int32 = v13.Length                                         │
00:01:11 #1875 [Verbose] > │         let v19 : Mut2 = {l0 = 0; l1 = v12} : Mut2                           │
00:01:11 #1876 [Verbose] > │         while method37(v18, v19) do                                          │
00:01:11 #1877 [Verbose] > │             let v21 : int32 = v19.l0                                         │
00:01:11 #1878 [Verbose] > │             let v22 : num_complex_Complex<float> = v19.l1                    │
00:01:11 #1879 [Verbose] > │             let v23 : int32 = v13.[int v21]                                  │
00:01:11 #1880 [Verbose] > │             let v24 : float = method38()                                     │
00:01:11 #1881 [Verbose] > │             let v25 : float = method3(v24)                                   │
00:01:11 #1882 [Verbose] > │             let v26 : float = method4()                                      │
00:01:11 #1883 [Verbose] > │             let v27 : string = "num_complex::Complex::new(v25, v26)"         │
00:01:11 #1884 [Verbose] > │             let v28 : num_complex_Complex<float> =                           │
00:01:11 #1885 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v27                                   │
00:01:11 #1886 [Verbose] > │             let v29 : float = float v23                                      │
00:01:11 #1887 [Verbose] > │             let v30 : float = method31(v29)                                  │
00:01:11 #1888 [Verbose] > │             let v31 : float = method3(v30)                                   │
00:01:11 #1889 [Verbose] > │             let v32 : float = method4()                                      │
00:01:11 #1890 [Verbose] > │             let v33 : string = "num_complex::Complex::new(v31, v32)"         │
00:01:11 #1891 [Verbose] > │             let v34 : num_complex_Complex<float> =                           │
00:01:11 #1892 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v33                                   │
00:01:11 #1893 [Verbose] > │             let v35 : num_complex_Complex<float> = method39(v34)             │
00:01:11 #1894 [Verbose] > │             let v36 : num_complex_Complex<float> = method40(v2)              │
00:01:11 #1895 [Verbose] > │             let v37 : string = "num_complex::Complex::powc(v35, v36)"        │
00:01:11 #1896 [Verbose] > │             let v38 : num_complex_Complex<float> =                           │
00:01:11 #1897 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v37                                   │
00:01:11 #1898 [Verbose] > │             let v39 : string = "v28 / v38"                                   │
00:01:11 #1899 [Verbose] > │             let v40 : num_complex_Complex<float> =                           │
00:01:11 #1900 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v39                                   │
00:01:11 #1901 [Verbose] > │             let v41 : string = "v22 + v40"                                   │
00:01:11 #1902 [Verbose] > │             let v42 : num_complex_Complex<float> =                           │
00:01:11 #1903 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v41                                   │
00:01:11 #1904 [Verbose] > │             let v43 : int32 = v21 + 1                                        │
00:01:11 #1905 [Verbose] > │             v19.l0 <- v43                                                    │
00:01:11 #1906 [Verbose] > │             v19.l1 <- v42                                                    │
00:01:11 #1907 [Verbose] > │             ()                                                               │
00:01:11 #1908 [Verbose] > │         let v44 : num_complex_Complex<float> = v19.l1                        │
00:01:11 #1909 [Verbose] > │         v44                                                                  │
00:01:11 #1910 [Verbose] > │     else                                                                     │
00:01:11 #1911 [Verbose] > │         let v45 : float = method38()                                         │
00:01:11 #1912 [Verbose] > │         let v46 : float = method3(v45)                                       │
00:01:11 #1913 [Verbose] > │         let v47 : float = method4()                                          │
00:01:11 #1914 [Verbose] > │         let v48 : string = "num_complex::Complex::new(v46, v47)"             │
00:01:11 #1915 [Verbose] > │         let v49 : num_complex_Complex<float> =                               │
00:01:11 #1916 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v48                                   │
00:01:11 #1917 [Verbose] > │         let v50 : string = "v49 - v2"                                        │
00:01:11 #1918 [Verbose] > │         let v51 : num_complex_Complex<float> =                               │
00:01:11 #1919 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v50                                   │
00:01:11 #1920 [Verbose] > │         let v52 : string = $"        s = mpmath.gamma(s)"                    │
00:01:11 #1921 [Verbose] > │         let v53 : num_complex_Complex<float> = method8(v51)                  │
00:01:11 #1922 [Verbose] > │         let v54 : Result<num_complex_Complex<float>, std_string_String> =    │
00:01:11 #1923 [Verbose] > │ method41(v0, v52, v53)                                                       │
00:01:11 #1924 [Verbose] > │         let v55 : string = "v54.ok()"                                        │
00:01:11 #1925 [Verbose] > │         let v56 : num_complex_Complex<float> option =                        │
00:01:11 #1926 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v55                                   │
00:01:11 #1927 [Verbose] > │         let v57 : (num_complex_Complex<float> -> US0) = closure5()           │
00:01:11 #1928 [Verbose] > │         let v58 : US0 = US0_0                                                │
00:01:11 #1929 [Verbose] > │         let v59 : US0 = v56 |> Option.map v57 |> Option.defaultValue v58     │
00:01:11 #1930 [Verbose] > │         let v60 : string = "f64::NAN"                                        │
00:01:11 #1931 [Verbose] > │         let v61 : float = Fable.Core.RustInterop.emitRustExpr () v60         │
00:01:11 #1932 [Verbose] > │         let v62 : string = "f64::NAN"                                        │
00:01:11 #1933 [Verbose] > │         let v63 : float = Fable.Core.RustInterop.emitRustExpr () v62         │
00:01:11 #1934 [Verbose] > │         let v64 : float = method31(v61)                                      │
00:01:11 #1935 [Verbose] > │         let v65 : float = method3(v64)                                       │
00:01:11 #1936 [Verbose] > │         let v66 : float = method32(v63)                                      │
00:01:11 #1937 [Verbose] > │         let v67 : string = "num_complex::Complex::new(v65, v66)"             │
00:01:11 #1938 [Verbose] > │         let v68 : num_complex_Complex<float> =                               │
00:01:11 #1939 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v67                                   │
00:01:11 #1940 [Verbose] > │         let v71 : num_complex_Complex<float> =                               │
00:01:11 #1941 [Verbose] > │             match v59 with                                                   │
00:01:11 #1942 [Verbose] > │             | US0_0 -> (* None *)                                            │
00:01:11 #1943 [Verbose] > │                 v68                                                          │
00:01:11 #1944 [Verbose] > │             | US0_1(v69) -> (* Some *)                                       │
00:01:11 #1945 [Verbose] > │                 v69                                                          │
00:01:11 #1946 [Verbose] > │         let v72 : float = method42()                                         │
00:01:11 #1947 [Verbose] > │         let v73 : float = method3(v72)                                       │
00:01:11 #1948 [Verbose] > │         let v74 : float = method4()                                          │
00:01:11 #1949 [Verbose] > │         let v75 : string = "num_complex::Complex::new(v73, v74)"             │
00:01:11 #1950 [Verbose] > │         let v76 : num_complex_Complex<float> =                               │
00:01:11 #1951 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v75                                   │
00:01:11 #1952 [Verbose] > │         let v77 : string = "v76 * v2"                                        │
00:01:11 #1953 [Verbose] > │         let v78 : num_complex_Complex<float> =                               │
00:01:11 #1954 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v77                                   │
00:01:11 #1955 [Verbose] > │         let v79 : float = method2()                                          │
00:01:11 #1956 [Verbose] > │         let v80 : float = method3(v79)                                       │
00:01:11 #1957 [Verbose] > │         let v81 : float = method4()                                          │
00:01:11 #1958 [Verbose] > │         let v82 : string = "num_complex::Complex::new(v80, v81)"             │
00:01:11 #1959 [Verbose] > │         let v83 : num_complex_Complex<float> =                               │
00:01:11 #1960 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v82                                   │
00:01:11 #1961 [Verbose] > │         let v84 : string = "v78 / v83"                                       │
00:01:11 #1962 [Verbose] > │         let v85 : num_complex_Complex<float> =                               │
00:01:11 #1963 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v84                                   │
00:01:11 #1964 [Verbose] > │         let v86 : string = "v85.sin()"                                       │
00:01:11 #1965 [Verbose] > │         let v87 : num_complex_Complex<float> =                               │
00:01:11 #1966 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v86                                   │
00:01:11 #1967 [Verbose] > │         let v88 : num_complex_Complex<float> = method13(v2)                  │
00:01:11 #1968 [Verbose] > │         let v89 : string = "v88.re"                                          │
00:01:11 #1969 [Verbose] > │         let v90 : float = Fable.Core.RustInterop.emitRustExpr () v89         │
00:01:11 #1970 [Verbose] > │         let v91 : float = 1.0 - v90                                          │
00:01:11 #1971 [Verbose] > │         let v92 : num_complex_Complex<float> = method14(v2)                  │
00:01:11 #1972 [Verbose] > │         let v93 : string = "v92.im"                                          │
00:01:11 #1973 [Verbose] > │         let v94 : float = Fable.Core.RustInterop.emitRustExpr () v93         │
00:01:11 #1974 [Verbose] > │         let v95 : float =  -v94                                              │
00:01:11 #1975 [Verbose] > │         let v96 : float = method31(v91)                                      │
00:01:11 #1976 [Verbose] > │         let v97 : float = method3(v96)                                       │
00:01:11 #1977 [Verbose] > │         let v98 : float = method32(v95)                                      │
00:01:11 #1978 [Verbose] > │         let v99 : string = "num_complex::Complex::new(v97, v98)"             │
00:01:11 #1979 [Verbose] > │         let v100 : num_complex_Complex<float> =                              │
00:01:11 #1980 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v99                                   │
00:01:11 #1981 [Verbose] > │         let v101 : num_complex_Complex<float> = method13(v100)               │
00:01:11 #1982 [Verbose] > │         let v102 : string = "v101.re"                                        │
00:01:11 #1983 [Verbose] > │         let v103 : float = Fable.Core.RustInterop.emitRustExpr () v102       │
00:01:11 #1984 [Verbose] > │         let v104 : bool = v103 <= 1.0                                        │
00:01:11 #1985 [Verbose] > │         let v634 : num_complex_Complex<float> =                              │
00:01:11 #1986 [Verbose] > │             if v104 then                                                     │
00:01:11 #1987 [Verbose] > │                 let v105 : float = method35()                                │
00:01:11 #1988 [Verbose] > │                 let v106 : float = method3(v105)                             │
00:01:11 #1989 [Verbose] > │                 let v107 : float = method4()                                 │
00:01:11 #1990 [Verbose] > │                 let v108 : string = "num_complex::Complex::new(v106, v107)"  │
00:01:11 #1991 [Verbose] > │                 let v109 : num_complex_Complex<float> =                      │
00:01:11 #1992 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v108                                  │
00:01:11 #1993 [Verbose] > │                 v109                                                         │
00:01:11 #1994 [Verbose] > │             else                                                             │
00:01:11 #1995 [Verbose] > │                 let v110 : num_complex_Complex<float> = method34(v100)       │
00:01:11 #1996 [Verbose] > │                 let v111 : string = "println!(\"zeta / count: {:?} / s:      │
00:01:11 #1997 [Verbose] > │ {:?}\", 1, v110)"                                                            │
00:01:11 #1998 [Verbose] > │                 Fable.Core.RustInterop.emitRustExpr () v111                  │
00:01:11 #1999 [Verbose] > │                 let v112 : num_complex_Complex<float> = method13(v110)       │
00:01:11 #2000 [Verbose] > │                 let v113 : string = "v112.re"                                │
00:01:11 #2001 [Verbose] > │                 let v114 : float = Fable.Core.RustInterop.emitRustExpr ()    │
00:01:11 #2002 [Verbose] > │ v113                                                                         │
00:01:11 #2003 [Verbose] > │                 let v115 : bool = v114 > 1.0                                 │
00:01:11 #2004 [Verbose] > │                 if v115 then                                                 │
00:01:11 #2005 [Verbose] > │                     let v116 : float = method35()                            │
00:01:11 #2006 [Verbose] > │                     let v117 : float = method3(v116)                         │
00:01:11 #2007 [Verbose] > │                     let v118 : float = method4()                             │
00:01:11 #2008 [Verbose] > │                     let v119 : string = "num_complex::Complex::new(v117,     │
00:01:11 #2009 [Verbose] > │ v118)"                                                                       │
00:01:11 #2010 [Verbose] > │                     let v120 : num_complex_Complex<float> =                  │
00:01:11 #2011 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v119                                  │
00:01:11 #2012 [Verbose] > │                     let v121 : (int32 []) = Array.zeroCreate<int32> (10000)  │
00:01:11 #2013 [Verbose] > │                     let v122 : Mut0 = {l0 = 0} : Mut0                        │
00:01:11 #2014 [Verbose] > │                     while method36(v122) do                                  │
00:01:11 #2015 [Verbose] > │                         let v124 : int32 = v122.l0                           │
00:01:11 #2016 [Verbose] > │                         v121.[int v124] <- v124                              │
00:01:11 #2017 [Verbose] > │                         let v125 : int32 = v124 + 1                          │
00:01:11 #2018 [Verbose] > │                         v122.l0 <- v125                                      │
00:01:11 #2019 [Verbose] > │                         ()                                                   │
00:01:11 #2020 [Verbose] > │                     let v126 : int32 = v121.Length                           │
00:01:11 #2021 [Verbose] > │                     let v127 : Mut2 = {l0 = 0; l1 = v120} : Mut2             │
00:01:11 #2022 [Verbose] > │                     while method37(v126, v127) do                            │
00:01:11 #2023 [Verbose] > │                         let v129 : int32 = v127.l0                           │
00:01:11 #2024 [Verbose] > │                         let v130 : num_complex_Complex<float> = v127.l1      │
00:01:11 #2025 [Verbose] > │                         let v131 : int32 = v121.[int v129]                   │
00:01:11 #2026 [Verbose] > │                         let v132 : float = method38()                        │
00:01:11 #2027 [Verbose] > │                         let v133 : float = method3(v132)                     │
00:01:11 #2028 [Verbose] > │                         let v134 : float = method4()                         │
00:01:11 #2029 [Verbose] > │                         let v135 : string = "num_complex::Complex::new(v133, │
00:01:11 #2030 [Verbose] > │ v134)"                                                                       │
00:01:11 #2031 [Verbose] > │                         let v136 : num_complex_Complex<float> =              │
00:01:11 #2032 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v135                                  │
00:01:11 #2033 [Verbose] > │                         let v137 : float = float v131                        │
00:01:11 #2034 [Verbose] > │                         let v138 : float = method31(v137)                    │
00:01:11 #2035 [Verbose] > │                         let v139 : float = method3(v138)                     │
00:01:11 #2036 [Verbose] > │                         let v140 : float = method4()                         │
00:01:11 #2037 [Verbose] > │                         let v141 : string = "num_complex::Complex::new(v139, │
00:01:11 #2038 [Verbose] > │ v140)"                                                                       │
00:01:11 #2039 [Verbose] > │                         let v142 : num_complex_Complex<float> =              │
00:01:11 #2040 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v141                                  │
00:01:11 #2041 [Verbose] > │                         let v143 : num_complex_Complex<float> =              │
00:01:11 #2042 [Verbose] > │ method39(v142)                                                               │
00:01:11 #2043 [Verbose] > │                         let v144 : num_complex_Complex<float> =              │
00:01:11 #2044 [Verbose] > │ method40(v110)                                                               │
00:01:11 #2045 [Verbose] > │                         let v145 : string =                                  │
00:01:11 #2046 [Verbose] > │ "num_complex::Complex::powc(v143, v144)"                                     │
00:01:11 #2047 [Verbose] > │                         let v146 : num_complex_Complex<float> =              │
00:01:11 #2048 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v145                                  │
00:01:11 #2049 [Verbose] > │                         let v147 : string = "v136 / v146"                    │
00:01:11 #2050 [Verbose] > │                         let v148 : num_complex_Complex<float> =              │
00:01:11 #2051 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v147                                  │
00:01:11 #2052 [Verbose] > │                         let v149 : string = "v130 + v148"                    │
00:01:11 #2053 [Verbose] > │                         let v150 : num_complex_Complex<float> =              │
00:01:11 #2054 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v149                                  │
00:01:11 #2055 [Verbose] > │                         let v151 : int32 = v129 + 1                          │
00:01:11 #2056 [Verbose] > │                         v127.l0 <- v151                                      │
00:01:11 #2057 [Verbose] > │                         v127.l1 <- v150                                      │
00:01:11 #2058 [Verbose] > │                         ()                                                   │
00:01:11 #2059 [Verbose] > │                     let v152 : num_complex_Complex<float> = v127.l1          │
00:01:11 #2060 [Verbose] > │                     v152                                                     │
00:01:11 #2061 [Verbose] > │                 else                                                         │
00:01:11 #2062 [Verbose] > │                     let v153 : float = method38()                            │
00:01:11 #2063 [Verbose] > │                     let v154 : float = method3(v153)                         │
00:01:11 #2064 [Verbose] > │                     let v155 : float = method4()                             │
00:01:11 #2065 [Verbose] > │                     let v156 : string = "num_complex::Complex::new(v154,     │
00:01:11 #2066 [Verbose] > │ v155)"                                                                       │
00:01:11 #2067 [Verbose] > │                     let v157 : num_complex_Complex<float> =                  │
00:01:11 #2068 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v156                                  │
00:01:11 #2069 [Verbose] > │                     let v158 : string = "v157 - v110"                        │
00:01:11 #2070 [Verbose] > │                     let v159 : num_complex_Complex<float> =                  │
00:01:11 #2071 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v158                                  │
00:01:11 #2072 [Verbose] > │                     let v160 : string = $"        s = mpmath.gamma(s)"       │
00:01:11 #2073 [Verbose] > │                     let v161 : num_complex_Complex<float> = method8(v159)    │
00:01:11 #2074 [Verbose] > │                     let v162 : Result<num_complex_Complex<float>,            │
00:01:11 #2075 [Verbose] > │ std_string_String> = method41(v0, v160, v161)                                │
00:01:11 #2076 [Verbose] > │                     let v163 : string = "v162.ok()"                          │
00:01:11 #2077 [Verbose] > │                     let v164 : num_complex_Complex<float> option =           │
00:01:11 #2078 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v163                                  │
00:01:11 #2079 [Verbose] > │                     let v165 : US0 = US0_0                                   │
00:01:11 #2080 [Verbose] > │                     let v166 : US0 = v164 |> Option.map v57 |>               │
00:01:11 #2081 [Verbose] > │ Option.defaultValue v165                                                     │
00:01:11 #2082 [Verbose] > │                     let v167 : string = "f64::NAN"                           │
00:01:11 #2083 [Verbose] > │                     let v168 : float = Fable.Core.RustInterop.emitRustExpr   │
00:01:11 #2084 [Verbose] > │ () v167                                                                      │
00:01:11 #2085 [Verbose] > │                     let v169 : string = "f64::NAN"                           │
00:01:11 #2086 [Verbose] > │                     let v170 : float = Fable.Core.RustInterop.emitRustExpr   │
00:01:11 #2087 [Verbose] > │ () v169                                                                      │
00:01:11 #2088 [Verbose] > │                     let v171 : float = method31(v168)                        │
00:01:11 #2089 [Verbose] > │                     let v172 : float = method3(v171)                         │
00:01:11 #2090 [Verbose] > │                     let v173 : float = method32(v170)                        │
00:01:11 #2091 [Verbose] > │                     let v174 : string = "num_complex::Complex::new(v172,     │
00:01:11 #2092 [Verbose] > │ v173)"                                                                       │
00:01:11 #2093 [Verbose] > │                     let v175 : num_complex_Complex<float> =                  │
00:01:11 #2094 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v174                                  │
00:01:11 #2095 [Verbose] > │                     let v178 : num_complex_Complex<float> =                  │
00:01:11 #2096 [Verbose] > │                         match v166 with                                      │
00:01:11 #2097 [Verbose] > │                         | US0_0 -> (* None *)                                │
00:01:11 #2098 [Verbose] > │                             v175                                             │
00:01:11 #2099 [Verbose] > │                         | US0_1(v176) -> (* Some *)                          │
00:01:11 #2100 [Verbose] > │                             v176                                             │
00:01:11 #2101 [Verbose] > │                     let v179 : float = method42()                            │
00:01:11 #2102 [Verbose] > │                     let v180 : float = method3(v179)                         │
00:01:11 #2103 [Verbose] > │                     let v181 : float = method4()                             │
00:01:11 #2104 [Verbose] > │                     let v182 : string = "num_complex::Complex::new(v180,     │
00:01:11 #2105 [Verbose] > │ v181)"                                                                       │
00:01:11 #2106 [Verbose] > │                     let v183 : num_complex_Complex<float> =                  │
00:01:11 #2107 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v182                                  │
00:01:11 #2108 [Verbose] > │                     let v184 : string = "v183 * v110"                        │
00:01:11 #2109 [Verbose] > │                     let v185 : num_complex_Complex<float> =                  │
00:01:11 #2110 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v184                                  │
00:01:11 #2111 [Verbose] > │                     let v186 : float = method2()                             │
00:01:11 #2112 [Verbose] > │                     let v187 : float = method3(v186)                         │
00:01:11 #2113 [Verbose] > │                     let v188 : float = method4()                             │
00:01:11 #2114 [Verbose] > │                     let v189 : string = "num_complex::Complex::new(v187,     │
00:01:11 #2115 [Verbose] > │ v188)"                                                                       │
00:01:11 #2116 [Verbose] > │                     let v190 : num_complex_Complex<float> =                  │
00:01:11 #2117 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v189                                  │
00:01:11 #2118 [Verbose] > │                     let v191 : string = "v185 / v190"                        │
00:01:11 #2119 [Verbose] > │                     let v192 : num_complex_Complex<float> =                  │
00:01:11 #2120 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v191                                  │
00:01:11 #2121 [Verbose] > │                     let v193 : string = "v192.sin()"                         │
00:01:11 #2122 [Verbose] > │                     let v194 : num_complex_Complex<float> =                  │
00:01:11 #2123 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v193                                  │
00:01:11 #2124 [Verbose] > │                     let v195 : num_complex_Complex<float> = method13(v110)   │
00:01:11 #2125 [Verbose] > │                     let v196 : string = "v195.re"                            │
00:01:11 #2126 [Verbose] > │                     let v197 : float = Fable.Core.RustInterop.emitRustExpr   │
00:01:11 #2127 [Verbose] > │ () v196                                                                      │
00:01:11 #2128 [Verbose] > │                     let v198 : float = 1.0 - v197                            │
00:01:11 #2129 [Verbose] > │                     let v199 : num_complex_Complex<float> = method14(v110)   │
00:01:11 #2130 [Verbose] > │                     let v200 : string = "v199.im"                            │
00:01:11 #2131 [Verbose] > │                     let v201 : float = Fable.Core.RustInterop.emitRustExpr   │
00:01:11 #2132 [Verbose] > │ () v200                                                                      │
00:01:11 #2133 [Verbose] > │                     let v202 : float =  -v201                                │
00:01:11 #2134 [Verbose] > │                     let v203 : float = method31(v198)                        │
00:01:11 #2135 [Verbose] > │                     let v204 : float = method3(v203)                         │
00:01:11 #2136 [Verbose] > │                     let v205 : float = method32(v202)                        │
00:01:11 #2137 [Verbose] > │                     let v206 : string = "num_complex::Complex::new(v204,     │
00:01:11 #2138 [Verbose] > │ v205)"                                                                       │
00:01:11 #2139 [Verbose] > │                     let v207 : num_complex_Complex<float> =                  │
00:01:11 #2140 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v206                                  │
00:01:11 #2141 [Verbose] > │                     let v208 : num_complex_Complex<float> = method13(v207)   │
00:01:11 #2142 [Verbose] > │                     let v209 : string = "v208.re"                            │
00:01:11 #2143 [Verbose] > │                     let v210 : float = Fable.Core.RustInterop.emitRustExpr   │
00:01:11 #2144 [Verbose] > │ () v209                                                                      │
00:01:11 #2145 [Verbose] > │                     let v211 : bool = v210 <= 1.0                            │
00:01:11 #2146 [Verbose] > │                     let v610 : num_complex_Complex<float> =                  │
00:01:11 #2147 [Verbose] > │                         if v211 then                                         │
00:01:11 #2148 [Verbose] > │                             let v212 : float = method35()                    │
00:01:11 #2149 [Verbose] > │                             let v213 : float = method3(v212)                 │
00:01:11 #2150 [Verbose] > │                             let v214 : float = method4()                     │
00:01:11 #2151 [Verbose] > │                             let v215 : string =                              │
00:01:11 #2152 [Verbose] > │ "num_complex::Complex::new(v213, v214)"                                      │
00:01:11 #2153 [Verbose] > │                             let v216 : num_complex_Complex<float> =          │
00:01:11 #2154 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v215                                  │
00:01:11 #2155 [Verbose] > │                             v216                                             │
00:01:11 #2156 [Verbose] > │                         else                                                 │
00:01:11 #2157 [Verbose] > │                             let v217 : num_complex_Complex<float> =          │
00:01:11 #2158 [Verbose] > │ method34(v207)                                                               │
00:01:11 #2159 [Verbose] > │                             let v218 : string = "println!(\"zeta / count:    │
00:01:11 #2160 [Verbose] > │ {:?} / s: {:?}\", 2, v217)"                                                  │
00:01:11 #2161 [Verbose] > │                             Fable.Core.RustInterop.emitRustExpr () v218      │
00:01:11 #2162 [Verbose] > │                             let v219 : num_complex_Complex<float> =          │
00:01:11 #2163 [Verbose] > │ method13(v217)                                                               │
00:01:11 #2164 [Verbose] > │                             let v220 : string = "v219.re"                    │
00:01:11 #2165 [Verbose] > │                             let v221 : float =                               │
00:01:11 #2166 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v220                                  │
00:01:11 #2167 [Verbose] > │                             let v222 : bool = v221 > 1.0                     │
00:01:11 #2168 [Verbose] > │                             if v222 then                                     │
00:01:11 #2169 [Verbose] > │                                 let v223 : float = method35()                │
00:01:11 #2170 [Verbose] > │                                 let v224 : float = method3(v223)             │
00:01:11 #2171 [Verbose] > │                                 let v225 : float = method4()                 │
00:01:11 #2172 [Verbose] > │                                 let v226 : string =                          │
00:01:11 #2173 [Verbose] > │ "num_complex::Complex::new(v224, v225)"                                      │
00:01:11 #2174 [Verbose] > │                                 let v227 : num_complex_Complex<float> =      │
00:01:11 #2175 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v226                                  │
00:01:11 #2176 [Verbose] > │                                 let v228 : (int32 []) =                      │
00:01:11 #2177 [Verbose] > │ Array.zeroCreate<int32> (10000)                                              │
00:01:11 #2178 [Verbose] > │                                 let v229 : Mut0 = {l0 = 0} : Mut0            │
00:01:11 #2179 [Verbose] > │                                 while method36(v229) do                      │
00:01:11 #2180 [Verbose] > │                                     let v231 : int32 = v229.l0               │
00:01:11 #2181 [Verbose] > │                                     v228.[int v231] <- v231                  │
00:01:11 #2182 [Verbose] > │                                     let v232 : int32 = v231 + 1              │
00:01:11 #2183 [Verbose] > │                                     v229.l0 <- v232                          │
00:01:11 #2184 [Verbose] > │                                     ()                                       │
00:01:11 #2185 [Verbose] > │                                 let v233 : int32 = v228.Length               │
00:01:11 #2186 [Verbose] > │                                 let v234 : Mut2 = {l0 = 0; l1 = v227} : Mut2 │
00:01:11 #2187 [Verbose] > │                                 while method37(v233, v234) do                │
00:01:11 #2188 [Verbose] > │                                     let v236 : int32 = v234.l0               │
00:01:11 #2189 [Verbose] > │                                     let v237 : num_complex_Complex<float> =  │
00:01:11 #2190 [Verbose] > │ v234.l1                                                                      │
00:01:11 #2191 [Verbose] > │                                     let v238 : int32 = v228.[int v236]       │
00:01:11 #2192 [Verbose] > │                                     let v239 : float = method38()            │
00:01:11 #2193 [Verbose] > │                                     let v240 : float = method3(v239)         │
00:01:11 #2194 [Verbose] > │                                     let v241 : float = method4()             │
00:01:11 #2195 [Verbose] > │                                     let v242 : string =                      │
00:01:11 #2196 [Verbose] > │ "num_complex::Complex::new(v240, v241)"                                      │
00:01:11 #2197 [Verbose] > │                                     let v243 : num_complex_Complex<float> =  │
00:01:11 #2198 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v242                                  │
00:01:11 #2199 [Verbose] > │                                     let v244 : float = float v238            │
00:01:11 #2200 [Verbose] > │                                     let v245 : float = method31(v244)        │
00:01:11 #2201 [Verbose] > │                                     let v246 : float = method3(v245)         │
00:01:11 #2202 [Verbose] > │                                     let v247 : float = method4()             │
00:01:11 #2203 [Verbose] > │                                     let v248 : string =                      │
00:01:11 #2204 [Verbose] > │ "num_complex::Complex::new(v246, v247)"                                      │
00:01:11 #2205 [Verbose] > │                                     let v249 : num_complex_Complex<float> =  │
00:01:11 #2206 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v248                                  │
00:01:11 #2207 [Verbose] > │                                     let v250 : num_complex_Complex<float> =  │
00:01:11 #2208 [Verbose] > │ method39(v249)                                                               │
00:01:11 #2209 [Verbose] > │                                     let v251 : num_complex_Complex<float> =  │
00:01:11 #2210 [Verbose] > │ method40(v217)                                                               │
00:01:11 #2211 [Verbose] > │                                     let v252 : string =                      │
00:01:11 #2212 [Verbose] > │ "num_complex::Complex::powc(v250, v251)"                                     │
00:01:11 #2213 [Verbose] > │                                     let v253 : num_complex_Complex<float> =  │
00:01:11 #2214 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v252                                  │
00:01:11 #2215 [Verbose] > │                                     let v254 : string = "v243 / v253"        │
00:01:11 #2216 [Verbose] > │                                     let v255 : num_complex_Complex<float> =  │
00:01:11 #2217 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v254                                  │
00:01:11 #2218 [Verbose] > │                                     let v256 : string = "v237 + v255"        │
00:01:11 #2219 [Verbose] > │                                     let v257 : num_complex_Complex<float> =  │
00:01:11 #2220 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v256                                  │
00:01:11 #2221 [Verbose] > │                                     let v258 : int32 = v236 + 1              │
00:01:11 #2222 [Verbose] > │                                     v234.l0 <- v258                          │
00:01:11 #2223 [Verbose] > │                                     v234.l1 <- v257                          │
00:01:11 #2224 [Verbose] > │                                     ()                                       │
00:01:11 #2225 [Verbose] > │                                 let v259 : num_complex_Complex<float> =      │
00:01:11 #2226 [Verbose] > │ v234.l1                                                                      │
00:01:11 #2227 [Verbose] > │                                 v259                                         │
00:01:11 #2228 [Verbose] > │                             else                                             │
00:01:11 #2229 [Verbose] > │                                 let v260 : float = method38()                │
00:01:11 #2230 [Verbose] > │                                 let v261 : float = method3(v260)             │
00:01:11 #2231 [Verbose] > │                                 let v262 : float = method4()                 │
00:01:11 #2232 [Verbose] > │                                 let v263 : string =                          │
00:01:11 #2233 [Verbose] > │ "num_complex::Complex::new(v261, v262)"                                      │
00:01:11 #2234 [Verbose] > │                                 let v264 : num_complex_Complex<float> =      │
00:01:11 #2235 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v263                                  │
00:01:11 #2236 [Verbose] > │                                 let v265 : string = "v264 - v217"            │
00:01:11 #2237 [Verbose] > │                                 let v266 : num_complex_Complex<float> =      │
00:01:11 #2238 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v265                                  │
00:01:11 #2239 [Verbose] > │                                 let v267 : string = $"        s =            │
00:01:11 #2240 [Verbose] > │ mpmath.gamma(s)"                                                             │
00:01:11 #2241 [Verbose] > │                                 let v268 : num_complex_Complex<float> =      │
00:01:11 #2242 [Verbose] > │ method8(v266)                                                                │
00:01:11 #2243 [Verbose] > │                                 let v269 :                                   │
00:01:11 #2244 [Verbose] > │ Result<num_complex_Complex<float>, std_string_String> = method41(v0, v267,   │
00:01:11 #2245 [Verbose] > │ v268)                                                                        │
00:01:11 #2246 [Verbose] > │                                 let v270 : string = "v269.ok()"              │
00:01:11 #2247 [Verbose] > │                                 let v271 : num_complex_Complex<float> option │
00:01:11 #2248 [Verbose] > │ = Fable.Core.RustInterop.emitRustExpr () v270                                │
00:01:11 #2249 [Verbose] > │                                 let v272 : US0 = US0_0                       │
00:01:11 #2250 [Verbose] > │                                 let v273 : US0 = v271 |> Option.map v57 |>   │
00:01:11 #2251 [Verbose] > │ Option.defaultValue v272                                                     │
00:01:11 #2252 [Verbose] > │                                 let v274 : string = "f64::NAN"               │
00:01:11 #2253 [Verbose] > │                                 let v275 : float =                           │
00:01:11 #2254 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v274                                  │
00:01:11 #2255 [Verbose] > │                                 let v276 : string = "f64::NAN"               │
00:01:11 #2256 [Verbose] > │                                 let v277 : float =                           │
00:01:11 #2257 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v276                                  │
00:01:11 #2258 [Verbose] > │                                 let v278 : float = method31(v275)            │
00:01:11 #2259 [Verbose] > │                                 let v279 : float = method3(v278)             │
00:01:11 #2260 [Verbose] > │                                 let v280 : float = method32(v277)            │
00:01:11 #2261 [Verbose] > │                                 let v281 : string =                          │
00:01:11 #2262 [Verbose] > │ "num_complex::Complex::new(v279, v280)"                                      │
00:01:11 #2263 [Verbose] > │                                 let v282 : num_complex_Complex<float> =      │
00:01:11 #2264 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v281                                  │
00:01:11 #2265 [Verbose] > │                                 let v285 : num_complex_Complex<float> =      │
00:01:11 #2266 [Verbose] > │                                     match v273 with                          │
00:01:11 #2267 [Verbose] > │                                     | US0_0 -> (* None *)                    │
00:01:11 #2268 [Verbose] > │                                         v282                                 │
00:01:11 #2269 [Verbose] > │                                     | US0_1(v283) -> (* Some *)              │
00:01:11 #2270 [Verbose] > │                                         v283                                 │
00:01:11 #2271 [Verbose] > │                                 let v286 : float = method42()                │
00:01:11 #2272 [Verbose] > │                                 let v287 : float = method3(v286)             │
00:01:11 #2273 [Verbose] > │                                 let v288 : float = method4()                 │
00:01:11 #2274 [Verbose] > │                                 let v289 : string =                          │
00:01:11 #2275 [Verbose] > │ "num_complex::Complex::new(v287, v288)"                                      │
00:01:11 #2276 [Verbose] > │                                 let v290 : num_complex_Complex<float> =      │
00:01:11 #2277 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v289                                  │
00:01:11 #2278 [Verbose] > │                                 let v291 : string = "v290 * v217"            │
00:01:11 #2279 [Verbose] > │                                 let v292 : num_complex_Complex<float> =      │
00:01:11 #2280 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v291                                  │
00:01:11 #2281 [Verbose] > │                                 let v293 : float = method2()                 │
00:01:11 #2282 [Verbose] > │                                 let v294 : float = method3(v293)             │
00:01:11 #2283 [Verbose] > │                                 let v295 : float = method4()                 │
00:01:11 #2284 [Verbose] > │                                 let v296 : string =                          │
00:01:11 #2285 [Verbose] > │ "num_complex::Complex::new(v294, v295)"                                      │
00:01:11 #2286 [Verbose] > │                                 let v297 : num_complex_Complex<float> =      │
00:01:11 #2287 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v296                                  │
00:01:11 #2288 [Verbose] > │                                 let v298 : string = "v292 / v297"            │
00:01:11 #2289 [Verbose] > │                                 let v299 : num_complex_Complex<float> =      │
00:01:11 #2290 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v298                                  │
00:01:11 #2291 [Verbose] > │                                 let v300 : string = "v299.sin()"             │
00:01:11 #2292 [Verbose] > │                                 let v301 : num_complex_Complex<float> =      │
00:01:11 #2293 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v300                                  │
00:01:11 #2294 [Verbose] > │                                 let v302 : num_complex_Complex<float> =      │
00:01:11 #2295 [Verbose] > │ method13(v217)                                                               │
00:01:11 #2296 [Verbose] > │                                 let v303 : string = "v302.re"                │
00:01:11 #2297 [Verbose] > │                                 let v304 : float =                           │
00:01:11 #2298 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v303                                  │
00:01:11 #2299 [Verbose] > │                                 let v305 : float = 1.0 - v304                │
00:01:11 #2300 [Verbose] > │                                 let v306 : num_complex_Complex<float> =      │
00:01:11 #2301 [Verbose] > │ method14(v217)                                                               │
00:01:11 #2302 [Verbose] > │                                 let v307 : string = "v306.im"                │
00:01:11 #2303 [Verbose] > │                                 let v308 : float =                           │
00:01:11 #2304 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v307                                  │
00:01:11 #2305 [Verbose] > │                                 let v309 : float =  -v308                    │
00:01:11 #2306 [Verbose] > │                                 let v310 : float = method31(v305)            │
00:01:11 #2307 [Verbose] > │                                 let v311 : float = method3(v310)             │
00:01:11 #2308 [Verbose] > │                                 let v312 : float = method32(v309)            │
00:01:11 #2309 [Verbose] > │                                 let v313 : string =                          │
00:01:11 #2310 [Verbose] > │ "num_complex::Complex::new(v311, v312)"                                      │
00:01:11 #2311 [Verbose] > │                                 let v314 : num_complex_Complex<float> =      │
00:01:11 #2312 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v313                                  │
00:01:11 #2313 [Verbose] > │                                 let v315 : num_complex_Complex<float> =      │
00:01:11 #2314 [Verbose] > │ method13(v314)                                                               │
00:01:11 #2315 [Verbose] > │                                 let v316 : string = "v315.re"                │
00:01:11 #2316 [Verbose] > │                                 let v317 : float =                           │
00:01:11 #2317 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v316                                  │
00:01:11 #2318 [Verbose] > │                                 let v318 : bool = v317 <= 1.0                │
00:01:11 #2319 [Verbose] > │                                 let v586 : num_complex_Complex<float> =      │
00:01:11 #2320 [Verbose] > │                                     if v318 then                             │
00:01:11 #2321 [Verbose] > │                                         let v319 : float = method35()        │
00:01:11 #2322 [Verbose] > │                                         let v320 : float = method3(v319)     │
00:01:11 #2323 [Verbose] > │                                         let v321 : float = method4()         │
00:01:11 #2324 [Verbose] > │                                         let v322 : string =                  │
00:01:11 #2325 [Verbose] > │ "num_complex::Complex::new(v320, v321)"                                      │
00:01:11 #2326 [Verbose] > │                                         let v323 :                           │
00:01:11 #2327 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v322     │
00:01:11 #2328 [Verbose] > │                                         v323                                 │
00:01:11 #2329 [Verbose] > │                                     else                                     │
00:01:11 #2330 [Verbose] > │                                         let v324 :                           │
00:01:11 #2331 [Verbose] > │ num_complex_Complex<float> = method34(v314)                                  │
00:01:11 #2332 [Verbose] > │                                         let v325 : string = "println!(\"zeta │
00:01:11 #2333 [Verbose] > │ / count: {:?} / s: {:?}\", 3, v324)"                                         │
00:01:11 #2334 [Verbose] > │                                         Fable.Core.RustInterop.emitRustExpr  │
00:01:11 #2335 [Verbose] > │ () v325                                                                      │
00:01:11 #2336 [Verbose] > │                                         let v326 :                           │
00:01:11 #2337 [Verbose] > │ num_complex_Complex<float> = method13(v324)                                  │
00:01:11 #2338 [Verbose] > │                                         let v327 : string = "v326.re"        │
00:01:11 #2339 [Verbose] > │                                         let v328 : float =                   │
00:01:11 #2340 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v327                                  │
00:01:11 #2341 [Verbose] > │                                         let v329 : bool = v328 > 1.0         │
00:01:11 #2342 [Verbose] > │                                         if v329 then                         │
00:01:11 #2343 [Verbose] > │                                             let v330 : float = method35()    │
00:01:11 #2344 [Verbose] > │                                             let v331 : float = method3(v330) │
00:01:11 #2345 [Verbose] > │                                             let v332 : float = method4()     │
00:01:11 #2346 [Verbose] > │                                             let v333 : string =              │
00:01:11 #2347 [Verbose] > │ "num_complex::Complex::new(v331, v332)"                                      │
00:01:11 #2348 [Verbose] > │                                             let v334 :                       │
00:01:11 #2349 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v333     │
00:01:11 #2350 [Verbose] > │                                             let v335 : (int32 []) =          │
00:01:11 #2351 [Verbose] > │ Array.zeroCreate<int32> (10000)                                              │
00:01:11 #2352 [Verbose] > │                                             let v336 : Mut0 = {l0 = 0} :     │
00:01:11 #2353 [Verbose] > │ Mut0                                                                         │
00:01:11 #2354 [Verbose] > │                                             while method36(v336) do          │
00:01:11 #2355 [Verbose] > │                                                 let v338 : int32 = v336.l0   │
00:01:11 #2356 [Verbose] > │                                                 v335.[int v338] <- v338      │
00:01:11 #2357 [Verbose] > │                                                 let v339 : int32 = v338 + 1  │
00:01:11 #2358 [Verbose] > │                                                 v336.l0 <- v339              │
00:01:11 #2359 [Verbose] > │                                                 ()                           │
00:01:11 #2360 [Verbose] > │                                             let v340 : int32 = v335.Length   │
00:01:11 #2361 [Verbose] > │                                             let v341 : Mut2 = {l0 = 0; l1 =  │
00:01:11 #2362 [Verbose] > │ v334} : Mut2                                                                 │
00:01:11 #2363 [Verbose] > │                                             while method37(v340, v341) do    │
00:01:11 #2364 [Verbose] > │                                                 let v343 : int32 = v341.l0   │
00:01:11 #2365 [Verbose] > │                                                 let v344 :                   │
00:01:11 #2366 [Verbose] > │ num_complex_Complex<float> = v341.l1                                         │
00:01:11 #2367 [Verbose] > │                                                 let v345 : int32 = v335.[int │
00:01:11 #2368 [Verbose] > │ v343]                                                                        │
00:01:11 #2369 [Verbose] > │                                                 let v346 : float =           │
00:01:11 #2370 [Verbose] > │ method38()                                                                   │
00:01:11 #2371 [Verbose] > │                                                 let v347 : float =           │
00:01:11 #2372 [Verbose] > │ method3(v346)                                                                │
00:01:11 #2373 [Verbose] > │                                                 let v348 : float = method4() │
00:01:11 #2374 [Verbose] > │                                                 let v349 : string =          │
00:01:11 #2375 [Verbose] > │ "num_complex::Complex::new(v347, v348)"                                      │
00:01:11 #2376 [Verbose] > │                                                 let v350 :                   │
00:01:11 #2377 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v349     │
00:01:11 #2378 [Verbose] > │                                                 let v351 : float = float     │
00:01:11 #2379 [Verbose] > │ v345                                                                         │
00:01:11 #2380 [Verbose] > │                                                 let v352 : float =           │
00:01:11 #2381 [Verbose] > │ method31(v351)                                                               │
00:01:11 #2382 [Verbose] > │                                                 let v353 : float =           │
00:01:11 #2383 [Verbose] > │ method3(v352)                                                                │
00:01:11 #2384 [Verbose] > │                                                 let v354 : float = method4() │
00:01:11 #2385 [Verbose] > │                                                 let v355 : string =          │
00:01:11 #2386 [Verbose] > │ "num_complex::Complex::new(v353, v354)"                                      │
00:01:11 #2387 [Verbose] > │                                                 let v356 :                   │
00:01:11 #2388 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v355     │
00:01:11 #2389 [Verbose] > │                                                 let v357 :                   │
00:01:11 #2390 [Verbose] > │ num_complex_Complex<float> = method39(v356)                                  │
00:01:11 #2391 [Verbose] > │                                                 let v358 :                   │
00:01:11 #2392 [Verbose] > │ num_complex_Complex<float> = method40(v324)                                  │
00:01:11 #2393 [Verbose] > │                                                 let v359 : string =          │
00:01:11 #2394 [Verbose] > │ "num_complex::Complex::powc(v357, v358)"                                     │
00:01:11 #2395 [Verbose] > │                                                 let v360 :                   │
00:01:11 #2396 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v359     │
00:01:11 #2397 [Verbose] > │                                                 let v361 : string = "v350 /  │
00:01:11 #2398 [Verbose] > │ v360"                                                                        │
00:01:11 #2399 [Verbose] > │                                                 let v362 :                   │
00:01:11 #2400 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v361     │
00:01:11 #2401 [Verbose] > │                                                 let v363 : string = "v344 +  │
00:01:11 #2402 [Verbose] > │ v362"                                                                        │
00:01:11 #2403 [Verbose] > │                                                 let v364 :                   │
00:01:11 #2404 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v363     │
00:01:11 #2405 [Verbose] > │                                                 let v365 : int32 = v343 + 1  │
00:01:11 #2406 [Verbose] > │                                                 v341.l0 <- v365              │
00:01:11 #2407 [Verbose] > │                                                 v341.l1 <- v364              │
00:01:11 #2408 [Verbose] > │                                                 ()                           │
00:01:11 #2409 [Verbose] > │                                             let v366 :                       │
00:01:11 #2410 [Verbose] > │ num_complex_Complex<float> = v341.l1                                         │
00:01:11 #2411 [Verbose] > │                                             v366                             │
00:01:11 #2412 [Verbose] > │                                         else                                 │
00:01:11 #2413 [Verbose] > │                                             let v367 : float = method38()    │
00:01:11 #2414 [Verbose] > │                                             let v368 : float = method3(v367) │
00:01:11 #2415 [Verbose] > │                                             let v369 : float = method4()     │
00:01:11 #2416 [Verbose] > │                                             let v370 : string =              │
00:01:11 #2417 [Verbose] > │ "num_complex::Complex::new(v368, v369)"                                      │
00:01:11 #2418 [Verbose] > │                                             let v371 :                       │
00:01:11 #2419 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v370     │
00:01:11 #2420 [Verbose] > │                                             let v372 : string = "v371 -      │
00:01:11 #2421 [Verbose] > │ v324"                                                                        │
00:01:11 #2422 [Verbose] > │                                             let v373 :                       │
00:01:11 #2423 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v372     │
00:01:11 #2424 [Verbose] > │                                             let v374 : string = $"        s  │
00:01:11 #2425 [Verbose] > │ = mpmath.gamma(s)"                                                           │
00:01:11 #2426 [Verbose] > │                                             let v375 :                       │
00:01:11 #2427 [Verbose] > │ num_complex_Complex<float> = method8(v373)                                   │
00:01:11 #2428 [Verbose] > │                                             let v376 :                       │
00:01:11 #2429 [Verbose] > │ Result<num_complex_Complex<float>, std_string_String> = method41(v0, v374,   │
00:01:11 #2430 [Verbose] > │ v375)                                                                        │
00:01:11 #2431 [Verbose] > │                                             let v377 : string = "v376.ok()"  │
00:01:11 #2432 [Verbose] > │                                             let v378 :                       │
00:01:11 #2433 [Verbose] > │ num_complex_Complex<float> option = Fable.Core.RustInterop.emitRustExpr ()   │
00:01:11 #2434 [Verbose] > │ v377                                                                         │
00:01:11 #2435 [Verbose] > │                                             let v379 : US0 = US0_0           │
00:01:11 #2436 [Verbose] > │                                             let v380 : US0 = v378 |>         │
00:01:11 #2437 [Verbose] > │ Option.map v57 |> Option.defaultValue v379                                   │
00:01:11 #2438 [Verbose] > │                                             let v381 : string = "f64::NAN"   │
00:01:11 #2439 [Verbose] > │                                             let v382 : float =               │
00:01:11 #2440 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v381                                  │
00:01:11 #2441 [Verbose] > │                                             let v383 : string = "f64::NAN"   │
00:01:11 #2442 [Verbose] > │                                             let v384 : float =               │
00:01:11 #2443 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v383                                  │
00:01:11 #2444 [Verbose] > │                                             let v385 : float =               │
00:01:11 #2445 [Verbose] > │ method31(v382)                                                               │
00:01:11 #2446 [Verbose] > │                                             let v386 : float = method3(v385) │
00:01:11 #2447 [Verbose] > │                                             let v387 : float =               │
00:01:11 #2448 [Verbose] > │ method32(v384)                                                               │
00:01:11 #2449 [Verbose] > │                                             let v388 : string =              │
00:01:11 #2450 [Verbose] > │ "num_complex::Complex::new(v386, v387)"                                      │
00:01:11 #2451 [Verbose] > │                                             let v389 :                       │
00:01:11 #2452 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v388     │
00:01:11 #2453 [Verbose] > │                                             let v392 :                       │
00:01:11 #2454 [Verbose] > │ num_complex_Complex<float> =                                                 │
00:01:11 #2455 [Verbose] > │                                                 match v380 with              │
00:01:11 #2456 [Verbose] > │                                                 | US0_0 -> (* None *)        │
00:01:11 #2457 [Verbose] > │                                                     v389                     │
00:01:11 #2458 [Verbose] > │                                                 | US0_1(v390) -> (* Some *)  │
00:01:11 #2459 [Verbose] > │                                                     v390                     │
00:01:11 #2460 [Verbose] > │                                             let v393 : float = method42()    │
00:01:11 #2461 [Verbose] > │                                             let v394 : float = method3(v393) │
00:01:11 #2462 [Verbose] > │                                             let v395 : float = method4()     │
00:01:11 #2463 [Verbose] > │                                             let v396 : string =              │
00:01:11 #2464 [Verbose] > │ "num_complex::Complex::new(v394, v395)"                                      │
00:01:11 #2465 [Verbose] > │                                             let v397 :                       │
00:01:11 #2466 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v396     │
00:01:11 #2467 [Verbose] > │                                             let v398 : string = "v397 *      │
00:01:11 #2468 [Verbose] > │ v324"                                                                        │
00:01:11 #2469 [Verbose] > │                                             let v399 :                       │
00:01:11 #2470 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v398     │
00:01:11 #2471 [Verbose] > │                                             let v400 : float = method2()     │
00:01:11 #2472 [Verbose] > │                                             let v401 : float = method3(v400) │
00:01:11 #2473 [Verbose] > │                                             let v402 : float = method4()     │
00:01:11 #2474 [Verbose] > │                                             let v403 : string =              │
00:01:11 #2475 [Verbose] > │ "num_complex::Complex::new(v401, v402)"                                      │
00:01:11 #2476 [Verbose] > │                                             let v404 :                       │
00:01:11 #2477 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v403     │
00:01:11 #2478 [Verbose] > │                                             let v405 : string = "v399 /      │
00:01:11 #2479 [Verbose] > │ v404"                                                                        │
00:01:11 #2480 [Verbose] > │                                             let v406 :                       │
00:01:11 #2481 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v405     │
00:01:11 #2482 [Verbose] > │                                             let v407 : string = "v406.sin()" │
00:01:11 #2483 [Verbose] > │                                             let v408 :                       │
00:01:11 #2484 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v407     │
00:01:11 #2485 [Verbose] > │                                             let v409 :                       │
00:01:11 #2486 [Verbose] > │ num_complex_Complex<float> = method13(v324)                                  │
00:01:11 #2487 [Verbose] > │                                             let v410 : string = "v409.re"    │
00:01:11 #2488 [Verbose] > │                                             let v411 : float =               │
00:01:11 #2489 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v410                                  │
00:01:11 #2490 [Verbose] > │                                             let v412 : float = 1.0 - v411    │
00:01:11 #2491 [Verbose] > │                                             let v413 :                       │
00:01:11 #2492 [Verbose] > │ num_complex_Complex<float> = method14(v324)                                  │
00:01:11 #2493 [Verbose] > │                                             let v414 : string = "v413.im"    │
00:01:11 #2494 [Verbose] > │                                             let v415 : float =               │
00:01:11 #2495 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v414                                  │
00:01:11 #2496 [Verbose] > │                                             let v416 : float =  -v415        │
00:01:11 #2497 [Verbose] > │                                             let v417 : float =               │
00:01:11 #2498 [Verbose] > │ method31(v412)                                                               │
00:01:11 #2499 [Verbose] > │                                             let v418 : float = method3(v417) │
00:01:11 #2500 [Verbose] > │                                             let v419 : float =               │
00:01:11 #2501 [Verbose] > │ method32(v416)                                                               │
00:01:11 #2502 [Verbose] > │                                             let v420 : string =              │
00:01:11 #2503 [Verbose] > │ "num_complex::Complex::new(v418, v419)"                                      │
00:01:11 #2504 [Verbose] > │                                             let v421 :                       │
00:01:11 #2505 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v420     │
00:01:11 #2506 [Verbose] > │                                             let v422 :                       │
00:01:11 #2507 [Verbose] > │ num_complex_Complex<float> = method13(v421)                                  │
00:01:11 #2508 [Verbose] > │                                             let v423 : string = "v422.re"    │
00:01:11 #2509 [Verbose] > │                                             let v424 : float =               │
00:01:11 #2510 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v423                                  │
00:01:11 #2511 [Verbose] > │                                             let v425 : bool = v424 <= 1.0    │
00:01:11 #2512 [Verbose] > │                                             let v562 :                       │
00:01:11 #2513 [Verbose] > │ num_complex_Complex<float> =                                                 │
00:01:11 #2514 [Verbose] > │                                                 if v425 then                 │
00:01:11 #2515 [Verbose] > │                                                     let v426 : float =       │
00:01:11 #2516 [Verbose] > │ method35()                                                                   │
00:01:11 #2517 [Verbose] > │                                                     let v427 : float =       │
00:01:11 #2518 [Verbose] > │ method3(v426)                                                                │
00:01:11 #2519 [Verbose] > │                                                     let v428 : float =       │
00:01:11 #2520 [Verbose] > │ method4()                                                                    │
00:01:11 #2521 [Verbose] > │                                                     let v429 : string =      │
00:01:11 #2522 [Verbose] > │ "num_complex::Complex::new(v427, v428)"                                      │
00:01:11 #2523 [Verbose] > │                                                     let v430 :               │
00:01:11 #2524 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v429     │
00:01:11 #2525 [Verbose] > │                                                     v430                     │
00:01:11 #2526 [Verbose] > │                                                 else                         │
00:01:11 #2527 [Verbose] > │                                                     let v431 :               │
00:01:11 #2528 [Verbose] > │ num_complex_Complex<float> = method34(v421)                                  │
00:01:11 #2529 [Verbose] > │                                                     let v432 : string =      │
00:01:11 #2530 [Verbose] > │ "println!(\"zeta / count: {:?} / s: {:?}\", 4, v431)"                        │
00:01:11 #2531 [Verbose] > │                                                                              │
00:01:11 #2532 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v432                                  │
00:01:11 #2533 [Verbose] > │                                                     let v433 :               │
00:01:11 #2534 [Verbose] > │ num_complex_Complex<float> = method13(v431)                                  │
00:01:11 #2535 [Verbose] > │                                                     let v434 : string =      │
00:01:11 #2536 [Verbose] > │ "v433.re"                                                                    │
00:01:11 #2537 [Verbose] > │                                                     let v435 : float =       │
00:01:11 #2538 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v434                                  │
00:01:11 #2539 [Verbose] > │                                                     let v436 : bool = v435 > │
00:01:11 #2540 [Verbose] > │ 1.0                                                                          │
00:01:11 #2541 [Verbose] > │                                                     if v436 then             │
00:01:11 #2542 [Verbose] > │                                                         let v437 : float =   │
00:01:11 #2543 [Verbose] > │ method35()                                                                   │
00:01:11 #2544 [Verbose] > │                                                         let v438 : float =   │
00:01:11 #2545 [Verbose] > │ method3(v437)                                                                │
00:01:11 #2546 [Verbose] > │                                                         let v439 : float =   │
00:01:12 #2547 [Verbose] > │ method4()                                                                    │
00:01:12 #2548 [Verbose] > │                                                         let v440 : string =  │
00:01:12 #2549 [Verbose] > │ "num_complex::Complex::new(v438, v439)"                                      │
00:01:12 #2550 [Verbose] > │                                                         let v441 :           │
00:01:12 #2551 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v440     │
00:01:12 #2552 [Verbose] > │                                                         let v442 : (int32 [  │
00:01:12 #2553 [Verbose] > │ ]) = Array.zeroCreate<int32> (10000)                                         │
00:01:12 #2554 [Verbose] > │                                                         let v443 : Mut0 =    │
00:01:12 #2555 [Verbose] > │ {l0 = 0} : Mut0                                                              │
00:01:12 #2556 [Verbose] > │                                                         while method36(v443) │
00:01:12 #2557 [Verbose] > │ do                                                                           │
00:01:12 #2558 [Verbose] > │                                                             let v445 : int32 │
00:01:12 #2559 [Verbose] > │ = v443.l0                                                                    │
00:01:12 #2560 [Verbose] > │                                                             v442.[int v445]  │
00:01:12 #2561 [Verbose] > │ <- v445                                                                      │
00:01:12 #2562 [Verbose] > │                                                             let v446 : int32 │
00:01:12 #2563 [Verbose] > │ = v445 + 1                                                                   │
00:01:12 #2564 [Verbose] > │                                                             v443.l0 <- v446  │
00:01:12 #2565 [Verbose] > │                                                             ()               │
00:01:12 #2566 [Verbose] > │                                                         let v447 : int32 =   │
00:01:12 #2567 [Verbose] > │ v442.Length                                                                  │
00:01:12 #2568 [Verbose] > │                                                         let v448 : Mut2 =    │
00:01:12 #2569 [Verbose] > │ {l0 = 0; l1 = v441} : Mut2                                                   │
00:01:12 #2570 [Verbose] > │                                                         while method37(v447, │
00:01:12 #2571 [Verbose] > │ v448) do                                                                     │
00:01:12 #2572 [Verbose] > │                                                             let v450 : int32 │
00:01:12 #2573 [Verbose] > │ = v448.l0                                                                    │
00:01:12 #2574 [Verbose] > │                                                             let v451 :       │
00:01:12 #2575 [Verbose] > │ num_complex_Complex<float> = v448.l1                                         │
00:01:12 #2576 [Verbose] > │                                                             let v452 : int32 │
00:01:12 #2577 [Verbose] > │ = v442.[int v450]                                                            │
00:01:12 #2578 [Verbose] > │                                                             let v453 : float │
00:01:12 #2579 [Verbose] > │ = method38()                                                                 │
00:01:12 #2580 [Verbose] > │                                                             let v454 : float │
00:01:12 #2581 [Verbose] > │ = method3(v453)                                                              │
00:01:12 #2582 [Verbose] > │                                                             let v455 : float │
00:01:12 #2583 [Verbose] > │ = method4()                                                                  │
00:01:12 #2584 [Verbose] > │                                                             let v456 :       │
00:01:12 #2585 [Verbose] > │ string = "num_complex::Complex::new(v454, v455)"                             │
00:01:12 #2586 [Verbose] > │                                                             let v457 :       │
00:01:12 #2587 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v456     │
00:01:12 #2588 [Verbose] > │                                                             let v458 : float │
00:01:12 #2589 [Verbose] > │ = float v452                                                                 │
00:01:12 #2590 [Verbose] > │                                                             let v459 : float │
00:01:12 #2591 [Verbose] > │ = method31(v458)                                                             │
00:01:12 #2592 [Verbose] > │                                                             let v460 : float │
00:01:12 #2593 [Verbose] > │ = method3(v459)                                                              │
00:01:12 #2594 [Verbose] > │                                                             let v461 : float │
00:01:12 #2595 [Verbose] > │ = method4()                                                                  │
00:01:12 #2596 [Verbose] > │                                                             let v462 :       │
00:01:12 #2597 [Verbose] > │ string = "num_complex::Complex::new(v460, v461)"                             │
00:01:12 #2598 [Verbose] > │                                                             let v463 :       │
00:01:12 #2599 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v462     │
00:01:12 #2600 [Verbose] > │                                                             let v464 :       │
00:01:12 #2601 [Verbose] > │ num_complex_Complex<float> = method39(v463)                                  │
00:01:12 #2602 [Verbose] > │                                                             let v465 :       │
00:01:12 #2603 [Verbose] > │ num_complex_Complex<float> = method40(v431)                                  │
00:01:12 #2604 [Verbose] > │                                                             let v466 :       │
00:01:12 #2605 [Verbose] > │ string = "num_complex::Complex::powc(v464, v465)"                            │
00:01:12 #2606 [Verbose] > │                                                             let v467 :       │
00:01:12 #2607 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v466     │
00:01:12 #2608 [Verbose] > │                                                             let v468 :       │
00:01:12 #2609 [Verbose] > │ string = "v457 / v467"                                                       │
00:01:12 #2610 [Verbose] > │                                                             let v469 :       │
00:01:12 #2611 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v468     │
00:01:12 #2612 [Verbose] > │                                                             let v470 :       │
00:01:12 #2613 [Verbose] > │ string = "v451 + v469"                                                       │
00:01:12 #2614 [Verbose] > │                                                             let v471 :       │
00:01:12 #2615 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v470     │
00:01:12 #2616 [Verbose] > │                                                             let v472 : int32 │
00:01:12 #2617 [Verbose] > │ = v450 + 1                                                                   │
00:01:12 #2618 [Verbose] > │                                                             v448.l0 <- v472  │
00:01:12 #2619 [Verbose] > │                                                             v448.l1 <- v471  │
00:01:12 #2620 [Verbose] > │                                                             ()               │
00:01:12 #2621 [Verbose] > │                                                         let v473 :           │
00:01:12 #2622 [Verbose] > │ num_complex_Complex<float> = v448.l1                                         │
00:01:12 #2623 [Verbose] > │                                                         v473                 │
00:01:12 #2624 [Verbose] > │                                                     else                     │
00:01:12 #2625 [Verbose] > │                                                         let v474 : float =   │
00:01:12 #2626 [Verbose] > │ method38()                                                                   │
00:01:12 #2627 [Verbose] > │                                                         let v475 : float =   │
00:01:12 #2628 [Verbose] > │ method3(v474)                                                                │
00:01:12 #2629 [Verbose] > │                                                         let v476 : float =   │
00:01:12 #2630 [Verbose] > │ method4()                                                                    │
00:01:12 #2631 [Verbose] > │                                                         let v477 : string =  │
00:01:12 #2632 [Verbose] > │ "num_complex::Complex::new(v475, v476)"                                      │
00:01:12 #2633 [Verbose] > │                                                         let v478 :           │
00:01:12 #2634 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v477     │
00:01:12 #2635 [Verbose] > │                                                         let v479 : string =  │
00:01:12 #2636 [Verbose] > │ "v478 - v431"                                                                │
00:01:12 #2637 [Verbose] > │                                                         let v480 :           │
00:01:12 #2638 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v479     │
00:01:12 #2639 [Verbose] > │                                                         let v481 : string =  │
00:01:12 #2640 [Verbose] > │ $"        s = mpmath.gamma(s)"                                               │
00:01:12 #2641 [Verbose] > │                                                         let v482 :           │
00:01:12 #2642 [Verbose] > │ num_complex_Complex<float> = method8(v480)                                   │
00:01:12 #2643 [Verbose] > │                                                         let v483 :           │
00:01:12 #2644 [Verbose] > │ Result<num_complex_Complex<float>, std_string_String> = method41(v0, v481,   │
00:01:12 #2645 [Verbose] > │ v482)                                                                        │
00:01:12 #2646 [Verbose] > │                                                         let v484 : string =  │
00:01:12 #2647 [Verbose] > │ "v483.ok()"                                                                  │
00:01:12 #2648 [Verbose] > │                                                         let v485 :           │
00:01:12 #2649 [Verbose] > │ num_complex_Complex<float> option = Fable.Core.RustInterop.emitRustExpr ()   │
00:01:12 #2650 [Verbose] > │ v484                                                                         │
00:01:12 #2651 [Verbose] > │                                                         let v486 : US0 =     │
00:01:12 #2652 [Verbose] > │ US0_0                                                                        │
00:01:12 #2653 [Verbose] > │                                                         let v487 : US0 =     │
00:01:12 #2654 [Verbose] > │ v485 |> Option.map v57 |> Option.defaultValue v486                           │
00:01:12 #2655 [Verbose] > │                                                         let v488 : string =  │
00:01:12 #2656 [Verbose] > │ "f64::NAN"                                                                   │
00:01:12 #2657 [Verbose] > │                                                         let v489 : float =   │
00:01:12 #2658 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v488                                  │
00:01:12 #2659 [Verbose] > │                                                         let v490 : string =  │
00:01:12 #2660 [Verbose] > │ "f64::NAN"                                                                   │
00:01:12 #2661 [Verbose] > │                                                         let v491 : float =   │
00:01:12 #2662 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v490                                  │
00:01:12 #2663 [Verbose] > │                                                         let v492 : float =   │
00:01:12 #2664 [Verbose] > │ method31(v489)                                                               │
00:01:12 #2665 [Verbose] > │                                                         let v493 : float =   │
00:01:12 #2666 [Verbose] > │ method3(v492)                                                                │
00:01:12 #2667 [Verbose] > │                                                         let v494 : float =   │
00:01:12 #2668 [Verbose] > │ method32(v491)                                                               │
00:01:12 #2669 [Verbose] > │                                                         let v495 : string =  │
00:01:12 #2670 [Verbose] > │ "num_complex::Complex::new(v493, v494)"                                      │
00:01:12 #2671 [Verbose] > │                                                         let v496 :           │
00:01:12 #2672 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v495     │
00:01:12 #2673 [Verbose] > │                                                         let v499 :           │
00:01:12 #2674 [Verbose] > │ num_complex_Complex<float> =                                                 │
00:01:12 #2675 [Verbose] > │                                                             match v487 with  │
00:01:12 #2676 [Verbose] > │                                                             | US0_0 -> (*    │
00:01:12 #2677 [Verbose] > │ None *)                                                                      │
00:01:12 #2678 [Verbose] > │                                                                 v496         │
00:01:12 #2679 [Verbose] > │                                                             | US0_1(v497) -> │
00:01:12 #2680 [Verbose] > │ (* Some *)                                                                   │
00:01:12 #2681 [Verbose] > │                                                                 v497         │
00:01:12 #2682 [Verbose] > │                                                         let v500 : float =   │
00:01:12 #2683 [Verbose] > │ method42()                                                                   │
00:01:12 #2684 [Verbose] > │                                                         let v501 : float =   │
00:01:12 #2685 [Verbose] > │ method3(v500)                                                                │
00:01:12 #2686 [Verbose] > │                                                         let v502 : float =   │
00:01:12 #2687 [Verbose] > │ method4()                                                                    │
00:01:12 #2688 [Verbose] > │                                                         let v503 : string =  │
00:01:12 #2689 [Verbose] > │ "num_complex::Complex::new(v501, v502)"                                      │
00:01:12 #2690 [Verbose] > │                                                         let v504 :           │
00:01:12 #2691 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v503     │
00:01:12 #2692 [Verbose] > │                                                         let v505 : string =  │
00:01:12 #2693 [Verbose] > │ "v504 * v431"                                                                │
00:01:12 #2694 [Verbose] > │                                                         let v506 :           │
00:01:12 #2695 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v505     │
00:01:12 #2696 [Verbose] > │                                                         let v507 : float =   │
00:01:12 #2697 [Verbose] > │ method2()                                                                    │
00:01:12 #2698 [Verbose] > │                                                         let v508 : float =   │
00:01:12 #2699 [Verbose] > │ method3(v507)                                                                │
00:01:12 #2700 [Verbose] > │                                                         let v509 : float =   │
00:01:12 #2701 [Verbose] > │ method4()                                                                    │
00:01:12 #2702 [Verbose] > │                                                         let v510 : string =  │
00:01:12 #2703 [Verbose] > │ "num_complex::Complex::new(v508, v509)"                                      │
00:01:12 #2704 [Verbose] > │                                                         let v511 :           │
00:01:12 #2705 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v510     │
00:01:12 #2706 [Verbose] > │                                                         let v512 : string =  │
00:01:12 #2707 [Verbose] > │ "v506 / v511"                                                                │
00:01:12 #2708 [Verbose] > │                                                         let v513 :           │
00:01:12 #2709 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v512     │
00:01:12 #2710 [Verbose] > │                                                         let v514 : string =  │
00:01:12 #2711 [Verbose] > │ "v513.sin()"                                                                 │
00:01:12 #2712 [Verbose] > │                                                         let v515 :           │
00:01:12 #2713 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v514     │
00:01:12 #2714 [Verbose] > │                                                         let v516 :           │
00:01:12 #2715 [Verbose] > │ num_complex_Complex<float> = method13(v431)                                  │
00:01:12 #2716 [Verbose] > │                                                         let v517 : string =  │
00:01:12 #2717 [Verbose] > │ "v516.re"                                                                    │
00:01:12 #2718 [Verbose] > │                                                         let v518 : float =   │
00:01:12 #2719 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v517                                  │
00:01:12 #2720 [Verbose] > │                                                         let v519 : float =   │
00:01:12 #2721 [Verbose] > │ 1.0 - v518                                                                   │
00:01:12 #2722 [Verbose] > │                                                         let v520 :           │
00:01:12 #2723 [Verbose] > │ num_complex_Complex<float> = method14(v431)                                  │
00:01:12 #2724 [Verbose] > │                                                         let v521 : string =  │
00:01:12 #2725 [Verbose] > │ "v520.im"                                                                    │
00:01:12 #2726 [Verbose] > │                                                         let v522 : float =   │
00:01:12 #2727 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v521                                  │
00:01:12 #2728 [Verbose] > │                                                         let v523 : float =   │
00:01:12 #2729 [Verbose] > │ -v522                                                                        │
00:01:12 #2730 [Verbose] > │                                                         let v524 : float =   │
00:01:12 #2731 [Verbose] > │ method31(v519)                                                               │
00:01:12 #2732 [Verbose] > │                                                         let v525 : float =   │
00:01:12 #2733 [Verbose] > │ method3(v524)                                                                │
00:01:12 #2734 [Verbose] > │                                                         let v526 : float =   │
00:01:12 #2735 [Verbose] > │ method32(v523)                                                               │
00:01:12 #2736 [Verbose] > │                                                         let v527 : string =  │
00:01:12 #2737 [Verbose] > │ "num_complex::Complex::new(v525, v526)"                                      │
00:01:12 #2738 [Verbose] > │                                                         let v528 :           │
00:01:12 #2739 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v527     │
00:01:12 #2740 [Verbose] > │                                                         let v529 :           │
00:01:12 #2741 [Verbose] > │ num_complex_Complex<float> = method13(v528)                                  │
00:01:12 #2742 [Verbose] > │                                                         let v530 : string =  │
00:01:12 #2743 [Verbose] > │ "v529.re"                                                                    │
00:01:12 #2744 [Verbose] > │                                                         let v531 : float =   │
00:01:12 #2745 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v530                                  │
00:01:12 #2746 [Verbose] > │                                                         let v532 : bool =    │
00:01:12 #2747 [Verbose] > │ v531 <= 1.0                                                                  │
00:01:12 #2748 [Verbose] > │                                                         let v538 :           │
00:01:12 #2749 [Verbose] > │ num_complex_Complex<float> =                                                 │
00:01:12 #2750 [Verbose] > │                                                             if v532 then     │
00:01:12 #2751 [Verbose] > │                                                                 let v533 :   │
00:01:12 #2752 [Verbose] > │ float = method35()                                                           │
00:01:12 #2753 [Verbose] > │                                                                 let v534 :   │
00:01:12 #2754 [Verbose] > │ float = method3(v533)                                                        │
00:01:12 #2755 [Verbose] > │                                                                 let v535 :   │
00:01:12 #2756 [Verbose] > │ float = method4()                                                            │
00:01:12 #2757 [Verbose] > │                                                                 let v536 :   │
00:01:12 #2758 [Verbose] > │ string = "num_complex::Complex::new(v534, v535)"                             │
00:01:12 #2759 [Verbose] > │                                                                 let v537 :   │
00:01:12 #2760 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v536     │
00:01:12 #2761 [Verbose] > │                                                                 v537         │
00:01:12 #2762 [Verbose] > │                                                             else             │
00:01:12 #2763 [Verbose] > │                                                                 v528         │
00:01:12 #2764 [Verbose] > │                                                         let v539 : float =   │
00:01:12 #2765 [Verbose] > │ method2()                                                                    │
00:01:12 #2766 [Verbose] > │                                                         let v540 : float =   │
00:01:12 #2767 [Verbose] > │ method3(v539)                                                                │
00:01:12 #2768 [Verbose] > │                                                         let v541 : float =   │
00:01:12 #2769 [Verbose] > │ method4()                                                                    │
00:01:12 #2770 [Verbose] > │                                                         let v542 : string =  │
00:01:12 #2771 [Verbose] > │ "num_complex::Complex::new(v540, v541)"                                      │
00:01:12 #2772 [Verbose] > │                                                         let v543 :           │
00:01:12 #2773 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v542     │
00:01:12 #2774 [Verbose] > │                                                         let v544 : float =   │
00:01:12 #2775 [Verbose] > │ method42()                                                                   │
00:01:12 #2776 [Verbose] > │                                                         let v545 : float =   │
00:01:12 #2777 [Verbose] > │ method3(v544)                                                                │
00:01:12 #2778 [Verbose] > │                                                         let v546 : float =   │
00:01:12 #2779 [Verbose] > │ method4()                                                                    │
00:01:12 #2780 [Verbose] > │                                                         let v547 : string =  │
00:01:12 #2781 [Verbose] > │ "num_complex::Complex::new(v545, v546)"                                      │
00:01:12 #2782 [Verbose] > │                                                         let v548 :           │
00:01:12 #2783 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v547     │
00:01:12 #2784 [Verbose] > │                                                         let v549 :           │
00:01:12 #2785 [Verbose] > │ num_complex_Complex<float> = method39(v548)                                  │
00:01:12 #2786 [Verbose] > │                                                         let v550 :           │
00:01:12 #2787 [Verbose] > │ num_complex_Complex<float> = method40(v431)                                  │
00:01:12 #2788 [Verbose] > │                                                         let v551 : string =  │
00:01:12 #2789 [Verbose] > │ "num_complex::Complex::powc(v549, v550)"                                     │
00:01:12 #2790 [Verbose] > │                                                         let v552 :           │
00:01:12 #2791 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v551     │
00:01:12 #2792 [Verbose] > │                                                         let v553 : string =  │
00:01:12 #2793 [Verbose] > │ "v543 * v552"                                                                │
00:01:12 #2794 [Verbose] > │                                                         let v554 :           │
00:01:12 #2795 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v553     │
00:01:12 #2796 [Verbose] > │                                                         let v555 : string =  │
00:01:12 #2797 [Verbose] > │ "v554 * v515"                                                                │
00:01:12 #2798 [Verbose] > │                                                         let v556 :           │
00:01:12 #2799 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v555     │
00:01:12 #2800 [Verbose] > │                                                         let v557 : string =  │
00:01:12 #2801 [Verbose] > │ "v556 * v499"                                                                │
00:01:12 #2802 [Verbose] > │                                                         let v558 :           │
00:01:12 #2803 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v557     │
00:01:12 #2804 [Verbose] > │                                                         let v559 : string =  │
00:01:12 #2805 [Verbose] > │ "v558 * v538"                                                                │
00:01:12 #2806 [Verbose] > │                                                         let v560 :           │
00:01:12 #2807 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v559     │
00:01:12 #2808 [Verbose] > │                                                         v560                 │
00:01:12 #2809 [Verbose] > │                                             let v563 : float = method2()     │
00:01:12 #2810 [Verbose] > │                                             let v564 : float = method3(v563) │
00:01:12 #2811 [Verbose] > │                                             let v565 : float = method4()     │
00:01:12 #2812 [Verbose] > │                                             let v566 : string =              │
00:01:12 #2813 [Verbose] > │ "num_complex::Complex::new(v564, v565)"                                      │
00:01:12 #2814 [Verbose] > │                                             let v567 :                       │
00:01:12 #2815 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v566     │
00:01:12 #2816 [Verbose] > │                                             let v568 : float = method42()    │
00:01:12 #2817 [Verbose] > │                                             let v569 : float = method3(v568) │
00:01:12 #2818 [Verbose] > │                                             let v570 : float = method4()     │
00:01:12 #2819 [Verbose] > │                                             let v571 : string =              │
00:01:12 #2820 [Verbose] > │ "num_complex::Complex::new(v569, v570)"                                      │
00:01:12 #2821 [Verbose] > │                                             let v572 :                       │
00:01:12 #2822 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v571     │
00:01:12 #2823 [Verbose] > │                                             let v573 :                       │
00:01:12 #2824 [Verbose] > │ num_complex_Complex<float> = method39(v572)                                  │
00:01:12 #2825 [Verbose] > │                                             let v574 :                       │
00:01:12 #2826 [Verbose] > │ num_complex_Complex<float> = method40(v324)                                  │
00:01:12 #2827 [Verbose] > │                                             let v575 : string =              │
00:01:12 #2828 [Verbose] > │ "num_complex::Complex::powc(v573, v574)"                                     │
00:01:12 #2829 [Verbose] > │                                             let v576 :                       │
00:01:12 #2830 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v575     │
00:01:12 #2831 [Verbose] > │                                             let v577 : string = "v567 *      │
00:01:12 #2832 [Verbose] > │ v576"                                                                        │
00:01:12 #2833 [Verbose] > │                                             let v578 :                       │
00:01:12 #2834 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v577     │
00:01:12 #2835 [Verbose] > │                                             let v579 : string = "v578 *      │
00:01:12 #2836 [Verbose] > │ v408"                                                                        │
00:01:12 #2837 [Verbose] > │                                             let v580 :                       │
00:01:12 #2838 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v579     │
00:01:12 #2839 [Verbose] > │                                             let v581 : string = "v580 *      │
00:01:12 #2840 [Verbose] > │ v392"                                                                        │
00:01:12 #2841 [Verbose] > │                                             let v582 :                       │
00:01:12 #2842 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v581     │
00:01:12 #2843 [Verbose] > │                                             let v583 : string = "v582 *      │
00:01:12 #2844 [Verbose] > │ v562"                                                                        │
00:01:12 #2845 [Verbose] > │                                             let v584 :                       │
00:01:12 #2846 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v583     │
00:01:12 #2847 [Verbose] > │                                             v584                             │
00:01:12 #2848 [Verbose] > │                                 let v587 : float = method2()                 │
00:01:12 #2849 [Verbose] > │                                 let v588 : float = method3(v587)             │
00:01:12 #2850 [Verbose] > │                                 let v589 : float = method4()                 │
00:01:12 #2851 [Verbose] > │                                 let v590 : string =                          │
00:01:12 #2852 [Verbose] > │ "num_complex::Complex::new(v588, v589)"                                      │
00:01:12 #2853 [Verbose] > │                                 let v591 : num_complex_Complex<float> =      │
00:01:12 #2854 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v590                                  │
00:01:12 #2855 [Verbose] > │                                 let v592 : float = method42()                │
00:01:12 #2856 [Verbose] > │                                 let v593 : float = method3(v592)             │
00:01:12 #2857 [Verbose] > │                                 let v594 : float = method4()                 │
00:01:12 #2858 [Verbose] > │                                 let v595 : string =                          │
00:01:12 #2859 [Verbose] > │ "num_complex::Complex::new(v593, v594)"                                      │
00:01:12 #2860 [Verbose] > │                                 let v596 : num_complex_Complex<float> =      │
00:01:12 #2861 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v595                                  │
00:01:12 #2862 [Verbose] > │                                 let v597 : num_complex_Complex<float> =      │
00:01:12 #2863 [Verbose] > │ method39(v596)                                                               │
00:01:12 #2864 [Verbose] > │                                 let v598 : num_complex_Complex<float> =      │
00:01:12 #2865 [Verbose] > │ method40(v217)                                                               │
00:01:12 #2866 [Verbose] > │                                 let v599 : string =                          │
00:01:12 #2867 [Verbose] > │ "num_complex::Complex::powc(v597, v598)"                                     │
00:01:12 #2868 [Verbose] > │                                 let v600 : num_complex_Complex<float> =      │
00:01:12 #2869 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v599                                  │
00:01:12 #2870 [Verbose] > │                                 let v601 : string = "v591 * v600"            │
00:01:12 #2871 [Verbose] > │                                 let v602 : num_complex_Complex<float> =      │
00:01:12 #2872 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v601                                  │
00:01:12 #2873 [Verbose] > │                                 let v603 : string = "v602 * v301"            │
00:01:12 #2874 [Verbose] > │                                 let v604 : num_complex_Complex<float> =      │
00:01:12 #2875 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v603                                  │
00:01:12 #2876 [Verbose] > │                                 let v605 : string = "v604 * v285"            │
00:01:12 #2877 [Verbose] > │                                 let v606 : num_complex_Complex<float> =      │
00:01:12 #2878 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v605                                  │
00:01:12 #2879 [Verbose] > │                                 let v607 : string = "v606 * v586"            │
00:01:12 #2880 [Verbose] > │                                 let v608 : num_complex_Complex<float> =      │
00:01:12 #2881 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v607                                  │
00:01:12 #2882 [Verbose] > │                                 v608                                         │
00:01:12 #2883 [Verbose] > │                     let v611 : float = method2()                             │
00:01:12 #2884 [Verbose] > │                     let v612 : float = method3(v611)                         │
00:01:12 #2885 [Verbose] > │                     let v613 : float = method4()                             │
00:01:12 #2886 [Verbose] > │                     let v614 : string = "num_complex::Complex::new(v612,     │
00:01:12 #2887 [Verbose] > │ v613)"                                                                       │
00:01:12 #2888 [Verbose] > │                     let v615 : num_complex_Complex<float> =                  │
00:01:12 #2889 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v614                                  │
00:01:12 #2890 [Verbose] > │                     let v616 : float = method42()                            │
00:01:12 #2891 [Verbose] > │                     let v617 : float = method3(v616)                         │
00:01:12 #2892 [Verbose] > │                     let v618 : float = method4()                             │
00:01:12 #2893 [Verbose] > │                     let v619 : string = "num_complex::Complex::new(v617,     │
00:01:12 #2894 [Verbose] > │ v618)"                                                                       │
00:01:12 #2895 [Verbose] > │                     let v620 : num_complex_Complex<float> =                  │
00:01:12 #2896 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v619                                  │
00:01:12 #2897 [Verbose] > │                     let v621 : num_complex_Complex<float> = method39(v620)   │
00:01:12 #2898 [Verbose] > │                     let v622 : num_complex_Complex<float> = method40(v110)   │
00:01:12 #2899 [Verbose] > │                     let v623 : string = "num_complex::Complex::powc(v621,    │
00:01:12 #2900 [Verbose] > │ v622)"                                                                       │
00:01:12 #2901 [Verbose] > │                     let v624 : num_complex_Complex<float> =                  │
00:01:12 #2902 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v623                                  │
00:01:12 #2903 [Verbose] > │                     let v625 : string = "v615 * v624"                        │
00:01:12 #2904 [Verbose] > │                     let v626 : num_complex_Complex<float> =                  │
00:01:12 #2905 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v625                                  │
00:01:12 #2906 [Verbose] > │                     let v627 : string = "v626 * v194"                        │
00:01:12 #2907 [Verbose] > │                     let v628 : num_complex_Complex<float> =                  │
00:01:12 #2908 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v627                                  │
00:01:12 #2909 [Verbose] > │                     let v629 : string = "v628 * v178"                        │
00:01:12 #2910 [Verbose] > │                     let v630 : num_complex_Complex<float> =                  │
00:01:12 #2911 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v629                                  │
00:01:12 #2912 [Verbose] > │                     let v631 : string = "v630 * v610"                        │
00:01:12 #2913 [Verbose] > │                     let v632 : num_complex_Complex<float> =                  │
00:01:12 #2914 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v631                                  │
00:01:12 #2915 [Verbose] > │                     v632                                                     │
00:01:12 #2916 [Verbose] > │         let v635 : float = method2()                                         │
00:01:12 #2917 [Verbose] > │         let v636 : float = method3(v635)                                     │
00:01:12 #2918 [Verbose] > │         let v637 : float = method4()                                         │
00:01:12 #2919 [Verbose] > │         let v638 : string = "num_complex::Complex::new(v636, v637)"          │
00:01:12 #2920 [Verbose] > │         let v639 : num_complex_Complex<float> =                              │
00:01:12 #2921 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v638                                  │
00:01:12 #2922 [Verbose] > │         let v640 : float = method42()                                        │
00:01:12 #2923 [Verbose] > │         let v641 : float = method3(v640)                                     │
00:01:12 #2924 [Verbose] > │         let v642 : float = method4()                                         │
00:01:12 #2925 [Verbose] > │         let v643 : string = "num_complex::Complex::new(v641, v642)"          │
00:01:12 #2926 [Verbose] > │         let v644 : num_complex_Complex<float> =                              │
00:01:12 #2927 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v643                                  │
00:01:12 #2928 [Verbose] > │         let v645 : num_complex_Complex<float> = method39(v644)               │
00:01:12 #2929 [Verbose] > │         let v646 : num_complex_Complex<float> = method40(v2)                 │
00:01:12 #2930 [Verbose] > │         let v647 : string = "num_complex::Complex::powc(v645, v646)"         │
00:01:12 #2931 [Verbose] > │         let v648 : num_complex_Complex<float> =                              │
00:01:12 #2932 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v647                                  │
00:01:12 #2933 [Verbose] > │         let v649 : string = "v639 * v648"                                    │
00:01:12 #2934 [Verbose] > │         let v650 : num_complex_Complex<float> =                              │
00:01:12 #2935 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v649                                  │
00:01:12 #2936 [Verbose] > │         let v651 : string = "v650 * v87"                                     │
00:01:12 #2937 [Verbose] > │         let v652 : num_complex_Complex<float> =                              │
00:01:12 #2938 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v651                                  │
00:01:12 #2939 [Verbose] > │         let v653 : string = "v652 * v71"                                     │
00:01:12 #2940 [Verbose] > │         let v654 : num_complex_Complex<float> =                              │
00:01:12 #2941 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v653                                  │
00:01:12 #2942 [Verbose] > │         let v655 : string = "v654 * v634"                                    │
00:01:12 #2943 [Verbose] > │         let v656 : num_complex_Complex<float> =                              │
00:01:12 #2944 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v655                                  │
00:01:12 #2945 [Verbose] > │         v656                                                                 │
00:01:12 #2946 [Verbose] > │ and method43 (v0 : bool) : bool =                                            │
00:01:12 #2947 [Verbose] > │     v0                                                                       │
00:01:12 #2948 [Verbose] > │ and method1 (v0 : pyo3_Python) : unit =                                      │
00:01:12 #2949 [Verbose] > │     let v1 : float = method2()                                               │
00:01:12 #2950 [Verbose] > │     let v2 : float = method3(v1)                                             │
00:01:12 #2951 [Verbose] > │     let v3 : float = method4()                                               │
00:01:12 #2952 [Verbose] > │     let v4 : string = "num_complex::Complex::new(v2, v3)"                    │
00:01:12 #2953 [Verbose] > │     let v5 : num_complex_Complex<float> =                                    │
00:01:12 #2954 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v4                                    │
00:01:12 #2955 [Verbose] > │     let v6 : float = method5()                                               │
00:01:12 #2956 [Verbose] > │     let v7 : float = method3(v6)                                             │
00:01:12 #2957 [Verbose] > │     let v8 : float = method4()                                               │
00:01:12 #2958 [Verbose] > │     let v9 : string = "num_complex::Complex::new(v7, v8)"                    │
00:01:12 #2959 [Verbose] > │     let v10 : num_complex_Complex<float> =                                   │
00:01:12 #2960 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v9                                    │
00:01:12 #2961 [Verbose] > │     let v11 : (struct (num_complex_Complex<float> * float) []) = [|struct    │
00:01:12 #2962 [Verbose] > │ (v5, 1.6449340668482264); struct (v10, -0.08333333333333333)|]               │
00:01:12 #2963 [Verbose] > │     let v12 : (struct (num_complex_Complex<float> * float) []) =             │
00:01:12 #2964 [Verbose] > │ method6(v11)                                                                 │
00:01:12 #2965 [Verbose] > │     let v13 : int32 = v12.Length                                             │
00:01:12 #2966 [Verbose] > │     let v14 : Mut0 = {l0 = 0} : Mut0                                         │
00:01:12 #2967 [Verbose] > │     while method7(v13, v14) do                                               │
00:01:12 #2968 [Verbose] > │         let v16 : int32 = v14.l0                                             │
00:01:12 #2969 [Verbose] > │         let struct (v17 : num_complex_Complex<float>, v18 : float) = v12.[   │
00:01:12 #2970 [Verbose] > │ int v16]                                                                     │
00:01:12 #2971 [Verbose] > │         let v19 : string = $"        s = mpmath.zeta(s)"                     │
00:01:12 #2972 [Verbose] > │         let v20 : num_complex_Complex<float> = method8(v17)                  │
00:01:12 #2973 [Verbose] > │         let v21 : Result<num_complex_Complex<float>, std_string_String> =    │
00:01:12 #2974 [Verbose] > │ method9(v0, v19, v20)                                                        │
00:01:12 #2975 [Verbose] > │         let v22 : num_complex_Complex<float> = method33(v0, v17)             │
00:01:12 #2976 [Verbose] > │         let v23 : string = "v21.ok()"                                        │
00:01:12 #2977 [Verbose] > │         let v24 : num_complex_Complex<float> option =                        │
00:01:12 #2978 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v23                                   │
00:01:12 #2979 [Verbose] > │         let v25 : (num_complex_Complex<float> -> US0) = closure5()           │
00:01:12 #2980 [Verbose] > │         let v26 : US0 = US0_0                                                │
00:01:12 #2981 [Verbose] > │         let v27 : US0 = v24 |> Option.map v25 |> Option.defaultValue v26     │
00:01:12 #2982 [Verbose] > │         let v28 : string = "f64::NAN"                                        │
00:01:12 #2983 [Verbose] > │         let v29 : float = Fable.Core.RustInterop.emitRustExpr () v28         │
00:01:12 #2984 [Verbose] > │         let v30 : string = "f64::NAN"                                        │
00:01:12 #2985 [Verbose] > │         let v31 : float = Fable.Core.RustInterop.emitRustExpr () v30         │
00:01:12 #2986 [Verbose] > │         let v32 : float = method31(v29)                                      │
00:01:12 #2987 [Verbose] > │         let v33 : float = method3(v32)                                       │
00:01:12 #2988 [Verbose] > │         let v34 : float = method32(v31)                                      │
00:01:12 #2989 [Verbose] > │         let v35 : string = "num_complex::Complex::new(v33, v34)"             │
00:01:12 #2990 [Verbose] > │         let v36 : num_complex_Complex<float> =                               │
00:01:12 #2991 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v35                                   │
00:01:12 #2992 [Verbose] > │         let v39 : num_complex_Complex<float> =                               │
00:01:12 #2993 [Verbose] > │             match v27 with                                                   │
00:01:12 #2994 [Verbose] > │             | US0_0 -> (* None *)                                            │
00:01:12 #2995 [Verbose] > │                 v36                                                          │
00:01:12 #2996 [Verbose] > │             | US0_1(v37) -> (* Some *)                                       │
00:01:12 #2997 [Verbose] > │                 v37                                                          │
00:01:12 #2998 [Verbose] > │         let v40 : num_complex_Complex<float> = method14(v39)                 │
00:01:12 #2999 [Verbose] > │         let v41 : string = "v40.im"                                          │
00:01:12 #3000 [Verbose] > │         let v42 : float = Fable.Core.RustInterop.emitRustExpr () v41         │
00:01:12 #3001 [Verbose] > │         let v43 : string = $"%A{v42}"                                        │
00:01:12 #3002 [Verbose] > │         System.Console.WriteLine v43                                         │
00:01:12 #3003 [Verbose] > │         let v44 : bool = v42 = 0.0                                           │
00:01:12 #3004 [Verbose] > │         let v46 : bool =                                                     │
00:01:12 #3005 [Verbose] > │             if v44 then                                                      │
00:01:12 #3006 [Verbose] > │                 true                                                         │
00:01:12 #3007 [Verbose] > │             else                                                             │
00:01:12 #3008 [Verbose] > │                 method43(v44)                                                │
00:01:12 #3009 [Verbose] > │         let v47 : string = $"__expect / actual: %A{v42} / expected: %A{0.0}" │
00:01:12 #3010 [Verbose] > │         let v48 : bool = v46 = false                                         │
00:01:12 #3011 [Verbose] > │         if v48 then                                                          │
00:01:12 #3012 [Verbose] > │             failwith<unit> v47                                               │
00:01:12 #3013 [Verbose] > │         let v49 : num_complex_Complex<float> = method13(v39)                 │
00:01:12 #3014 [Verbose] > │         let v50 : string = "v49.re"                                          │
00:01:12 #3015 [Verbose] > │         let v51 : float = Fable.Core.RustInterop.emitRustExpr () v50         │
00:01:12 #3016 [Verbose] > │         let v52 : float = v51 - v18                                          │
00:01:12 #3017 [Verbose] > │         let v53 : float =  -v52                                              │
00:01:12 #3018 [Verbose] > │         let v54 : bool = v52 >= v53                                          │
00:01:12 #3019 [Verbose] > │         let v55 : float =                                                    │
00:01:12 #3020 [Verbose] > │             if v54 then                                                      │
00:01:12 #3021 [Verbose] > │                 v52                                                          │
00:01:12 #3022 [Verbose] > │             else                                                             │
00:01:12 #3023 [Verbose] > │                 v53                                                          │
00:01:12 #3024 [Verbose] > │         let v56 : string = $"%A{v55}"                                        │
00:01:12 #3025 [Verbose] > │         System.Console.WriteLine v56                                         │
00:01:12 #3026 [Verbose] > │         let v57 : bool = v55 < 0.0001                                        │
00:01:12 #3027 [Verbose] > │         let v59 : bool =                                                     │
00:01:12 #3028 [Verbose] > │             if v57 then                                                      │
00:01:12 #3029 [Verbose] > │                 true                                                         │
00:01:12 #3030 [Verbose] > │             else                                                             │
00:01:12 #3031 [Verbose] > │                 method43(v57)                                                │
00:01:12 #3032 [Verbose] > │         let v60 : string = $"__expect / actual: %A{v55} / expected:          │
00:01:12 #3033 [Verbose] > │ %A{0.0001}"                                                                  │
00:01:12 #3034 [Verbose] > │         let v61 : bool = v59 = false                                         │
00:01:12 #3035 [Verbose] > │         if v61 then                                                          │
00:01:12 #3036 [Verbose] > │             failwith<unit> v60                                               │
00:01:12 #3037 [Verbose] > │         let v62 : int32 = v16 + 1                                            │
00:01:12 #3038 [Verbose] > │         v14.l0 <- v62                                                        │
00:01:12 #3039 [Verbose] > │         ()                                                                   │
00:01:12 #3040 [Verbose] > │     ()                                                                       │
00:01:12 #3041 [Verbose] > │ and method44 (v0 : Result<unit, pyo3_PyErr>) : Result<unit, pyo3_PyErr> =    │
00:01:12 #3042 [Verbose] > │     v0                                                                       │
00:01:12 #3043 [Verbose] > │ and method45 (v0 : Result<unit, pyo3_PyErr>) : Result<unit, pyo3_PyErr> =    │
00:01:12 #3044 [Verbose] > │     v0                                                                       │
00:01:12 #3045 [Verbose] > │ and method0 () : unit =                                                      │
00:01:12 #3046 [Verbose] > │     let v0 : string = "pyo3::prepare_freethreaded_python()"                  │
00:01:12 #3047 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v0                                │
00:01:12 #3048 [Verbose] > │     let v1 : string = "let __result = pyo3::Python::with_gil(|py| ->         │
00:01:12 #3049 [Verbose] > │ pyo3::PyResult<()> { //"                                                     │
00:01:12 #3050 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v1                                │
00:01:12 #3051 [Verbose] > │     let v2 : string = "py"                                                   │
00:01:12 #3052 [Verbose] > │     let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2         │
00:01:12 #3053 [Verbose] > │     method1(v3)                                                              │
00:01:12 #3054 [Verbose] > │     let v4 : Result<unit, pyo3_PyErr> = Ok ()                                │
00:01:12 #3055 [Verbose] > │     let v5 : Result<unit, pyo3_PyErr> = method44(v4)                         │
00:01:12 #3056 [Verbose] > │     let v6 : string = "v5 }})"                                               │
00:01:12 #3057 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v6                                │
00:01:12 #3058 [Verbose] > │     let v7 : string = "{ //"                                                 │
00:01:12 #3059 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v7                                │
00:01:12 #3060 [Verbose] > │     let v8 : string = "__result"                                             │
00:01:12 #3061 [Verbose] > │     let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr  │
00:01:12 #3062 [Verbose] > │ () v8                                                                        │
00:01:12 #3063 [Verbose] > │     let v10 : Result<unit, pyo3_PyErr> = method45(v9)                        │
00:01:12 #3064 [Verbose] > │     let v11 : string = "v10.unwrap()"                                        │
00:01:12 #3065 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v11                               │
00:01:12 #3066 [Verbose] > │     ()                                                                       │
00:01:12 #3067 [Verbose] > │ and method48 () : float =                                                    │
00:01:12 #3068 [Verbose] > │     -2.0                                                                     │
00:01:12 #3069 [Verbose] > │ and method47 (v0 : pyo3_Python) : unit =                                     │
00:01:12 #3070 [Verbose] > │     let v1 : float = method2()                                               │
00:01:12 #3071 [Verbose] > │     let v2 : float = method3(v1)                                             │
00:01:12 #3072 [Verbose] > │     let v3 : float = method48()                                              │
00:01:12 #3073 [Verbose] > │     let v4 : string = "num_complex::Complex::new(v2, v3)"                    │
00:01:12 #3074 [Verbose] > │     let v5 : num_complex_Complex<float> =                                    │
00:01:12 #3075 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v4                                    │
00:01:12 #3076 [Verbose] > │     let v6 : string = $"        s = mpmath.zeta(s)"                          │
00:01:12 #3077 [Verbose] > │     let v7 : num_complex_Complex<float> = method8(v5)                        │
00:01:12 #3078 [Verbose] > │     let v8 : Result<num_complex_Complex<float>, std_string_String> =         │
00:01:12 #3079 [Verbose] > │ method9(v0, v6, v7)                                                          │
00:01:12 #3080 [Verbose] > │     let v9 : num_complex_Complex<float> = method33(v0, v5)                   │
00:01:12 #3081 [Verbose] > │     let v10 : string = "v8.ok()"                                             │
00:01:12 #3082 [Verbose] > │     let v11 : num_complex_Complex<float> option =                            │
00:01:12 #3083 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v10                                   │
00:01:12 #3084 [Verbose] > │     let v12 : (num_complex_Complex<float> -> US0) = closure5()               │
00:01:12 #3085 [Verbose] > │     let v13 : US0 = US0_0                                                    │
00:01:12 #3086 [Verbose] > │     let v14 : US0 = v11 |> Option.map v12 |> Option.defaultValue v13         │
00:01:12 #3087 [Verbose] > │     let v15 : string = "f64::NAN"                                            │
00:01:12 #3088 [Verbose] > │     let v16 : float = Fable.Core.RustInterop.emitRustExpr () v15             │
00:01:12 #3089 [Verbose] > │     let v17 : string = "f64::NAN"                                            │
00:01:12 #3090 [Verbose] > │     let v18 : float = Fable.Core.RustInterop.emitRustExpr () v17             │
00:01:12 #3091 [Verbose] > │     let v19 : float = method31(v16)                                          │
00:01:12 #3092 [Verbose] > │     let v20 : float = method3(v19)                                           │
00:01:12 #3093 [Verbose] > │     let v21 : float = method32(v18)                                          │
00:01:12 #3094 [Verbose] > │     let v22 : string = "num_complex::Complex::new(v20, v21)"                 │
00:01:12 #3095 [Verbose] > │     let v23 : num_complex_Complex<float> =                                   │
00:01:12 #3096 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v22                                   │
00:01:12 #3097 [Verbose] > │     let v26 : num_complex_Complex<float> =                                   │
00:01:12 #3098 [Verbose] > │         match v14 with                                                       │
00:01:12 #3099 [Verbose] > │         | US0_0 -> (* None *)                                                │
00:01:12 #3100 [Verbose] > │             v23                                                              │
00:01:12 #3101 [Verbose] > │         | US0_1(v24) -> (* Some *)                                           │
00:01:12 #3102 [Verbose] > │             v24                                                              │
00:01:12 #3103 [Verbose] > │     let v27 : num_complex_Complex<float> = method13(v26)                     │
00:01:12 #3104 [Verbose] > │     let v28 : string = "v27.re"                                              │
00:01:12 #3105 [Verbose] > │     let v29 : float = Fable.Core.RustInterop.emitRustExpr () v28             │
00:01:12 #3106 [Verbose] > │     let v30 : float = v29 - 0.8673                                           │
00:01:12 #3107 [Verbose] > │     let v31 : float =  -v30                                                  │
00:01:12 #3108 [Verbose] > │     let v32 : bool = v30 >= v31                                              │
00:01:12 #3109 [Verbose] > │     let v33 : float =                                                        │
00:01:12 #3110 [Verbose] > │         if v32 then                                                          │
00:01:12 #3111 [Verbose] > │             v30                                                              │
00:01:12 #3112 [Verbose] > │         else                                                                 │
00:01:12 #3113 [Verbose] > │             v31                                                              │
00:01:12 #3114 [Verbose] > │     let v34 : string = $"%A{v33}"                                            │
00:01:12 #3115 [Verbose] > │     System.Console.WriteLine v34                                             │
00:01:12 #3116 [Verbose] > │     let v35 : bool = v33 < 0.001                                             │
00:01:12 #3117 [Verbose] > │     let v37 : bool =                                                         │
00:01:12 #3118 [Verbose] > │         if v35 then                                                          │
00:01:12 #3119 [Verbose] > │             true                                                             │
00:01:12 #3120 [Verbose] > │         else                                                                 │
00:01:12 #3121 [Verbose] > │             method43(v35)                                                    │
00:01:12 #3122 [Verbose] > │     let v38 : string = $"__expect / actual: %A{v33} / expected: %A{0.001}"   │
00:01:12 #3123 [Verbose] > │     let v39 : bool = v37 = false                                             │
00:01:12 #3124 [Verbose] > │     if v39 then                                                              │
00:01:12 #3125 [Verbose] > │         failwith<unit> v38                                                   │
00:01:12 #3126 [Verbose] > │     let v40 : num_complex_Complex<float> = method14(v26)                     │
00:01:12 #3127 [Verbose] > │     let v41 : string = "v40.im"                                              │
00:01:12 #3128 [Verbose] > │     let v42 : float = Fable.Core.RustInterop.emitRustExpr () v41             │
00:01:12 #3129 [Verbose] > │     let v43 : float = v42 - 0.275                                            │
00:01:12 #3130 [Verbose] > │     let v44 : float =  -v43                                                  │
00:01:12 #3131 [Verbose] > │     let v45 : bool = v43 >= v44                                              │
00:01:12 #3132 [Verbose] > │     let v46 : float =                                                        │
00:01:12 #3133 [Verbose] > │         if v45 then                                                          │
00:01:12 #3134 [Verbose] > │             v43                                                              │
00:01:12 #3135 [Verbose] > │         else                                                                 │
00:01:12 #3136 [Verbose] > │             v44                                                              │
00:01:12 #3137 [Verbose] > │     let v47 : string = $"%A{v46}"                                            │
00:01:12 #3138 [Verbose] > │     System.Console.WriteLine v47                                             │
00:01:12 #3139 [Verbose] > │     let v48 : bool = v46 < 0.001                                             │
00:01:12 #3140 [Verbose] > │     let v50 : bool =                                                         │
00:01:12 #3141 [Verbose] > │         if v48 then                                                          │
00:01:12 #3142 [Verbose] > │             true                                                             │
00:01:12 #3143 [Verbose] > │         else                                                                 │
00:01:12 #3144 [Verbose] > │             method43(v48)                                                    │
00:01:12 #3145 [Verbose] > │     let v51 : string = $"__expect / actual: %A{v46} / expected: %A{0.001}"   │
00:01:12 #3146 [Verbose] > │     let v52 : bool = v50 = false                                             │
00:01:12 #3147 [Verbose] > │     if v52 then                                                              │
00:01:12 #3148 [Verbose] > │         failwith<unit> v51                                                   │
00:01:12 #3149 [Verbose] > │ and method46 () : unit =                                                     │
00:01:12 #3150 [Verbose] > │     let v0 : string = "pyo3::prepare_freethreaded_python()"                  │
00:01:12 #3151 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v0                                │
00:01:12 #3152 [Verbose] > │     let v1 : string = "let __result = pyo3::Python::with_gil(|py| ->         │
00:01:12 #3153 [Verbose] > │ pyo3::PyResult<()> { //"                                                     │
00:01:12 #3154 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v1                                │
00:01:12 #3155 [Verbose] > │     let v2 : string = "py"                                                   │
00:01:12 #3156 [Verbose] > │     let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2         │
00:01:12 #3157 [Verbose] > │     method47(v3)                                                             │
00:01:12 #3158 [Verbose] > │     let v4 : Result<unit, pyo3_PyErr> = Ok ()                                │
00:01:12 #3159 [Verbose] > │     let v5 : Result<unit, pyo3_PyErr> = method44(v4)                         │
00:01:12 #3160 [Verbose] > │     let v6 : string = "v5 }})"                                               │
00:01:12 #3161 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v6                                │
00:01:12 #3162 [Verbose] > │     let v7 : string = "{ //"                                                 │
00:01:12 #3163 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v7                                │
00:01:12 #3164 [Verbose] > │     let v8 : string = "__result"                                             │
00:01:12 #3165 [Verbose] > │     let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr  │
00:01:12 #3166 [Verbose] > │ () v8                                                                        │
00:01:12 #3167 [Verbose] > │     let v10 : Result<unit, pyo3_PyErr> = method45(v9)                        │
00:01:12 #3168 [Verbose] > │     let v11 : string = "v10.unwrap()"                                        │
00:01:12 #3169 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v11                               │
00:01:12 #3170 [Verbose] > │     ()                                                                       │
00:01:12 #3171 [Verbose] > │ and method51 () : UH0 =                                                      │
00:01:12 #3172 [Verbose] > │     let v0 : UH0 = UH0_1                                                     │
00:01:12 #3173 [Verbose] > │     let v1 : UH0 = UH0_0(-40.0, v0)                                          │
00:01:12 #3174 [Verbose] > │     let v2 : UH0 = UH0_0(-38.0, v1)                                          │
00:01:12 #3175 [Verbose] > │     let v3 : UH0 = UH0_0(-36.0, v2)                                          │
00:01:12 #3176 [Verbose] > │     let v4 : UH0 = UH0_0(-34.0, v3)                                          │
00:01:12 #3177 [Verbose] > │     let v5 : UH0 = UH0_0(-32.0, v4)                                          │
00:01:12 #3178 [Verbose] > │     let v6 : UH0 = UH0_0(-30.0, v5)                                          │
00:01:12 #3179 [Verbose] > │     let v7 : UH0 = UH0_0(-28.0, v6)                                          │
00:01:12 #3180 [Verbose] > │     let v8 : UH0 = UH0_0(-26.0, v7)                                          │
00:01:12 #3181 [Verbose] > │     let v9 : UH0 = UH0_0(-24.0, v8)                                          │
00:01:12 #3182 [Verbose] > │     let v10 : UH0 = UH0_0(-22.0, v9)                                         │
00:01:12 #3183 [Verbose] > │     let v11 : UH0 = UH0_0(-20.0, v10)                                        │
00:01:12 #3184 [Verbose] > │     let v12 : UH0 = UH0_0(-18.0, v11)                                        │
00:01:12 #3185 [Verbose] > │     let v13 : UH0 = UH0_0(-16.0, v12)                                        │
00:01:12 #3186 [Verbose] > │     let v14 : UH0 = UH0_0(-14.0, v13)                                        │
00:01:12 #3187 [Verbose] > │     let v15 : UH0 = UH0_0(-12.0, v14)                                        │
00:01:12 #3188 [Verbose] > │     let v16 : UH0 = UH0_0(-10.0, v15)                                        │
00:01:12 #3189 [Verbose] > │     let v17 : UH0 = UH0_0(-8.0, v16)                                         │
00:01:12 #3190 [Verbose] > │     let v18 : UH0 = UH0_0(-6.0, v17)                                         │
00:01:12 #3191 [Verbose] > │     let v19 : UH0 = UH0_0(-4.0, v18)                                         │
00:01:12 #3192 [Verbose] > │     UH0_0(-2.0, v19)                                                         │
00:01:12 #3193 [Verbose] > │ and method52 (v0 : pyo3_Python, v1 : UH0) : unit =                           │
00:01:12 #3194 [Verbose] > │     match v1 with                                                            │
00:01:12 #3195 [Verbose] > │     | UH0_0(v2, v3) -> (* Cons *)                                            │
00:01:12 #3196 [Verbose] > │         let v4 : float = method31(v2)                                        │
00:01:12 #3197 [Verbose] > │         let v5 : float = method3(v4)                                         │
00:01:12 #3198 [Verbose] > │         let v6 : float = method4()                                           │
00:01:12 #3199 [Verbose] > │         let v7 : string = "num_complex::Complex::new(v5, v6)"                │
00:01:12 #3200 [Verbose] > │         let v8 : num_complex_Complex<float> =                                │
00:01:12 #3201 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v7                                    │
00:01:12 #3202 [Verbose] > │         let v9 : string = $"        s = mpmath.zeta(s)"                      │
00:01:12 #3203 [Verbose] > │         let v10 : num_complex_Complex<float> = method8(v8)                   │
00:01:12 #3204 [Verbose] > │         let v11 : Result<num_complex_Complex<float>, std_string_String> =    │
00:01:12 #3205 [Verbose] > │ method9(v0, v9, v10)                                                         │
00:01:12 #3206 [Verbose] > │         let v12 : num_complex_Complex<float> = method33(v0, v8)              │
00:01:12 #3207 [Verbose] > │         let v13 : string = "v11.ok()"                                        │
00:01:12 #3208 [Verbose] > │         let v14 : num_complex_Complex<float> option =                        │
00:01:12 #3209 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v13                                   │
00:01:12 #3210 [Verbose] > │         let v15 : (num_complex_Complex<float> -> US0) = closure5()           │
00:01:12 #3211 [Verbose] > │         let v16 : US0 = US0_0                                                │
00:01:12 #3212 [Verbose] > │         let v17 : US0 = v14 |> Option.map v15 |> Option.defaultValue v16     │
00:01:12 #3213 [Verbose] > │         let v18 : string = "f64::NAN"                                        │
00:01:12 #3214 [Verbose] > │         let v19 : float = Fable.Core.RustInterop.emitRustExpr () v18         │
00:01:12 #3215 [Verbose] > │         let v20 : string = "f64::NAN"                                        │
00:01:12 #3216 [Verbose] > │         let v21 : float = Fable.Core.RustInterop.emitRustExpr () v20         │
00:01:12 #3217 [Verbose] > │         let v22 : float = method31(v19)                                      │
00:01:12 #3218 [Verbose] > │         let v23 : float = method3(v22)                                       │
00:01:12 #3219 [Verbose] > │         let v24 : float = method32(v21)                                      │
00:01:12 #3220 [Verbose] > │         let v25 : string = "num_complex::Complex::new(v23, v24)"             │
00:01:12 #3221 [Verbose] > │         let v26 : num_complex_Complex<float> =                               │
00:01:12 #3222 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v25                                   │
00:01:12 #3223 [Verbose] > │         let v29 : num_complex_Complex<float> =                               │
00:01:12 #3224 [Verbose] > │             match v17 with                                                   │
00:01:12 #3225 [Verbose] > │             | US0_0 -> (* None *)                                            │
00:01:12 #3226 [Verbose] > │                 v26                                                          │
00:01:12 #3227 [Verbose] > │             | US0_1(v27) -> (* Some *)                                       │
00:01:12 #3228 [Verbose] > │                 v27                                                          │
00:01:12 #3229 [Verbose] > │         let v30 : num_complex_Complex<float> = method13(v29)                 │
00:01:12 #3230 [Verbose] > │         let v31 : string = "v30.re"                                          │
00:01:12 #3231 [Verbose] > │         let v32 : float = Fable.Core.RustInterop.emitRustExpr () v31         │
00:01:12 #3232 [Verbose] > │         let v33 : string = $"%A{v32}"                                        │
00:01:12 #3233 [Verbose] > │         System.Console.WriteLine v33                                         │
00:01:12 #3234 [Verbose] > │         let v34 : bool = v32 = 0.0                                           │
00:01:12 #3235 [Verbose] > │         let v36 : bool =                                                     │
00:01:12 #3236 [Verbose] > │             if v34 then                                                      │
00:01:12 #3237 [Verbose] > │                 true                                                         │
00:01:12 #3238 [Verbose] > │             else                                                             │
00:01:12 #3239 [Verbose] > │                 method43(v34)                                                │
00:01:12 #3240 [Verbose] > │         let v37 : string = $"__expect / actual: %A{v32} / expected: %A{0.0}" │
00:01:12 #3241 [Verbose] > │         let v38 : bool = v36 = false                                         │
00:01:12 #3242 [Verbose] > │         if v38 then                                                          │
00:01:12 #3243 [Verbose] > │             failwith<unit> v37                                               │
00:01:12 #3244 [Verbose] > │         let v39 : num_complex_Complex<float> = method14(v29)                 │
00:01:12 #3245 [Verbose] > │         let v40 : string = "v39.im"                                          │
00:01:12 #3246 [Verbose] > │         let v41 : float = Fable.Core.RustInterop.emitRustExpr () v40         │
00:01:12 #3247 [Verbose] > │         let v42 : string = $"%A{v41}"                                        │
00:01:12 #3248 [Verbose] > │         System.Console.WriteLine v42                                         │
00:01:12 #3249 [Verbose] > │         let v43 : bool = v41 = 0.0                                           │
00:01:12 #3250 [Verbose] > │         let v45 : bool =                                                     │
00:01:12 #3251 [Verbose] > │             if v43 then                                                      │
00:01:12 #3252 [Verbose] > │                 true                                                         │
00:01:12 #3253 [Verbose] > │             else                                                             │
00:01:12 #3254 [Verbose] > │                 method43(v43)                                                │
00:01:12 #3255 [Verbose] > │         let v46 : string = $"__expect / actual: %A{v41} / expected: %A{0.0}" │
00:01:12 #3256 [Verbose] > │         let v47 : bool = v45 = false                                         │
00:01:12 #3257 [Verbose] > │         if v47 then                                                          │
00:01:12 #3258 [Verbose] > │             failwith<unit> v46                                               │
00:01:12 #3259 [Verbose] > │         method52(v0, v3)                                                     │
00:01:12 #3260 [Verbose] > │     | UH0_1 -> (* Nil *)                                                     │
00:01:12 #3261 [Verbose] > │         ()                                                                   │
00:01:12 #3262 [Verbose] > │ and method50 (v0 : pyo3_Python) : unit =                                     │
00:01:12 #3263 [Verbose] > │     let v1 : UH0 = method51()                                                │
00:01:12 #3264 [Verbose] > │     method52(v0, v1)                                                         │
00:01:12 #3265 [Verbose] > │ and method49 () : unit =                                                     │
00:01:12 #3266 [Verbose] > │     let v0 : string = "pyo3::prepare_freethreaded_python()"                  │
00:01:12 #3267 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v0                                │
00:01:12 #3268 [Verbose] > │     let v1 : string = "let __result = pyo3::Python::with_gil(|py| ->         │
00:01:12 #3269 [Verbose] > │ pyo3::PyResult<()> { //"                                                     │
00:01:12 #3270 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v1                                │
00:01:12 #3271 [Verbose] > │     let v2 : string = "py"                                                   │
00:01:12 #3272 [Verbose] > │     let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2         │
00:01:12 #3273 [Verbose] > │     method50(v3)                                                             │
00:01:12 #3274 [Verbose] > │     let v4 : Result<unit, pyo3_PyErr> = Ok ()                                │
00:01:12 #3275 [Verbose] > │     let v5 : Result<unit, pyo3_PyErr> = method44(v4)                         │
00:01:12 #3276 [Verbose] > │     let v6 : string = "v5 }})"                                               │
00:01:12 #3277 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v6                                │
00:01:12 #3278 [Verbose] > │     let v7 : string = "{ //"                                                 │
00:01:12 #3279 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v7                                │
00:01:12 #3280 [Verbose] > │     let v8 : string = "__result"                                             │
00:01:12 #3281 [Verbose] > │     let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr  │
00:01:12 #3282 [Verbose] > │ () v8                                                                        │
00:01:12 #3283 [Verbose] > │     let v10 : Result<unit, pyo3_PyErr> = method45(v9)                        │
00:01:12 #3284 [Verbose] > │     let v11 : string = "v10.unwrap()"                                        │
00:01:12 #3285 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v11                               │
00:01:12 #3286 [Verbose] > │     ()                                                                       │
00:01:12 #3287 [Verbose] > │ and method55 () : float =                                                    │
00:01:12 #3288 [Verbose] > │     0.5                                                                      │
00:01:12 #3289 [Verbose] > │ and method56 () : float =                                                    │
00:01:12 #3290 [Verbose] > │     14.134725                                                                │
00:01:12 #3291 [Verbose] > │ and method57 () : float =                                                    │
00:01:12 #3292 [Verbose] > │     21.02204                                                                 │
00:01:12 #3293 [Verbose] > │ and method58 () : float =                                                    │
00:01:12 #3294 [Verbose] > │     25.010857                                                                │
00:01:12 #3295 [Verbose] > │ and method59 () : float =                                                    │
00:01:12 #3296 [Verbose] > │     30.424876                                                                │
00:01:12 #3297 [Verbose] > │ and method60 () : float =                                                    │
00:01:12 #3298 [Verbose] > │     32.935062                                                                │
00:01:12 #3299 [Verbose] > │ and method61 () : float =                                                    │
00:01:12 #3300 [Verbose] > │     37.586178                                                                │
00:01:12 #3301 [Verbose] > │ and method62 (v0 : (num_complex_Complex<float> [])) :                        │
00:01:12 #3302 [Verbose] > │ (num_complex_Complex<float> []) =                                            │
00:01:12 #3303 [Verbose] > │     v0                                                                       │
00:01:12 #3304 [Verbose] > │ and method54 (v0 : pyo3_Python) : unit =                                     │
00:01:12 #3305 [Verbose] > │     let v1 : float = method55()                                              │
00:01:12 #3306 [Verbose] > │     let v2 : float = method3(v1)                                             │
00:01:12 #3307 [Verbose] > │     let v3 : float = method56()                                              │
00:01:12 #3308 [Verbose] > │     let v4 : string = "num_complex::Complex::new(v2, v3)"                    │
00:01:12 #3309 [Verbose] > │     let v5 : num_complex_Complex<float> =                                    │
00:01:12 #3310 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v4                                    │
00:01:12 #3311 [Verbose] > │     let v6 : float = method55()                                              │
00:01:12 #3312 [Verbose] > │     let v7 : float = method3(v6)                                             │
00:01:12 #3313 [Verbose] > │     let v8 : float = method57()                                              │
00:01:12 #3314 [Verbose] > │     let v9 : string = "num_complex::Complex::new(v7, v8)"                    │
00:01:12 #3315 [Verbose] > │     let v10 : num_complex_Complex<float> =                                   │
00:01:12 #3316 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v9                                    │
00:01:12 #3317 [Verbose] > │     let v11 : float = method55()                                             │
00:01:12 #3318 [Verbose] > │     let v12 : float = method3(v11)                                           │
00:01:12 #3319 [Verbose] > │     let v13 : float = method58()                                             │
00:01:12 #3320 [Verbose] > │     let v14 : string = "num_complex::Complex::new(v12, v13)"                 │
00:01:12 #3321 [Verbose] > │     let v15 : num_complex_Complex<float> =                                   │
00:01:12 #3322 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v14                                   │
00:01:12 #3323 [Verbose] > │     let v16 : float = method55()                                             │
00:01:12 #3324 [Verbose] > │     let v17 : float = method3(v16)                                           │
00:01:12 #3325 [Verbose] > │     let v18 : float = method59()                                             │
00:01:12 #3326 [Verbose] > │     let v19 : string = "num_complex::Complex::new(v17, v18)"                 │
00:01:12 #3327 [Verbose] > │     let v20 : num_complex_Complex<float> =                                   │
00:01:12 #3328 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v19                                   │
00:01:12 #3329 [Verbose] > │     let v21 : float = method55()                                             │
00:01:12 #3330 [Verbose] > │     let v22 : float = method3(v21)                                           │
00:01:12 #3331 [Verbose] > │     let v23 : float = method60()                                             │
00:01:12 #3332 [Verbose] > │     let v24 : string = "num_complex::Complex::new(v22, v23)"                 │
00:01:12 #3333 [Verbose] > │     let v25 : num_complex_Complex<float> =                                   │
00:01:12 #3334 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v24                                   │
00:01:12 #3335 [Verbose] > │     let v26 : float = method55()                                             │
00:01:12 #3336 [Verbose] > │     let v27 : float = method3(v26)                                           │
00:01:12 #3337 [Verbose] > │     let v28 : float = method61()                                             │
00:01:12 #3338 [Verbose] > │     let v29 : string = "num_complex::Complex::new(v27, v28)"                 │
00:01:12 #3339 [Verbose] > │     let v30 : num_complex_Complex<float> =                                   │
00:01:12 #3340 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v29                                   │
00:01:12 #3341 [Verbose] > │     let v31 : (num_complex_Complex<float> []) = [|v5; v10; v15; v20; v25;    │
00:01:12 #3342 [Verbose] > │ v30|]                                                                        │
00:01:12 #3343 [Verbose] > │     let v32 : (num_complex_Complex<float> []) = method62(v31)                │
00:01:12 #3344 [Verbose] > │     let v33 : int32 = v32.Length                                             │
00:01:12 #3345 [Verbose] > │     let v34 : Mut0 = {l0 = 0} : Mut0                                         │
00:01:12 #3346 [Verbose] > │     while method7(v33, v34) do                                               │
00:01:12 #3347 [Verbose] > │         let v36 : int32 = v34.l0                                             │
00:01:12 #3348 [Verbose] > │         let v37 : num_complex_Complex<float> = v32.[int v36]                 │
00:01:12 #3349 [Verbose] > │         let v38 : string = $"        s = mpmath.zeta(s)"                     │
00:01:12 #3350 [Verbose] > │         let v39 : num_complex_Complex<float> = method8(v37)                  │
00:01:12 #3351 [Verbose] > │         let v40 : Result<num_complex_Complex<float>, std_string_String> =    │
00:01:12 #3352 [Verbose] > │ method9(v0, v38, v39)                                                        │
00:01:12 #3353 [Verbose] > │         let v41 : num_complex_Complex<float> = method33(v0, v37)             │
00:01:12 #3354 [Verbose] > │         let v42 : string = "v40.ok()"                                        │
00:01:12 #3355 [Verbose] > │         let v43 : num_complex_Complex<float> option =                        │
00:01:12 #3356 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v42                                   │
00:01:12 #3357 [Verbose] > │         let v44 : (num_complex_Complex<float> -> US0) = closure5()           │
00:01:12 #3358 [Verbose] > │         let v45 : US0 = US0_0                                                │
00:01:12 #3359 [Verbose] > │         let v46 : US0 = v43 |> Option.map v44 |> Option.defaultValue v45     │
00:01:12 #3360 [Verbose] > │         let v47 : string = "f64::NAN"                                        │
00:01:12 #3361 [Verbose] > │         let v48 : float = Fable.Core.RustInterop.emitRustExpr () v47         │
00:01:12 #3362 [Verbose] > │         let v49 : string = "f64::NAN"                                        │
00:01:12 #3363 [Verbose] > │         let v50 : float = Fable.Core.RustInterop.emitRustExpr () v49         │
00:01:12 #3364 [Verbose] > │         let v51 : float = method31(v48)                                      │
00:01:12 #3365 [Verbose] > │         let v52 : float = method3(v51)                                       │
00:01:12 #3366 [Verbose] > │         let v53 : float = method32(v50)                                      │
00:01:12 #3367 [Verbose] > │         let v54 : string = "num_complex::Complex::new(v52, v53)"             │
00:01:12 #3368 [Verbose] > │         let v55 : num_complex_Complex<float> =                               │
00:01:12 #3369 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v54                                   │
00:01:12 #3370 [Verbose] > │         let v58 : num_complex_Complex<float> =                               │
00:01:12 #3371 [Verbose] > │             match v46 with                                                   │
00:01:12 #3372 [Verbose] > │             | US0_0 -> (* None *)                                            │
00:01:12 #3373 [Verbose] > │                 v55                                                          │
00:01:12 #3374 [Verbose] > │             | US0_1(v56) -> (* Some *)                                       │
00:01:12 #3375 [Verbose] > │                 v56                                                          │
00:01:12 #3376 [Verbose] > │         let v59 : num_complex_Complex<float> = method13(v58)                 │
00:01:12 #3377 [Verbose] > │         let v60 : string = "v59.re"                                          │
00:01:12 #3378 [Verbose] > │         let v61 : float = Fable.Core.RustInterop.emitRustExpr () v60         │
00:01:12 #3379 [Verbose] > │         let v62 : float =  -v61                                              │
00:01:12 #3380 [Verbose] > │         let v63 : bool = v61 >= v62                                          │
00:01:12 #3381 [Verbose] > │         let v64 : float =                                                    │
00:01:12 #3382 [Verbose] > │             if v63 then                                                      │
00:01:12 #3383 [Verbose] > │                 v61                                                          │
00:01:12 #3384 [Verbose] > │             else                                                             │
00:01:12 #3385 [Verbose] > │                 v62                                                          │
00:01:12 #3386 [Verbose] > │         let v65 : string = $"%A{v64}"                                        │
00:01:12 #3387 [Verbose] > │         System.Console.WriteLine v65                                         │
00:01:12 #3388 [Verbose] > │         let v66 : bool = v64 < 0.0001                                        │
00:01:12 #3389 [Verbose] > │         let v68 : bool =                                                     │
00:01:12 #3390 [Verbose] > │             if v66 then                                                      │
00:01:12 #3391 [Verbose] > │                 true                                                         │
00:01:12 #3392 [Verbose] > │             else                                                             │
00:01:12 #3393 [Verbose] > │                 method43(v66)                                                │
00:01:12 #3394 [Verbose] > │         let v69 : string = $"__expect / actual: %A{v64} / expected:          │
00:01:12 #3395 [Verbose] > │ %A{0.0001}"                                                                  │
00:01:12 #3396 [Verbose] > │         let v70 : bool = v68 = false                                         │
00:01:12 #3397 [Verbose] > │         if v70 then                                                          │
00:01:12 #3398 [Verbose] > │             failwith<unit> v69                                               │
00:01:12 #3399 [Verbose] > │         let v71 : num_complex_Complex<float> = method14(v58)                 │
00:01:12 #3400 [Verbose] > │         let v72 : string = "v71.im"                                          │
00:01:12 #3401 [Verbose] > │         let v73 : float = Fable.Core.RustInterop.emitRustExpr () v72         │
00:01:12 #3402 [Verbose] > │         let v74 : float =  -v73                                              │
00:01:12 #3403 [Verbose] > │         let v75 : bool = v73 >= v74                                          │
00:01:12 #3404 [Verbose] > │         let v76 : float =                                                    │
00:01:12 #3405 [Verbose] > │             if v75 then                                                      │
00:01:12 #3406 [Verbose] > │                 v73                                                          │
00:01:12 #3407 [Verbose] > │             else                                                             │
00:01:12 #3408 [Verbose] > │                 v74                                                          │
00:01:12 #3409 [Verbose] > │         let v77 : string = $"%A{v76}"                                        │
00:01:12 #3410 [Verbose] > │         System.Console.WriteLine v77                                         │
00:01:12 #3411 [Verbose] > │         let v78 : bool = v76 < 0.0001                                        │
00:01:12 #3412 [Verbose] > │         let v80 : bool =                                                     │
00:01:12 #3413 [Verbose] > │             if v78 then                                                      │
00:01:12 #3414 [Verbose] > │                 true                                                         │
00:01:12 #3415 [Verbose] > │             else                                                             │
00:01:12 #3416 [Verbose] > │                 method43(v78)                                                │
00:01:12 #3417 [Verbose] > │         let v81 : string = $"__expect / actual: %A{v76} / expected:          │
00:01:12 #3418 [Verbose] > │ %A{0.0001}"                                                                  │
00:01:12 #3419 [Verbose] > │         let v82 : bool = v80 = false                                         │
00:01:12 #3420 [Verbose] > │         if v82 then                                                          │
00:01:12 #3421 [Verbose] > │             failwith<unit> v81                                               │
00:01:12 #3422 [Verbose] > │         let v83 : int32 = v36 + 1                                            │
00:01:12 #3423 [Verbose] > │         v34.l0 <- v83                                                        │
00:01:12 #3424 [Verbose] > │         ()                                                                   │
00:01:12 #3425 [Verbose] > │     ()                                                                       │
00:01:12 #3426 [Verbose] > │ and method53 () : unit =                                                     │
00:01:12 #3427 [Verbose] > │     let v0 : string = "pyo3::prepare_freethreaded_python()"                  │
00:01:12 #3428 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v0                                │
00:01:12 #3429 [Verbose] > │     let v1 : string = "let __result = pyo3::Python::with_gil(|py| ->         │
00:01:12 #3430 [Verbose] > │ pyo3::PyResult<()> { //"                                                     │
00:01:12 #3431 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v1                                │
00:01:12 #3432 [Verbose] > │     let v2 : string = "py"                                                   │
00:01:12 #3433 [Verbose] > │     let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2         │
00:01:12 #3434 [Verbose] > │     method54(v3)                                                             │
00:01:12 #3435 [Verbose] > │     let v4 : Result<unit, pyo3_PyErr> = Ok ()                                │
00:01:12 #3436 [Verbose] > │     let v5 : Result<unit, pyo3_PyErr> = method44(v4)                         │
00:01:12 #3437 [Verbose] > │     let v6 : string = "v5 }})"                                               │
00:01:12 #3438 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v6                                │
00:01:12 #3439 [Verbose] > │     let v7 : string = "{ //"                                                 │
00:01:12 #3440 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v7                                │
00:01:12 #3441 [Verbose] > │     let v8 : string = "__result"                                             │
00:01:12 #3442 [Verbose] > │     let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr  │
00:01:12 #3443 [Verbose] > │ () v8                                                                        │
00:01:12 #3444 [Verbose] > │     let v10 : Result<unit, pyo3_PyErr> = method45(v9)                        │
00:01:12 #3445 [Verbose] > │     let v11 : string = "v10.unwrap()"                                        │
00:01:12 #3446 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v11                               │
00:01:12 #3447 [Verbose] > │     ()                                                                       │
00:01:12 #3448 [Verbose] > │ and method65 (v0 : (float [])) : (float []) =                                │
00:01:12 #3449 [Verbose] > │     v0                                                                       │
00:01:12 #3450 [Verbose] > │ and method64 (v0 : pyo3_Python) : unit =                                     │
00:01:12 #3451 [Verbose] > │     let v1 : (float []) = [|2.0; 3.0; 4.0; 5.0; 10.0; 20.0; 50.0|]           │
00:01:12 #3452 [Verbose] > │     let v2 : (float []) = method65(v1)                                       │
00:01:12 #3453 [Verbose] > │     let v3 : int32 = v2.Length                                               │
00:01:12 #3454 [Verbose] > │     let v4 : Mut0 = {l0 = 0} : Mut0                                          │
00:01:12 #3455 [Verbose] > │     while method7(v3, v4) do                                                 │
00:01:12 #3456 [Verbose] > │         let v6 : int32 = v4.l0                                               │
00:01:12 #3457 [Verbose] > │         let v7 : float = v2.[int v6]                                         │
00:01:12 #3458 [Verbose] > │         let v8 : float = method31(v7)                                        │
00:01:12 #3459 [Verbose] > │         let v9 : float = method3(v8)                                         │
00:01:12 #3460 [Verbose] > │         let v10 : float = method4()                                          │
00:01:12 #3461 [Verbose] > │         let v11 : string = "num_complex::Complex::new(v9, v10)"              │
00:01:12 #3462 [Verbose] > │         let v12 : num_complex_Complex<float> =                               │
00:01:12 #3463 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v11                                   │
00:01:12 #3464 [Verbose] > │         let v13 : string = $"        s = mpmath.zeta(s)"                     │
00:01:12 #3465 [Verbose] > │         let v14 : num_complex_Complex<float> = method8(v12)                  │
00:01:12 #3466 [Verbose] > │         let v15 : Result<num_complex_Complex<float>, std_string_String> =    │
00:01:12 #3467 [Verbose] > │ method9(v0, v13, v14)                                                        │
00:01:12 #3468 [Verbose] > │         let v16 : num_complex_Complex<float> = method33(v0, v12)             │
00:01:12 #3469 [Verbose] > │         let v17 : string = "v15.ok()"                                        │
00:01:12 #3470 [Verbose] > │         let v18 : num_complex_Complex<float> option =                        │
00:01:12 #3471 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v17                                   │
00:01:12 #3472 [Verbose] > │         let v19 : (num_complex_Complex<float> -> US0) = closure5()           │
00:01:12 #3473 [Verbose] > │         let v20 : US0 = US0_0                                                │
00:01:12 #3474 [Verbose] > │         let v21 : US0 = v18 |> Option.map v19 |> Option.defaultValue v20     │
00:01:12 #3475 [Verbose] > │         let v22 : string = "f64::NAN"                                        │
00:01:12 #3476 [Verbose] > │         let v23 : float = Fable.Core.RustInterop.emitRustExpr () v22         │
00:01:12 #3477 [Verbose] > │         let v24 : string = "f64::NAN"                                        │
00:01:12 #3478 [Verbose] > │         let v25 : float = Fable.Core.RustInterop.emitRustExpr () v24         │
00:01:12 #3479 [Verbose] > │         let v26 : float = method31(v23)                                      │
00:01:12 #3480 [Verbose] > │         let v27 : float = method3(v26)                                       │
00:01:12 #3481 [Verbose] > │         let v28 : float = method32(v25)                                      │
00:01:12 #3482 [Verbose] > │         let v29 : string = "num_complex::Complex::new(v27, v28)"             │
00:01:12 #3483 [Verbose] > │         let v30 : num_complex_Complex<float> =                               │
00:01:12 #3484 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v29                                   │
00:01:12 #3485 [Verbose] > │         let v33 : num_complex_Complex<float> =                               │
00:01:12 #3486 [Verbose] > │             match v21 with                                                   │
00:01:12 #3487 [Verbose] > │             | US0_0 -> (* None *)                                            │
00:01:12 #3488 [Verbose] > │                 v30                                                          │
00:01:12 #3489 [Verbose] > │             | US0_1(v31) -> (* Some *)                                       │
00:01:12 #3490 [Verbose] > │                 v31                                                          │
00:01:12 #3491 [Verbose] > │         let v34 : num_complex_Complex<float> = method13(v33)                 │
00:01:12 #3492 [Verbose] > │         let v35 : string = "v34.re"                                          │
00:01:12 #3493 [Verbose] > │         let v36 : float = Fable.Core.RustInterop.emitRustExpr () v35         │
00:01:12 #3494 [Verbose] > │         let v37 : string = $"%A{v36}"                                        │
00:01:12 #3495 [Verbose] > │         System.Console.WriteLine v37                                         │
00:01:12 #3496 [Verbose] > │         let v38 : bool = v36 > 0.0                                           │
00:01:12 #3497 [Verbose] > │         let v40 : bool =                                                     │
00:01:12 #3498 [Verbose] > │             if v38 then                                                      │
00:01:12 #3499 [Verbose] > │                 true                                                         │
00:01:12 #3500 [Verbose] > │             else                                                             │
00:01:12 #3501 [Verbose] > │                 method43(v38)                                                │
00:01:12 #3502 [Verbose] > │         let v41 : string = $"__expect / actual: %A{v36} / expected: %A{0.0}" │
00:01:12 #3503 [Verbose] > │         let v42 : bool = v40 = false                                         │
00:01:12 #3504 [Verbose] > │         if v42 then                                                          │
00:01:12 #3505 [Verbose] > │             failwith<unit> v41                                               │
00:01:12 #3506 [Verbose] > │         let v43 : num_complex_Complex<float> = method14(v33)                 │
00:01:12 #3507 [Verbose] > │         let v44 : string = "v43.im"                                          │
00:01:12 #3508 [Verbose] > │         let v45 : float = Fable.Core.RustInterop.emitRustExpr () v44         │
00:01:12 #3509 [Verbose] > │         let v46 : string = $"%A{v45}"                                        │
00:01:12 #3510 [Verbose] > │         System.Console.WriteLine v46                                         │
00:01:12 #3511 [Verbose] > │         let v47 : bool = v45 = 0.0                                           │
00:01:12 #3512 [Verbose] > │         let v49 : bool =                                                     │
00:01:12 #3513 [Verbose] > │             if v47 then                                                      │
00:01:12 #3514 [Verbose] > │                 true                                                         │
00:01:12 #3515 [Verbose] > │             else                                                             │
00:01:12 #3516 [Verbose] > │                 method43(v47)                                                │
00:01:12 #3517 [Verbose] > │         let v50 : string = $"__expect / actual: %A{v45} / expected: %A{0.0}" │
00:01:12 #3518 [Verbose] > │         let v51 : bool = v49 = false                                         │
00:01:12 #3519 [Verbose] > │         if v51 then                                                          │
00:01:12 #3520 [Verbose] > │             failwith<unit> v50                                               │
00:01:12 #3521 [Verbose] > │         let v52 : int32 = v6 + 1                                             │
00:01:12 #3522 [Verbose] > │         v4.l0 <- v52                                                         │
00:01:12 #3523 [Verbose] > │         ()                                                                   │
00:01:12 #3524 [Verbose] > │     ()                                                                       │
00:01:12 #3525 [Verbose] > │ and method63 () : unit =                                                     │
00:01:12 #3526 [Verbose] > │     let v0 : string = "pyo3::prepare_freethreaded_python()"                  │
00:01:12 #3527 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v0                                │
00:01:12 #3528 [Verbose] > │     let v1 : string = "let __result = pyo3::Python::with_gil(|py| ->         │
00:01:12 #3529 [Verbose] > │ pyo3::PyResult<()> { //"                                                     │
00:01:12 #3530 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v1                                │
00:01:12 #3531 [Verbose] > │     let v2 : string = "py"                                                   │
00:01:12 #3532 [Verbose] > │     let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2         │
00:01:12 #3533 [Verbose] > │     method64(v3)                                                             │
00:01:12 #3534 [Verbose] > │     let v4 : Result<unit, pyo3_PyErr> = Ok ()                                │
00:01:12 #3535 [Verbose] > │     let v5 : Result<unit, pyo3_PyErr> = method44(v4)                         │
00:01:12 #3536 [Verbose] > │     let v6 : string = "v5 }})"                                               │
00:01:12 #3537 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v6                                │
00:01:12 #3538 [Verbose] > │     let v7 : string = "{ //"                                                 │
00:01:12 #3539 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v7                                │
00:01:12 #3540 [Verbose] > │     let v8 : string = "__result"                                             │
00:01:12 #3541 [Verbose] > │     let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr  │
00:01:12 #3542 [Verbose] > │ () v8                                                                        │
00:01:12 #3543 [Verbose] > │     let v10 : Result<unit, pyo3_PyErr> = method45(v9)                        │
00:01:12 #3544 [Verbose] > │     let v11 : string = "v10.unwrap()"                                        │
00:01:12 #3545 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v11                               │
00:01:12 #3546 [Verbose] > │     ()                                                                       │
00:01:12 #3547 [Verbose] > │ and method67 (v0 : pyo3_Python) : unit =                                     │
00:01:12 #3548 [Verbose] > │     let v1 : float = method38()                                              │
00:01:12 #3549 [Verbose] > │     let v2 : float = method3(v1)                                             │
00:01:12 #3550 [Verbose] > │     let v3 : float = method4()                                               │
00:01:12 #3551 [Verbose] > │     let v4 : string = "num_complex::Complex::new(v2, v3)"                    │
00:01:12 #3552 [Verbose] > │     let v5 : num_complex_Complex<float> =                                    │
00:01:12 #3553 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v4                                    │
00:01:12 #3554 [Verbose] > │     let v6 : string = $"        s = mpmath.zeta(s)"                          │
00:01:12 #3555 [Verbose] > │     let v7 : num_complex_Complex<float> = method8(v5)                        │
00:01:12 #3556 [Verbose] > │     let v8 : Result<num_complex_Complex<float>, std_string_String> =         │
00:01:12 #3557 [Verbose] > │ method9(v0, v6, v7)                                                          │
00:01:12 #3558 [Verbose] > │     let v9 : num_complex_Complex<float> = method33(v0, v5)                   │
00:01:12 #3559 [Verbose] > │     let v10 : string = "v8.ok()"                                             │
00:01:12 #3560 [Verbose] > │     let v11 : num_complex_Complex<float> option =                            │
00:01:12 #3561 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v10                                   │
00:01:12 #3562 [Verbose] > │     let v12 : (num_complex_Complex<float> -> US0) = closure5()               │
00:01:12 #3563 [Verbose] > │     let v13 : US0 = US0_0                                                    │
00:01:12 #3564 [Verbose] > │     let v14 : US0 = v11 |> Option.map v12 |> Option.defaultValue v13         │
00:01:12 #3565 [Verbose] > │     let v15 : string = "f64::NAN"                                            │
00:01:12 #3566 [Verbose] > │     let v16 : float = Fable.Core.RustInterop.emitRustExpr () v15             │
00:01:12 #3567 [Verbose] > │     let v17 : string = "f64::NAN"                                            │
00:01:12 #3568 [Verbose] > │     let v18 : float = Fable.Core.RustInterop.emitRustExpr () v17             │
00:01:12 #3569 [Verbose] > │     let v19 : float = method31(v16)                                          │
00:01:12 #3570 [Verbose] > │     let v20 : float = method3(v19)                                           │
00:01:12 #3571 [Verbose] > │     let v21 : float = method32(v18)                                          │
00:01:12 #3572 [Verbose] > │     let v22 : string = "num_complex::Complex::new(v20, v21)"                 │
00:01:12 #3573 [Verbose] > │     let v23 : num_complex_Complex<float> =                                   │
00:01:12 #3574 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v22                                   │
00:01:12 #3575 [Verbose] > │     let v26 : num_complex_Complex<float> =                                   │
00:01:12 #3576 [Verbose] > │         match v14 with                                                       │
00:01:12 #3577 [Verbose] > │         | US0_0 -> (* None *)                                                │
00:01:12 #3578 [Verbose] > │             v23                                                              │
00:01:12 #3579 [Verbose] > │         | US0_1(v24) -> (* Some *)                                           │
00:01:12 #3580 [Verbose] > │             v24                                                              │
00:01:12 #3581 [Verbose] > │     let v27 : num_complex_Complex<float> = method13(v26)                     │
00:01:12 #3582 [Verbose] > │     let v28 : string = "v27.re"                                              │
00:01:12 #3583 [Verbose] > │     let v29 : float = Fable.Core.RustInterop.emitRustExpr () v28             │
00:01:12 #3584 [Verbose] > │     let v30 : string = $"%A{v29}"                                            │
00:01:12 #3585 [Verbose] > │     System.Console.WriteLine v30                                             │
00:01:12 #3586 [Verbose] > │     let v31 : bool = v29 = infinity                                          │
00:01:12 #3587 [Verbose] > │     let v33 : bool =                                                         │
00:01:12 #3588 [Verbose] > │         if v31 then                                                          │
00:01:12 #3589 [Verbose] > │             true                                                             │
00:01:12 #3590 [Verbose] > │         else                                                                 │
00:01:12 #3591 [Verbose] > │             method43(v31)                                                    │
00:01:12 #3592 [Verbose] > │     let v34 : string = $"__expect / actual: %A{v29} / expected:              │
00:01:12 #3593 [Verbose] > │ %A{infinity}"                                                                │
00:01:12 #3594 [Verbose] > │     let v35 : bool = v33 = false                                             │
00:01:12 #3595 [Verbose] > │     if v35 then                                                              │
00:01:12 #3596 [Verbose] > │         failwith<unit> v34                                                   │
00:01:12 #3597 [Verbose] > │     let v36 : num_complex_Complex<float> = method14(v26)                     │
00:01:12 #3598 [Verbose] > │     let v37 : string = "v36.im"                                              │
00:01:12 #3599 [Verbose] > │     let v38 : float = Fable.Core.RustInterop.emitRustExpr () v37             │
00:01:12 #3600 [Verbose] > │     let v39 : string = $"%A{v38}"                                            │
00:01:12 #3601 [Verbose] > │     System.Console.WriteLine v39                                             │
00:01:12 #3602 [Verbose] > │     let v40 : bool = v38 = 0.0                                               │
00:01:12 #3603 [Verbose] > │     let v42 : bool =                                                         │
00:01:12 #3604 [Verbose] > │         if v40 then                                                          │
00:01:12 #3605 [Verbose] > │             true                                                             │
00:01:12 #3606 [Verbose] > │         else                                                                 │
00:01:12 #3607 [Verbose] > │             method43(v40)                                                    │
00:01:12 #3608 [Verbose] > │     let v43 : string = $"__expect / actual: %A{v38} / expected: %A{0.0}"     │
00:01:12 #3609 [Verbose] > │     let v44 : bool = v42 = false                                             │
00:01:12 #3610 [Verbose] > │     if v44 then                                                              │
00:01:12 #3611 [Verbose] > │         failwith<unit> v43                                                   │
00:01:12 #3612 [Verbose] > │ and method66 () : unit =                                                     │
00:01:12 #3613 [Verbose] > │     let v0 : string = "pyo3::prepare_freethreaded_python()"                  │
00:01:12 #3614 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v0                                │
00:01:12 #3615 [Verbose] > │     let v1 : string = "let __result = pyo3::Python::with_gil(|py| ->         │
00:01:12 #3616 [Verbose] > │ pyo3::PyResult<()> { //"                                                     │
00:01:12 #3617 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v1                                │
00:01:12 #3618 [Verbose] > │     let v2 : string = "py"                                                   │
00:01:12 #3619 [Verbose] > │     let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2         │
00:01:12 #3620 [Verbose] > │     method67(v3)                                                             │
00:01:12 #3621 [Verbose] > │     let v4 : Result<unit, pyo3_PyErr> = Ok ()                                │
00:01:12 #3622 [Verbose] > │     let v5 : Result<unit, pyo3_PyErr> = method44(v4)                         │
00:01:12 #3623 [Verbose] > │     let v6 : string = "v5 }})"                                               │
00:01:12 #3624 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v6                                │
00:01:12 #3625 [Verbose] > │     let v7 : string = "{ //"                                                 │
00:01:12 #3626 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v7                                │
00:01:12 #3627 [Verbose] > │     let v8 : string = "__result"                                             │
00:01:12 #3628 [Verbose] > │     let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr  │
00:01:12 #3629 [Verbose] > │ () v8                                                                        │
00:01:12 #3630 [Verbose] > │     let v10 : Result<unit, pyo3_PyErr> = method45(v9)                        │
00:01:12 #3631 [Verbose] > │     let v11 : string = "v10.unwrap()"                                        │
00:01:12 #3632 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v11                               │
00:01:12 #3633 [Verbose] > │     ()                                                                       │
00:01:12 #3634 [Verbose] > │ and method70 () : float =                                                    │
00:01:12 #3635 [Verbose] > │     10.0                                                                     │
00:01:12 #3636 [Verbose] > │ and method69 (v0 : pyo3_Python) : unit =                                     │
00:01:12 #3637 [Verbose] > │     let v1 : float = method2()                                               │
00:01:12 #3638 [Verbose] > │     let v2 : float = method3(v1)                                             │
00:01:12 #3639 [Verbose] > │     let v3 : float = method70()                                              │
00:01:12 #3640 [Verbose] > │     let v4 : string = "num_complex::Complex::new(v2, v3)"                    │
00:01:12 #3641 [Verbose] > │     let v5 : num_complex_Complex<float> =                                    │
00:01:12 #3642 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v4                                    │
00:01:12 #3643 [Verbose] > │     let v6 : string = $"        s = mpmath.zeta(s)"                          │
00:01:12 #3644 [Verbose] > │     let v7 : num_complex_Complex<float> = method8(v5)                        │
00:01:12 #3645 [Verbose] > │     let v8 : Result<num_complex_Complex<float>, std_string_String> =         │
00:01:12 #3646 [Verbose] > │ method9(v0, v6, v7)                                                          │
00:01:12 #3647 [Verbose] > │     let v9 : num_complex_Complex<float> = method33(v0, v5)                   │
00:01:12 #3648 [Verbose] > │     let v10 : string = "v8.ok()"                                             │
00:01:12 #3649 [Verbose] > │     let v11 : num_complex_Complex<float> option =                            │
00:01:12 #3650 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v10                                   │
00:01:12 #3651 [Verbose] > │     let v12 : (num_complex_Complex<float> -> US0) = closure5()               │
00:01:12 #3652 [Verbose] > │     let v13 : US0 = US0_0                                                    │
00:01:12 #3653 [Verbose] > │     let v14 : US0 = v11 |> Option.map v12 |> Option.defaultValue v13         │
00:01:12 #3654 [Verbose] > │     let v15 : string = "f64::NAN"                                            │
00:01:12 #3655 [Verbose] > │     let v16 : float = Fable.Core.RustInterop.emitRustExpr () v15             │
00:01:12 #3656 [Verbose] > │     let v17 : string = "f64::NAN"                                            │
00:01:12 #3657 [Verbose] > │     let v18 : float = Fable.Core.RustInterop.emitRustExpr () v17             │
00:01:12 #3658 [Verbose] > │     let v19 : float = method31(v16)                                          │
00:01:12 #3659 [Verbose] > │     let v20 : float = method3(v19)                                           │
00:01:12 #3660 [Verbose] > │     let v21 : float = method32(v18)                                          │
00:01:12 #3661 [Verbose] > │     let v22 : string = "num_complex::Complex::new(v20, v21)"                 │
00:01:12 #3662 [Verbose] > │     let v23 : num_complex_Complex<float> =                                   │
00:01:12 #3663 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v22                                   │
00:01:12 #3664 [Verbose] > │     let v26 : num_complex_Complex<float> =                                   │
00:01:12 #3665 [Verbose] > │         match v14 with                                                       │
00:01:12 #3666 [Verbose] > │         | US0_0 -> (* None *)                                                │
00:01:12 #3667 [Verbose] > │             v23                                                              │
00:01:12 #3668 [Verbose] > │         | US0_1(v24) -> (* Some *)                                           │
00:01:12 #3669 [Verbose] > │             v24                                                              │
00:01:12 #3670 [Verbose] > │     let v27 : num_complex_Complex<float> = method13(v5)                      │
00:01:12 #3671 [Verbose] > │     let v28 : string = "v27.re"                                              │
00:01:12 #3672 [Verbose] > │     let v29 : float = Fable.Core.RustInterop.emitRustExpr () v28             │
00:01:12 #3673 [Verbose] > │     let v30 : num_complex_Complex<float> = method14(v5)                      │
00:01:12 #3674 [Verbose] > │     let v31 : string = "v30.im"                                              │
00:01:12 #3675 [Verbose] > │     let v32 : float = Fable.Core.RustInterop.emitRustExpr () v31             │
00:01:12 #3676 [Verbose] > │     let v33 : float =  -v32                                                  │
00:01:12 #3677 [Verbose] > │     let v34 : float = method31(v29)                                          │
00:01:12 #3678 [Verbose] > │     let v35 : float = method3(v34)                                           │
00:01:12 #3679 [Verbose] > │     let v36 : float = method32(v33)                                          │
00:01:12 #3680 [Verbose] > │     let v37 : string = "num_complex::Complex::new(v35, v36)"                 │
00:01:12 #3681 [Verbose] > │     let v38 : num_complex_Complex<float> =                                   │
00:01:12 #3682 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v37                                   │
00:01:12 #3683 [Verbose] > │     let v39 : string = $"        s = mpmath.zeta(s)"                         │
00:01:12 #3684 [Verbose] > │     let v40 : num_complex_Complex<float> = method8(v38)                      │
00:01:12 #3685 [Verbose] > │     let v41 : Result<num_complex_Complex<float>, std_string_String> =        │
00:01:12 #3686 [Verbose] > │ method9(v0, v39, v40)                                                        │
00:01:12 #3687 [Verbose] > │     let v42 : num_complex_Complex<float> = method33(v0, v38)                 │
00:01:12 #3688 [Verbose] > │     let v43 : string = "v41.ok()"                                            │
00:01:12 #3689 [Verbose] > │     let v44 : num_complex_Complex<float> option =                            │
00:01:12 #3690 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v43                                   │
00:01:12 #3691 [Verbose] > │     let v45 : US0 = US0_0                                                    │
00:01:12 #3692 [Verbose] > │     let v46 : US0 = v44 |> Option.map v12 |> Option.defaultValue v45         │
00:01:12 #3693 [Verbose] > │     let v47 : string = "f64::NAN"                                            │
00:01:12 #3694 [Verbose] > │     let v48 : float = Fable.Core.RustInterop.emitRustExpr () v47             │
00:01:12 #3695 [Verbose] > │     let v49 : string = "f64::NAN"                                            │
00:01:12 #3696 [Verbose] > │     let v50 : float = Fable.Core.RustInterop.emitRustExpr () v49             │
00:01:12 #3697 [Verbose] > │     let v51 : float = method31(v48)                                          │
00:01:12 #3698 [Verbose] > │     let v52 : float = method3(v51)                                           │
00:01:12 #3699 [Verbose] > │     let v53 : float = method32(v50)                                          │
00:01:12 #3700 [Verbose] > │     let v54 : string = "num_complex::Complex::new(v52, v53)"                 │
00:01:12 #3701 [Verbose] > │     let v55 : num_complex_Complex<float> =                                   │
00:01:12 #3702 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v54                                   │
00:01:12 #3703 [Verbose] > │     let v58 : num_complex_Complex<float> =                                   │
00:01:12 #3704 [Verbose] > │         match v46 with                                                       │
00:01:12 #3705 [Verbose] > │         | US0_0 -> (* None *)                                                │
00:01:12 #3706 [Verbose] > │             v55                                                              │
00:01:12 #3707 [Verbose] > │         | US0_1(v56) -> (* Some *)                                           │
00:01:12 #3708 [Verbose] > │             v56                                                              │
00:01:12 #3709 [Verbose] > │     let v59 : string = "v58.conj()"                                          │
00:01:12 #3710 [Verbose] > │     let v60 : num_complex_Complex<float> =                                   │
00:01:12 #3711 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v59                                   │
00:01:12 #3712 [Verbose] > │     let v61 : num_complex_Complex<float> = method13(v26)                     │
00:01:12 #3713 [Verbose] > │     let v62 : string = "v61.re"                                              │
00:01:12 #3714 [Verbose] > │     let v63 : float = Fable.Core.RustInterop.emitRustExpr () v62             │
00:01:12 #3715 [Verbose] > │     let v64 : num_complex_Complex<float> = method13(v60)                     │
00:01:12 #3716 [Verbose] > │     let v65 : string = "v64.re"                                              │
00:01:12 #3717 [Verbose] > │     let v66 : float = Fable.Core.RustInterop.emitRustExpr () v65             │
00:01:12 #3718 [Verbose] > │     let v67 : string = $"%A{v63}"                                            │
00:01:12 #3719 [Verbose] > │     System.Console.WriteLine v67                                             │
00:01:12 #3720 [Verbose] > │     let v68 : bool = v63 = v66                                               │
00:01:12 #3721 [Verbose] > │     let v70 : bool =                                                         │
00:01:12 #3722 [Verbose] > │         if v68 then                                                          │
00:01:12 #3723 [Verbose] > │             true                                                             │
00:01:12 #3724 [Verbose] > │         else                                                                 │
00:01:12 #3725 [Verbose] > │             method43(v68)                                                    │
00:01:12 #3726 [Verbose] > │     let v71 : string = $"__expect / actual: %A{v63} / expected: %A{v66}"     │
00:01:12 #3727 [Verbose] > │     let v72 : bool = v70 = false                                             │
00:01:12 #3728 [Verbose] > │     if v72 then                                                              │
00:01:12 #3729 [Verbose] > │         failwith<unit> v71                                                   │
00:01:12 #3730 [Verbose] > │     let v73 : num_complex_Complex<float> = method14(v26)                     │
00:01:12 #3731 [Verbose] > │     let v74 : string = "v73.im"                                              │
00:01:12 #3732 [Verbose] > │     let v75 : float = Fable.Core.RustInterop.emitRustExpr () v74             │
00:01:12 #3733 [Verbose] > │     let v76 : num_complex_Complex<float> = method14(v60)                     │
00:01:12 #3734 [Verbose] > │     let v77 : string = "v76.im"                                              │
00:01:12 #3735 [Verbose] > │     let v78 : float = Fable.Core.RustInterop.emitRustExpr () v77             │
00:01:12 #3736 [Verbose] > │     let v79 : string = $"%A{v75}"                                            │
00:01:12 #3737 [Verbose] > │     System.Console.WriteLine v79                                             │
00:01:12 #3738 [Verbose] > │     let v80 : bool = v75 = v78                                               │
00:01:12 #3739 [Verbose] > │     let v82 : bool =                                                         │
00:01:12 #3740 [Verbose] > │         if v80 then                                                          │
00:01:12 #3741 [Verbose] > │             true                                                             │
00:01:12 #3742 [Verbose] > │         else                                                                 │
00:01:12 #3743 [Verbose] > │             method43(v80)                                                    │
00:01:12 #3744 [Verbose] > │     let v83 : string = $"__expect / actual: %A{v75} / expected: %A{v78}"     │
00:01:12 #3745 [Verbose] > │     let v84 : bool = v82 = false                                             │
00:01:12 #3746 [Verbose] > │     if v84 then                                                              │
00:01:12 #3747 [Verbose] > │         failwith<unit> v83                                                   │
00:01:12 #3748 [Verbose] > │ and method68 () : unit =                                                     │
00:01:12 #3749 [Verbose] > │     let v0 : string = "pyo3::prepare_freethreaded_python()"                  │
00:01:12 #3750 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v0                                │
00:01:12 #3751 [Verbose] > │     let v1 : string = "let __result = pyo3::Python::with_gil(|py| ->         │
00:01:12 #3752 [Verbose] > │ pyo3::PyResult<()> { //"                                                     │
00:01:12 #3753 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v1                                │
00:01:12 #3754 [Verbose] > │     let v2 : string = "py"                                                   │
00:01:12 #3755 [Verbose] > │     let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2         │
00:01:12 #3756 [Verbose] > │     method69(v3)                                                             │
00:01:12 #3757 [Verbose] > │     let v4 : Result<unit, pyo3_PyErr> = Ok ()                                │
00:01:12 #3758 [Verbose] > │     let v5 : Result<unit, pyo3_PyErr> = method44(v4)                         │
00:01:12 #3759 [Verbose] > │     let v6 : string = "v5 }})"                                               │
00:01:12 #3760 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v6                                │
00:01:12 #3761 [Verbose] > │     let v7 : string = "{ //"                                                 │
00:01:12 #3762 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v7                                │
00:01:12 #3763 [Verbose] > │     let v8 : string = "__result"                                             │
00:01:12 #3764 [Verbose] > │     let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr  │
00:01:12 #3765 [Verbose] > │ () v8                                                                        │
00:01:12 #3766 [Verbose] > │     let v10 : Result<unit, pyo3_PyErr> = method45(v9)                        │
00:01:12 #3767 [Verbose] > │     let v11 : string = "v10.unwrap()"                                        │
00:01:12 #3768 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v11                               │
00:01:12 #3769 [Verbose] > │     ()                                                                       │
00:01:12 #3770 [Verbose] > │ and method73 () : float =                                                    │
00:01:12 #3771 [Verbose] > │     0.01                                                                     │
00:01:12 #3772 [Verbose] > │ and method74 () : float =                                                    │
00:01:12 #3773 [Verbose] > │     0.01                                                                     │
00:01:12 #3774 [Verbose] > │ and method72 (v0 : pyo3_Python) : unit =                                     │
00:01:12 #3775 [Verbose] > │     let v1 : float = method73()                                              │
00:01:12 #3776 [Verbose] > │     let v2 : float = method3(v1)                                             │
00:01:12 #3777 [Verbose] > │     let v3 : float = method74()                                              │
00:01:12 #3778 [Verbose] > │     let v4 : string = "num_complex::Complex::new(v2, v3)"                    │
00:01:12 #3779 [Verbose] > │     let v5 : num_complex_Complex<float> =                                    │
00:01:12 #3780 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v4                                    │
00:01:12 #3781 [Verbose] > │     let v6 : string = $"        s = mpmath.zeta(s)"                          │
00:01:12 #3782 [Verbose] > │     let v7 : num_complex_Complex<float> = method8(v5)                        │
00:01:12 #3783 [Verbose] > │     let v8 : Result<num_complex_Complex<float>, std_string_String> =         │
00:01:12 #3784 [Verbose] > │ method9(v0, v6, v7)                                                          │
00:01:12 #3785 [Verbose] > │     let v9 : num_complex_Complex<float> = method33(v0, v5)                   │
00:01:12 #3786 [Verbose] > │     let v10 : string = "v8.ok()"                                             │
00:01:12 #3787 [Verbose] > │     let v11 : num_complex_Complex<float> option =                            │
00:01:12 #3788 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v10                                   │
00:01:12 #3789 [Verbose] > │     let v12 : (num_complex_Complex<float> -> US0) = closure5()               │
00:01:12 #3790 [Verbose] > │     let v13 : US0 = US0_0                                                    │
00:01:12 #3791 [Verbose] > │     let v14 : US0 = v11 |> Option.map v12 |> Option.defaultValue v13         │
00:01:12 #3792 [Verbose] > │     let v15 : string = "f64::NAN"                                            │
00:01:12 #3793 [Verbose] > │     let v16 : float = Fable.Core.RustInterop.emitRustExpr () v15             │
00:01:12 #3794 [Verbose] > │     let v17 : string = "f64::NAN"                                            │
00:01:12 #3795 [Verbose] > │     let v18 : float = Fable.Core.RustInterop.emitRustExpr () v17             │
00:01:12 #3796 [Verbose] > │     let v19 : float = method31(v16)                                          │
00:01:12 #3797 [Verbose] > │     let v20 : float = method3(v19)                                           │
00:01:12 #3798 [Verbose] > │     let v21 : float = method32(v18)                                          │
00:01:12 #3799 [Verbose] > │     let v22 : string = "num_complex::Complex::new(v20, v21)"                 │
00:01:12 #3800 [Verbose] > │     let v23 : num_complex_Complex<float> =                                   │
00:01:12 #3801 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v22                                   │
00:01:12 #3802 [Verbose] > │     let v26 : num_complex_Complex<float> =                                   │
00:01:12 #3803 [Verbose] > │         match v14 with                                                       │
00:01:12 #3804 [Verbose] > │         | US0_0 -> (* None *)                                                │
00:01:12 #3805 [Verbose] > │             v23                                                              │
00:01:12 #3806 [Verbose] > │         | US0_1(v24) -> (* Some *)                                           │
00:01:12 #3807 [Verbose] > │             v24                                                              │
00:01:12 #3808 [Verbose] > │     let v27 : num_complex_Complex<float> = method13(v26)                     │
00:01:12 #3809 [Verbose] > │     let v28 : string = "v27.re"                                              │
00:01:12 #3810 [Verbose] > │     let v29 : float = Fable.Core.RustInterop.emitRustExpr () v28             │
00:01:12 #3811 [Verbose] > │     let v30 : string = $"%A{v29}"                                            │
00:01:12 #3812 [Verbose] > │     System.Console.WriteLine v30                                             │
00:01:12 #3813 [Verbose] > │     let v31 : bool = v29 < infinity                                          │
00:01:12 #3814 [Verbose] > │     let v33 : bool =                                                         │
00:01:12 #3815 [Verbose] > │         if v31 then                                                          │
00:01:12 #3816 [Verbose] > │             true                                                             │
00:01:12 #3817 [Verbose] > │         else                                                                 │
00:01:12 #3818 [Verbose] > │             method43(v31)                                                    │
00:01:12 #3819 [Verbose] > │     let v34 : string = $"__expect / actual: %A{v29} / expected:              │
00:01:12 #3820 [Verbose] > │ %A{infinity}"                                                                │
00:01:12 #3821 [Verbose] > │     let v35 : bool = v33 = false                                             │
00:01:12 #3822 [Verbose] > │     if v35 then                                                              │
00:01:12 #3823 [Verbose] > │         failwith<unit> v34                                                   │
00:01:12 #3824 [Verbose] > │     let v36 : num_complex_Complex<float> = method14(v26)                     │
00:01:12 #3825 [Verbose] > │     let v37 : string = "v36.im"                                              │
00:01:12 #3826 [Verbose] > │     let v38 : float = Fable.Core.RustInterop.emitRustExpr () v37             │
00:01:12 #3827 [Verbose] > │     let v39 : string = $"%A{v38}"                                            │
00:01:12 #3828 [Verbose] > │     System.Console.WriteLine v39                                             │
00:01:12 #3829 [Verbose] > │     let v40 : bool = v38 < infinity                                          │
00:01:12 #3830 [Verbose] > │     let v42 : bool =                                                         │
00:01:12 #3831 [Verbose] > │         if v40 then                                                          │
00:01:12 #3832 [Verbose] > │             true                                                             │
00:01:12 #3833 [Verbose] > │         else                                                                 │
00:01:12 #3834 [Verbose] > │             method43(v40)                                                    │
00:01:12 #3835 [Verbose] > │     let v43 : string = $"__expect / actual: %A{v38} / expected:              │
00:01:12 #3836 [Verbose] > │ %A{infinity}"                                                                │
00:01:12 #3837 [Verbose] > │     let v44 : bool = v42 = false                                             │
00:01:12 #3838 [Verbose] > │     if v44 then                                                              │
00:01:12 #3839 [Verbose] > │         failwith<unit> v43                                                   │
00:01:12 #3840 [Verbose] > │ and method71 () : unit =                                                     │
00:01:12 #3841 [Verbose] > │     let v0 : string = "pyo3::prepare_freethreaded_python()"                  │
00:01:12 #3842 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v0                                │
00:01:12 #3843 [Verbose] > │     let v1 : string = "let __result = pyo3::Python::with_gil(|py| ->         │
00:01:12 #3844 [Verbose] > │ pyo3::PyResult<()> { //"                                                     │
00:01:12 #3845 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v1                                │
00:01:12 #3846 [Verbose] > │     let v2 : string = "py"                                                   │
00:01:12 #3847 [Verbose] > │     let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2         │
00:01:12 #3848 [Verbose] > │     method72(v3)                                                             │
00:01:12 #3849 [Verbose] > │     let v4 : Result<unit, pyo3_PyErr> = Ok ()                                │
00:01:12 #3850 [Verbose] > │     let v5 : Result<unit, pyo3_PyErr> = method44(v4)                         │
00:01:12 #3851 [Verbose] > │     let v6 : string = "v5 }})"                                               │
00:01:12 #3852 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v6                                │
00:01:12 #3853 [Verbose] > │     let v7 : string = "{ //"                                                 │
00:01:12 #3854 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v7                                │
00:01:12 #3855 [Verbose] > │     let v8 : string = "__result"                                             │
00:01:12 #3856 [Verbose] > │     let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr  │
00:01:12 #3857 [Verbose] > │ () v8                                                                        │
00:01:12 #3858 [Verbose] > │     let v10 : Result<unit, pyo3_PyErr> = method45(v9)                        │
00:01:12 #3859 [Verbose] > │     let v11 : string = "v10.unwrap()"                                        │
00:01:12 #3860 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v11                               │
00:01:12 #3861 [Verbose] > │     ()                                                                       │
00:01:12 #3862 [Verbose] > │ and method77 () : (float []) =                                               │
00:01:12 #3863 [Verbose] > │     let v0 : (float []) = [|10.0; 20.0; 30.0; 40.0; 50.0; 60.0; 70.0; 80.0;  │
00:01:12 #3864 [Verbose] > │ 90.0; 100.0|]                                                                │
00:01:12 #3865 [Verbose] > │     let v1 : (float []) = method65(v0)                                       │
00:01:12 #3866 [Verbose] > │     v1                                                                       │
00:01:12 #3867 [Verbose] > │ and method78 (v0 : bool) : bool =                                            │
00:01:12 #3868 [Verbose] > │     let v1 : bool = v0 = false                                               │
00:01:12 #3869 [Verbose] > │     v1                                                                       │
00:01:12 #3870 [Verbose] > │ and method76 (v0 : pyo3_Python) : unit =                                     │
00:01:12 #3871 [Verbose] > │     let v1 : (float []) = method77()                                         │
00:01:12 #3872 [Verbose] > │     let v2 : int32 = v1.Length                                               │
00:01:12 #3873 [Verbose] > │     let v3 : Mut0 = {l0 = 0} : Mut0                                          │
00:01:12 #3874 [Verbose] > │     while method7(v2, v3) do                                                 │
00:01:12 #3875 [Verbose] > │         let v5 : int32 = v3.l0                                               │
00:01:12 #3876 [Verbose] > │         let v6 : float = v1.[int v5]                                         │
00:01:12 #3877 [Verbose] > │         let v7 : float = method35()                                          │
00:01:12 #3878 [Verbose] > │         let v8 : float = method3(v7)                                         │
00:01:12 #3879 [Verbose] > │         let v9 : float = method32(v6)                                        │
00:01:12 #3880 [Verbose] > │         let v10 : string = "num_complex::Complex::new(v8, v9)"               │
00:01:12 #3881 [Verbose] > │         let v11 : num_complex_Complex<float> =                               │
00:01:12 #3882 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v10                                   │
00:01:12 #3883 [Verbose] > │         let v12 : string = $"        s = mpmath.zeta(s)"                     │
00:01:12 #3884 [Verbose] > │         let v13 : num_complex_Complex<float> = method8(v11)                  │
00:01:12 #3885 [Verbose] > │         let v14 : Result<num_complex_Complex<float>, std_string_String> =    │
00:01:12 #3886 [Verbose] > │ method9(v0, v12, v13)                                                        │
00:01:12 #3887 [Verbose] > │         let v15 : num_complex_Complex<float> = method33(v0, v11)             │
00:01:12 #3888 [Verbose] > │         let v16 : string = "v14.ok()"                                        │
00:01:12 #3889 [Verbose] > │         let v17 : num_complex_Complex<float> option =                        │
00:01:12 #3890 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v16                                   │
00:01:12 #3891 [Verbose] > │         let v18 : (num_complex_Complex<float> -> US0) = closure5()           │
00:01:12 #3892 [Verbose] > │         let v19 : US0 = US0_0                                                │
00:01:12 #3893 [Verbose] > │         let v20 : US0 = v17 |> Option.map v18 |> Option.defaultValue v19     │
00:01:12 #3894 [Verbose] > │         let v21 : string = "f64::NAN"                                        │
00:01:12 #3895 [Verbose] > │         let v22 : float = Fable.Core.RustInterop.emitRustExpr () v21         │
00:01:12 #3896 [Verbose] > │         let v23 : string = "f64::NAN"                                        │
00:01:12 #3897 [Verbose] > │         let v24 : float = Fable.Core.RustInterop.emitRustExpr () v23         │
00:01:12 #3898 [Verbose] > │         let v25 : float = method31(v22)                                      │
00:01:12 #3899 [Verbose] > │         let v26 : float = method3(v25)                                       │
00:01:12 #3900 [Verbose] > │         let v27 : float = method32(v24)                                      │
00:01:12 #3901 [Verbose] > │         let v28 : string = "num_complex::Complex::new(v26, v27)"             │
00:01:12 #3902 [Verbose] > │         let v29 : num_complex_Complex<float> =                               │
00:01:12 #3903 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v28                                   │
00:01:12 #3904 [Verbose] > │         let v32 : num_complex_Complex<float> =                               │
00:01:12 #3905 [Verbose] > │             match v20 with                                                   │
00:01:12 #3906 [Verbose] > │             | US0_0 -> (* None *)                                            │
00:01:12 #3907 [Verbose] > │                 v29                                                          │
00:01:12 #3908 [Verbose] > │             | US0_1(v30) -> (* Some *)                                       │
00:01:12 #3909 [Verbose] > │                 v30                                                          │
00:01:12 #3910 [Verbose] > │         let v33 : num_complex_Complex<float> = method13(v32)                 │
00:01:12 #3911 [Verbose] > │         let v34 : string = "v33.re"                                          │
00:01:12 #3912 [Verbose] > │         let v35 : float = Fable.Core.RustInterop.emitRustExpr () v34         │
00:01:12 #3913 [Verbose] > │         let v36 : string = $"%A{v35}"                                        │
00:01:12 #3914 [Verbose] > │         System.Console.WriteLine v36                                         │
00:01:12 #3915 [Verbose] > │         let v37 : bool = v35 = 0.0                                           │
00:01:12 #3916 [Verbose] > │         let v38 : bool = method78(v37)                                       │
00:01:12 #3917 [Verbose] > │         let v40 : bool =                                                     │
00:01:12 #3918 [Verbose] > │             if v38 then                                                      │
00:01:12 #3919 [Verbose] > │                 true                                                         │
00:01:12 #3920 [Verbose] > │             else                                                             │
00:01:12 #3921 [Verbose] > │                 method43(v38)                                                │
00:01:12 #3922 [Verbose] > │         let v41 : string = $"__expect / actual: %A{v35} / expected: %A{0.0}" │
00:01:12 #3923 [Verbose] > │         let v42 : bool = v40 = false                                         │
00:01:12 #3924 [Verbose] > │         if v42 then                                                          │
00:01:12 #3925 [Verbose] > │             failwith<unit> v41                                               │
00:01:12 #3926 [Verbose] > │         let v43 : num_complex_Complex<float> = method14(v32)                 │
00:01:12 #3927 [Verbose] > │         let v44 : string = "v43.im"                                          │
00:01:12 #3928 [Verbose] > │         let v45 : float = Fable.Core.RustInterop.emitRustExpr () v44         │
00:01:12 #3929 [Verbose] > │         let v46 : string = $"%A{v45}"                                        │
00:01:12 #3930 [Verbose] > │         System.Console.WriteLine v46                                         │
00:01:12 #3931 [Verbose] > │         let v47 : bool = v45 = 0.0                                           │
00:01:12 #3932 [Verbose] > │         let v48 : bool = method78(v47)                                       │
00:01:12 #3933 [Verbose] > │         let v50 : bool =                                                     │
00:01:12 #3934 [Verbose] > │             if v48 then                                                      │
00:01:12 #3935 [Verbose] > │                 true                                                         │
00:01:12 #3936 [Verbose] > │             else                                                             │
00:01:12 #3937 [Verbose] > │                 method43(v48)                                                │
00:01:12 #3938 [Verbose] > │         let v51 : string = $"__expect / actual: %A{v45} / expected: %A{0.0}" │
00:01:12 #3939 [Verbose] > │         let v52 : bool = v50 = false                                         │
00:01:12 #3940 [Verbose] > │         if v52 then                                                          │
00:01:12 #3941 [Verbose] > │             failwith<unit> v51                                               │
00:01:12 #3942 [Verbose] > │         let v53 : int32 = v5 + 1                                             │
00:01:12 #3943 [Verbose] > │         v3.l0 <- v53                                                         │
00:01:12 #3944 [Verbose] > │         ()                                                                   │
00:01:12 #3945 [Verbose] > │     ()                                                                       │
00:01:12 #3946 [Verbose] > │ and method75 () : unit =                                                     │
00:01:12 #3947 [Verbose] > │     let v0 : string = "pyo3::prepare_freethreaded_python()"                  │
00:01:12 #3948 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v0                                │
00:01:12 #3949 [Verbose] > │     let v1 : string = "let __result = pyo3::Python::with_gil(|py| ->         │
00:01:12 #3950 [Verbose] > │ pyo3::PyResult<()> { //"                                                     │
00:01:12 #3951 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v1                                │
00:01:12 #3952 [Verbose] > │     let v2 : string = "py"                                                   │
00:01:12 #3953 [Verbose] > │     let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2         │
00:01:12 #3954 [Verbose] > │     method76(v3)                                                             │
00:01:12 #3955 [Verbose] > │     let v4 : Result<unit, pyo3_PyErr> = Ok ()                                │
00:01:12 #3956 [Verbose] > │     let v5 : Result<unit, pyo3_PyErr> = method44(v4)                         │
00:01:12 #3957 [Verbose] > │     let v6 : string = "v5 }})"                                               │
00:01:12 #3958 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v6                                │
00:01:12 #3959 [Verbose] > │     let v7 : string = "{ //"                                                 │
00:01:12 #3960 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v7                                │
00:01:12 #3961 [Verbose] > │     let v8 : string = "__result"                                             │
00:01:12 #3962 [Verbose] > │     let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr  │
00:01:12 #3963 [Verbose] > │ () v8                                                                        │
00:01:12 #3964 [Verbose] > │     let v10 : Result<unit, pyo3_PyErr> = method45(v9)                        │
00:01:12 #3965 [Verbose] > │     let v11 : string = "v10.unwrap()"                                        │
00:01:12 #3966 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v11                               │
00:01:12 #3967 [Verbose] > │     ()                                                                       │
00:01:12 #3968 [Verbose] > │ and method81 () : float =                                                    │
00:01:12 #3969 [Verbose] > │     0.75                                                                     │
00:01:12 #3970 [Verbose] > │ and method82 () : float =                                                    │
00:01:12 #3971 [Verbose] > │     20.5                                                                     │
00:01:12 #3972 [Verbose] > │ and method83 () : float =                                                    │
00:01:12 #3973 [Verbose] > │     1.25                                                                     │
00:01:12 #3974 [Verbose] > │ and method84 () : float =                                                    │
00:01:12 #3975 [Verbose] > │     30.1                                                                     │
00:01:12 #3976 [Verbose] > │ and method85 () : float =                                                    │
00:01:12 #3977 [Verbose] > │     0.25                                                                     │
00:01:12 #3978 [Verbose] > │ and method86 () : float =                                                    │
00:01:12 #3979 [Verbose] > │     40.0                                                                     │
00:01:12 #3980 [Verbose] > │ and method87 () : float =                                                    │
00:01:12 #3981 [Verbose] > │     50.0                                                                     │
00:01:12 #3982 [Verbose] > │ and method80 (v0 : pyo3_Python) : unit =                                     │
00:01:12 #3983 [Verbose] > │     let v1 : float = method55()                                              │
00:01:12 #3984 [Verbose] > │     let v2 : float = method3(v1)                                             │
00:01:12 #3985 [Verbose] > │     let v3 : float = method56()                                              │
00:01:12 #3986 [Verbose] > │     let v4 : string = "num_complex::Complex::new(v2, v3)"                    │
00:01:12 #3987 [Verbose] > │     let v5 : num_complex_Complex<float> =                                    │
00:01:12 #3988 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v4                                    │
00:01:12 #3989 [Verbose] > │     let v6 : float = method81()                                              │
00:01:12 #3990 [Verbose] > │     let v7 : float = method3(v6)                                             │
00:01:12 #3991 [Verbose] > │     let v8 : float = method82()                                              │
00:01:12 #3992 [Verbose] > │     let v9 : string = "num_complex::Complex::new(v7, v8)"                    │
00:01:12 #3993 [Verbose] > │     let v10 : num_complex_Complex<float> =                                   │
00:01:12 #3994 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v9                                    │
00:01:12 #3995 [Verbose] > │     let v11 : float = method83()                                             │
00:01:12 #3996 [Verbose] > │     let v12 : float = method3(v11)                                           │
00:01:12 #3997 [Verbose] > │     let v13 : float = method84()                                             │
00:01:12 #3998 [Verbose] > │     let v14 : string = "num_complex::Complex::new(v12, v13)"                 │
00:01:12 #3999 [Verbose] > │     let v15 : num_complex_Complex<float> =                                   │
00:01:12 #4000 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v14                                   │
00:01:12 #4001 [Verbose] > │     let v16 : float = method85()                                             │
00:01:12 #4002 [Verbose] > │     let v17 : float = method3(v16)                                           │
00:01:12 #4003 [Verbose] > │     let v18 : float = method86()                                             │
00:01:12 #4004 [Verbose] > │     let v19 : string = "num_complex::Complex::new(v17, v18)"                 │
00:01:12 #4005 [Verbose] > │     let v20 : num_complex_Complex<float> =                                   │
00:01:12 #4006 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v19                                   │
00:01:12 #4007 [Verbose] > │     let v21 : float = method38()                                             │
00:01:12 #4008 [Verbose] > │     let v22 : float = method3(v21)                                           │
00:01:12 #4009 [Verbose] > │     let v23 : float = method87()                                             │
00:01:12 #4010 [Verbose] > │     let v24 : string = "num_complex::Complex::new(v22, v23)"                 │
00:01:12 #4011 [Verbose] > │     let v25 : num_complex_Complex<float> =                                   │
00:01:12 #4012 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v24                                   │
00:01:12 #4013 [Verbose] > │     let v26 : (num_complex_Complex<float> []) = [|v5; v10; v15; v20; v25|]   │
00:01:12 #4014 [Verbose] > │     let v27 : (num_complex_Complex<float> []) = method62(v26)                │
00:01:12 #4015 [Verbose] > │     let v28 : int32 = v27.Length                                             │
00:01:12 #4016 [Verbose] > │     let v29 : Mut0 = {l0 = 0} : Mut0                                         │
00:01:12 #4017 [Verbose] > │     while method7(v28, v29) do                                               │
00:01:12 #4018 [Verbose] > │         let v31 : int32 = v29.l0                                             │
00:01:12 #4019 [Verbose] > │         let v32 : num_complex_Complex<float> = v27.[int v31]                 │
00:01:12 #4020 [Verbose] > │         let v33 : string = $"        s = mpmath.zeta(s)"                     │
00:01:12 #4021 [Verbose] > │         let v34 : num_complex_Complex<float> = method8(v32)                  │
00:01:12 #4022 [Verbose] > │         let v35 : Result<num_complex_Complex<float>, std_string_String> =    │
00:01:12 #4023 [Verbose] > │ method9(v0, v33, v34)                                                        │
00:01:12 #4024 [Verbose] > │         let v36 : num_complex_Complex<float> = method33(v0, v32)             │
00:01:12 #4025 [Verbose] > │         let v37 : string = "v35.ok()"                                        │
00:01:12 #4026 [Verbose] > │         let v38 : num_complex_Complex<float> option =                        │
00:01:12 #4027 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v37                                   │
00:01:12 #4028 [Verbose] > │         let v39 : (num_complex_Complex<float> -> US0) = closure5()           │
00:01:12 #4029 [Verbose] > │         let v40 : US0 = US0_0                                                │
00:01:12 #4030 [Verbose] > │         let v41 : US0 = v38 |> Option.map v39 |> Option.defaultValue v40     │
00:01:12 #4031 [Verbose] > │         let v42 : string = "f64::NAN"                                        │
00:01:12 #4032 [Verbose] > │         let v43 : float = Fable.Core.RustInterop.emitRustExpr () v42         │
00:01:12 #4033 [Verbose] > │         let v44 : string = "f64::NAN"                                        │
00:01:12 #4034 [Verbose] > │         let v45 : float = Fable.Core.RustInterop.emitRustExpr () v44         │
00:01:12 #4035 [Verbose] > │         let v46 : float = method31(v43)                                      │
00:01:12 #4036 [Verbose] > │         let v47 : float = method3(v46)                                       │
00:01:12 #4037 [Verbose] > │         let v48 : float = method32(v45)                                      │
00:01:12 #4038 [Verbose] > │         let v49 : string = "num_complex::Complex::new(v47, v48)"             │
00:01:12 #4039 [Verbose] > │         let v50 : num_complex_Complex<float> =                               │
00:01:12 #4040 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v49                                   │
00:01:12 #4041 [Verbose] > │         let v53 : num_complex_Complex<float> =                               │
00:01:12 #4042 [Verbose] > │             match v41 with                                                   │
00:01:12 #4043 [Verbose] > │             | US0_0 -> (* None *)                                            │
00:01:12 #4044 [Verbose] > │                 v50                                                          │
00:01:12 #4045 [Verbose] > │             | US0_1(v51) -> (* Some *)                                       │
00:01:12 #4046 [Verbose] > │                 v51                                                          │
00:01:12 #4047 [Verbose] > │         let v54 : num_complex_Complex<float> = method13(v53)                 │
00:01:12 #4048 [Verbose] > │         let v55 : string = "v54.re"                                          │
00:01:12 #4049 [Verbose] > │         let v56 : float = Fable.Core.RustInterop.emitRustExpr () v55         │
00:01:12 #4050 [Verbose] > │         let v57 : string = $"%A{v56}"                                        │
00:01:12 #4051 [Verbose] > │         System.Console.WriteLine v57                                         │
00:01:12 #4052 [Verbose] > │         let v58 : bool = v56 = 0.0                                           │
00:01:12 #4053 [Verbose] > │         let v59 : bool = method78(v58)                                       │
00:01:12 #4054 [Verbose] > │         let v61 : bool =                                                     │
00:01:12 #4055 [Verbose] > │             if v59 then                                                      │
00:01:12 #4056 [Verbose] > │                 true                                                         │
00:01:12 #4057 [Verbose] > │             else                                                             │
00:01:12 #4058 [Verbose] > │                 method43(v59)                                                │
00:01:12 #4059 [Verbose] > │         let v62 : string = $"__expect / actual: %A{v56} / expected: %A{0.0}" │
00:01:12 #4060 [Verbose] > │         let v63 : bool = v61 = false                                         │
00:01:12 #4061 [Verbose] > │         if v63 then                                                          │
00:01:12 #4062 [Verbose] > │             failwith<unit> v62                                               │
00:01:12 #4063 [Verbose] > │         let v64 : num_complex_Complex<float> = method14(v53)                 │
00:01:12 #4064 [Verbose] > │         let v65 : string = "v64.im"                                          │
00:01:12 #4065 [Verbose] > │         let v66 : float = Fable.Core.RustInterop.emitRustExpr () v65         │
00:01:12 #4066 [Verbose] > │         let v67 : string = $"%A{v66}"                                        │
00:01:12 #4067 [Verbose] > │         System.Console.WriteLine v67                                         │
00:01:12 #4068 [Verbose] > │         let v68 : bool = v66 = 0.0                                           │
00:01:12 #4069 [Verbose] > │         let v69 : bool = method78(v68)                                       │
00:01:12 #4070 [Verbose] > │         let v71 : bool =                                                     │
00:01:12 #4071 [Verbose] > │             if v69 then                                                      │
00:01:12 #4072 [Verbose] > │                 true                                                         │
00:01:12 #4073 [Verbose] > │             else                                                             │
00:01:12 #4074 [Verbose] > │                 method43(v69)                                                │
00:01:12 #4075 [Verbose] > │         let v72 : string = $"__expect / actual: %A{v66} / expected: %A{0.0}" │
00:01:12 #4076 [Verbose] > │         let v73 : bool = v71 = false                                         │
00:01:12 #4077 [Verbose] > │         if v73 then                                                          │
00:01:12 #4078 [Verbose] > │             failwith<unit> v72                                               │
00:01:12 #4079 [Verbose] > │         let v74 : int32 = v31 + 1                                            │
00:01:12 #4080 [Verbose] > │         v29.l0 <- v74                                                        │
00:01:12 #4081 [Verbose] > │         ()                                                                   │
00:01:12 #4082 [Verbose] > │     ()                                                                       │
00:01:12 #4083 [Verbose] > │ and method79 () : unit =                                                     │
00:01:12 #4084 [Verbose] > │     let v0 : string = "pyo3::prepare_freethreaded_python()"                  │
00:01:12 #4085 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v0                                │
00:01:12 #4086 [Verbose] > │     let v1 : string = "let __result = pyo3::Python::with_gil(|py| ->         │
00:01:12 #4087 [Verbose] > │ pyo3::PyResult<()> { //"                                                     │
00:01:12 #4088 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v1                                │
00:01:12 #4089 [Verbose] > │     let v2 : string = "py"                                                   │
00:01:12 #4090 [Verbose] > │     let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2         │
00:01:12 #4091 [Verbose] > │     method80(v3)                                                             │
00:01:12 #4092 [Verbose] > │     let v4 : Result<unit, pyo3_PyErr> = Ok ()                                │
00:01:12 #4093 [Verbose] > │     let v5 : Result<unit, pyo3_PyErr> = method44(v4)                         │
00:01:12 #4094 [Verbose] > │     let v6 : string = "v5 }})"                                               │
00:01:12 #4095 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v6                                │
00:01:12 #4096 [Verbose] > │     let v7 : string = "{ //"                                                 │
00:01:12 #4097 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v7                                │
00:01:12 #4098 [Verbose] > │     let v8 : string = "__result"                                             │
00:01:12 #4099 [Verbose] > │     let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr  │
00:01:12 #4100 [Verbose] > │ () v8                                                                        │
00:01:12 #4101 [Verbose] > │     let v10 : Result<unit, pyo3_PyErr> = method45(v9)                        │
00:01:12 #4102 [Verbose] > │     let v11 : string = "v10.unwrap()"                                        │
00:01:12 #4103 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v11                               │
00:01:12 #4104 [Verbose] > │     ()                                                                       │
00:01:12 #4105 [Verbose] > │ and method90 () : float =                                                    │
00:01:12 #4106 [Verbose] > │     3.0                                                                      │
00:01:12 #4107 [Verbose] > │ and method91 () : float =                                                    │
00:01:12 #4108 [Verbose] > │     4.0                                                                      │
00:01:12 #4109 [Verbose] > │ and method92 () : float =                                                    │
00:01:12 #4110 [Verbose] > │     2.5                                                                      │
00:01:12 #4111 [Verbose] > │ and method93 () : float =                                                    │
00:01:12 #4112 [Verbose] > │     -3.5                                                                     │
00:01:12 #4113 [Verbose] > │ and method94 () : float =                                                    │
00:01:12 #4114 [Verbose] > │     1.5                                                                      │
00:01:12 #4115 [Verbose] > │ and method95 () : float =                                                    │
00:01:12 #4116 [Verbose] > │     2.5                                                                      │
00:01:12 #4117 [Verbose] > │ and method89 (v0 : pyo3_Python) : unit =                                     │
00:01:12 #4118 [Verbose] > │     let v1 : float = method90()                                              │
00:01:12 #4119 [Verbose] > │     let v2 : float = method3(v1)                                             │
00:01:12 #4120 [Verbose] > │     let v3 : float = method91()                                              │
00:01:12 #4121 [Verbose] > │     let v4 : string = "num_complex::Complex::new(v2, v3)"                    │
00:01:12 #4122 [Verbose] > │     let v5 : num_complex_Complex<float> =                                    │
00:01:12 #4123 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v4                                    │
00:01:12 #4124 [Verbose] > │     let v6 : float = method92()                                              │
00:01:12 #4125 [Verbose] > │     let v7 : float = method3(v6)                                             │
00:01:12 #4126 [Verbose] > │     let v8 : float = method93()                                              │
00:01:12 #4127 [Verbose] > │     let v9 : string = "num_complex::Complex::new(v7, v8)"                    │
00:01:12 #4128 [Verbose] > │     let v10 : num_complex_Complex<float> =                                   │
00:01:12 #4129 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v9                                    │
00:01:12 #4130 [Verbose] > │     let v11 : float = method94()                                             │
00:01:12 #4131 [Verbose] > │     let v12 : float = method3(v11)                                           │
00:01:12 #4132 [Verbose] > │     let v13 : float = method95()                                             │
00:01:12 #4133 [Verbose] > │     let v14 : string = "num_complex::Complex::new(v12, v13)"                 │
00:01:12 #4134 [Verbose] > │     let v15 : num_complex_Complex<float> =                                   │
00:01:12 #4135 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v14                                   │
00:01:12 #4136 [Verbose] > │     let v16 : float = method55()                                             │
00:01:12 #4137 [Verbose] > │     let v17 : float = method3(v16)                                           │
00:01:12 #4138 [Verbose] > │     let v18 : float = method56()                                             │
00:01:12 #4139 [Verbose] > │     let v19 : string = "num_complex::Complex::new(v17, v18)"                 │
00:01:12 #4140 [Verbose] > │     let v20 : num_complex_Complex<float> =                                   │
00:01:12 #4141 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v19                                   │
00:01:12 #4142 [Verbose] > │     let v21 : (num_complex_Complex<float> []) = [|v5; v10; v15; v20|]        │
00:01:12 #4143 [Verbose] > │     let v22 : (num_complex_Complex<float> []) = method62(v21)                │
00:01:12 #4144 [Verbose] > │     let v23 : int32 = v22.Length                                             │
00:01:12 #4145 [Verbose] > │     let v24 : Mut0 = {l0 = 0} : Mut0                                         │
00:01:12 #4146 [Verbose] > │     while method7(v23, v24) do                                               │
00:01:12 #4147 [Verbose] > │         let v26 : int32 = v24.l0                                             │
00:01:12 #4148 [Verbose] > │         let v27 : num_complex_Complex<float> = v22.[int v26]                 │
00:01:12 #4149 [Verbose] > │         let v28 : string = $"        s = mpmath.zeta(s)"                     │
00:01:12 #4150 [Verbose] > │         let v29 : num_complex_Complex<float> = method8(v27)                  │
00:01:12 #4151 [Verbose] > │         let v30 : Result<num_complex_Complex<float>, std_string_String> =    │
00:01:12 #4152 [Verbose] > │ method9(v0, v28, v29)                                                        │
00:01:12 #4153 [Verbose] > │         let v31 : num_complex_Complex<float> = method33(v0, v27)             │
00:01:12 #4154 [Verbose] > │         let v32 : string = "v30.ok()"                                        │
00:01:12 #4155 [Verbose] > │         let v33 : num_complex_Complex<float> option =                        │
00:01:12 #4156 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v32                                   │
00:01:12 #4157 [Verbose] > │         let v34 : (num_complex_Complex<float> -> US0) = closure5()           │
00:01:12 #4158 [Verbose] > │         let v35 : US0 = US0_0                                                │
00:01:12 #4159 [Verbose] > │         let v36 : US0 = v33 |> Option.map v34 |> Option.defaultValue v35     │
00:01:12 #4160 [Verbose] > │         let v37 : string = "f64::NAN"                                        │
00:01:12 #4161 [Verbose] > │         let v38 : float = Fable.Core.RustInterop.emitRustExpr () v37         │
00:01:12 #4162 [Verbose] > │         let v39 : string = "f64::NAN"                                        │
00:01:12 #4163 [Verbose] > │         let v40 : float = Fable.Core.RustInterop.emitRustExpr () v39         │
00:01:12 #4164 [Verbose] > │         let v41 : float = method31(v38)                                      │
00:01:12 #4165 [Verbose] > │         let v42 : float = method3(v41)                                       │
00:01:12 #4166 [Verbose] > │         let v43 : float = method32(v40)                                      │
00:01:12 #4167 [Verbose] > │         let v44 : string = "num_complex::Complex::new(v42, v43)"             │
00:01:12 #4168 [Verbose] > │         let v45 : num_complex_Complex<float> =                               │
00:01:12 #4169 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v44                                   │
00:01:12 #4170 [Verbose] > │         let v48 : num_complex_Complex<float> =                               │
00:01:12 #4171 [Verbose] > │             match v36 with                                                   │
00:01:12 #4172 [Verbose] > │             | US0_0 -> (* None *)                                            │
00:01:12 #4173 [Verbose] > │                 v45                                                          │
00:01:12 #4174 [Verbose] > │             | US0_1(v46) -> (* Some *)                                       │
00:01:12 #4175 [Verbose] > │                 v46                                                          │
00:01:12 #4176 [Verbose] > │         let v49 : float = method2()                                          │
00:01:12 #4177 [Verbose] > │         let v50 : float = method3(v49)                                       │
00:01:12 #4178 [Verbose] > │         let v51 : float = method4()                                          │
00:01:12 #4179 [Verbose] > │         let v52 : string = "num_complex::Complex::new(v50, v51)"             │
00:01:12 #4180 [Verbose] > │         let v53 : num_complex_Complex<float> =                               │
00:01:12 #4181 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v52                                   │
00:01:12 #4182 [Verbose] > │         let v54 : num_complex_Complex<float> = method39(v53)                 │
00:01:12 #4183 [Verbose] > │         let v55 : num_complex_Complex<float> = method40(v27)                 │
00:01:12 #4184 [Verbose] > │         let v56 : string = "num_complex::Complex::powc(v54, v55)"            │
00:01:12 #4185 [Verbose] > │         let v57 : num_complex_Complex<float> =                               │
00:01:12 #4186 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v56                                   │
00:01:12 #4187 [Verbose] > │         let v58 : float = method42()                                         │
00:01:12 #4188 [Verbose] > │         let v59 : float = method3(v58)                                       │
00:01:12 #4189 [Verbose] > │         let v60 : float = method4()                                          │
00:01:12 #4190 [Verbose] > │         let v61 : string = "num_complex::Complex::new(v59, v60)"             │
00:01:12 #4191 [Verbose] > │         let v62 : num_complex_Complex<float> =                               │
00:01:12 #4192 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v61                                   │
00:01:12 #4193 [Verbose] > │         let v63 : float = method38()                                         │
00:01:12 #4194 [Verbose] > │         let v64 : float = method3(v63)                                       │
00:01:12 #4195 [Verbose] > │         let v65 : float = method4()                                          │
00:01:12 #4196 [Verbose] > │         let v66 : string = "num_complex::Complex::new(v64, v65)"             │
00:01:12 #4197 [Verbose] > │         let v67 : num_complex_Complex<float> =                               │
00:01:12 #4198 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v66                                   │
00:01:12 #4199 [Verbose] > │         let v68 : string = "v27 - v67"                                       │
00:01:12 #4200 [Verbose] > │         let v69 : num_complex_Complex<float> =                               │
00:01:12 #4201 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v68                                   │
00:01:12 #4202 [Verbose] > │         let v70 : num_complex_Complex<float> = method39(v62)                 │
00:01:12 #4203 [Verbose] > │         let v71 : num_complex_Complex<float> = method40(v69)                 │
00:01:12 #4204 [Verbose] > │         let v72 : string = "num_complex::Complex::powc(v70, v71)"            │
00:01:12 #4205 [Verbose] > │         let v73 : num_complex_Complex<float> =                               │
00:01:12 #4206 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v72                                   │
00:01:12 #4207 [Verbose] > │         let v74 : string = "v57 * v73"                                       │
00:01:12 #4208 [Verbose] > │         let v75 : num_complex_Complex<float> =                               │
00:01:12 #4209 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v74                                   │
00:01:12 #4210 [Verbose] > │         let v76 : float = method42()                                         │
00:01:12 #4211 [Verbose] > │         let v77 : float = method3(v76)                                       │
00:01:12 #4212 [Verbose] > │         let v78 : float = method4()                                          │
00:01:12 #4213 [Verbose] > │         let v79 : string = "num_complex::Complex::new(v77, v78)"             │
00:01:12 #4214 [Verbose] > │         let v80 : num_complex_Complex<float> =                               │
00:01:12 #4215 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v79                                   │
00:01:12 #4216 [Verbose] > │         let v81 : string = "v80 * v27"                                       │
00:01:12 #4217 [Verbose] > │         let v82 : num_complex_Complex<float> =                               │
00:01:12 #4218 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v81                                   │
00:01:12 #4219 [Verbose] > │         let v83 : float = method2()                                          │
00:01:12 #4220 [Verbose] > │         let v84 : float = method3(v83)                                       │
00:01:12 #4221 [Verbose] > │         let v85 : float = method4()                                          │
00:01:12 #4222 [Verbose] > │         let v86 : string = "num_complex::Complex::new(v84, v85)"             │
00:01:12 #4223 [Verbose] > │         let v87 : num_complex_Complex<float> =                               │
00:01:12 #4224 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v86                                   │
00:01:12 #4225 [Verbose] > │         let v88 : string = "v82 / v87"                                       │
00:01:12 #4226 [Verbose] > │         let v89 : num_complex_Complex<float> =                               │
00:01:12 #4227 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v88                                   │
00:01:12 #4228 [Verbose] > │         let v90 : string = "v89.sin()"                                       │
00:01:12 #4229 [Verbose] > │         let v91 : num_complex_Complex<float> =                               │
00:01:12 #4230 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v90                                   │
00:01:12 #4231 [Verbose] > │         let v92 : string = "v75 * v91"                                       │
00:01:12 #4232 [Verbose] > │         let v93 : num_complex_Complex<float> =                               │
00:01:12 #4233 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v92                                   │
00:01:12 #4234 [Verbose] > │         let v94 : float = method38()                                         │
00:01:12 #4235 [Verbose] > │         let v95 : float = method3(v94)                                       │
00:01:12 #4236 [Verbose] > │         let v96 : float = method4()                                          │
00:01:12 #4237 [Verbose] > │         let v97 : string = "num_complex::Complex::new(v95, v96)"             │
00:01:12 #4238 [Verbose] > │         let v98 : num_complex_Complex<float> =                               │
00:01:12 #4239 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v97                                   │
00:01:12 #4240 [Verbose] > │         let v99 : string = "v98 - v27"                                       │
00:01:12 #4241 [Verbose] > │         let v100 : num_complex_Complex<float> =                              │
00:01:12 #4242 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v99                                   │
00:01:12 #4243 [Verbose] > │         let v101 : string = $"        s = mpmath.gamma(s)"                   │
00:01:12 #4244 [Verbose] > │         let v102 : num_complex_Complex<float> = method8(v100)                │
00:01:12 #4245 [Verbose] > │         let v103 : Result<num_complex_Complex<float>, std_string_String> =   │
00:01:12 #4246 [Verbose] > │ method41(v0, v101, v102)                                                     │
00:01:12 #4247 [Verbose] > │         let v104 : string = "v103.ok()"                                      │
00:01:12 #4248 [Verbose] > │         let v105 : num_complex_Complex<float> option =                       │
00:01:12 #4249 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v104                                  │
00:01:12 #4250 [Verbose] > │         let v106 : US0 = US0_0                                               │
00:01:12 #4251 [Verbose] > │         let v107 : US0 = v105 |> Option.map v34 |> Option.defaultValue v106  │
00:01:12 #4252 [Verbose] > │         let v108 : string = "f64::NAN"                                       │
00:01:12 #4253 [Verbose] > │         let v109 : float = Fable.Core.RustInterop.emitRustExpr () v108       │
00:01:12 #4254 [Verbose] > │         let v110 : string = "f64::NAN"                                       │
00:01:12 #4255 [Verbose] > │         let v111 : float = Fable.Core.RustInterop.emitRustExpr () v110       │
00:01:12 #4256 [Verbose] > │         let v112 : float = method31(v109)                                    │
00:01:12 #4257 [Verbose] > │         let v113 : float = method3(v112)                                     │
00:01:12 #4258 [Verbose] > │         let v114 : float = method32(v111)                                    │
00:01:12 #4259 [Verbose] > │         let v115 : string = "num_complex::Complex::new(v113, v114)"          │
00:01:12 #4260 [Verbose] > │         let v116 : num_complex_Complex<float> =                              │
00:01:12 #4261 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v115                                  │
00:01:12 #4262 [Verbose] > │         let v119 : num_complex_Complex<float> =                              │
00:01:12 #4263 [Verbose] > │             match v107 with                                                  │
00:01:12 #4264 [Verbose] > │             | US0_0 -> (* None *)                                            │
00:01:12 #4265 [Verbose] > │                 v116                                                         │
00:01:12 #4266 [Verbose] > │             | US0_1(v117) -> (* Some *)                                      │
00:01:12 #4267 [Verbose] > │                 v117                                                         │
00:01:12 #4268 [Verbose] > │         let v120 : string = "v93 * v119"                                     │
00:01:12 #4269 [Verbose] > │         let v121 : num_complex_Complex<float> =                              │
00:01:12 #4270 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v120                                  │
00:01:12 #4271 [Verbose] > │         let v122 : num_complex_Complex<float> = method13(v27)                │
00:01:12 #4272 [Verbose] > │         let v123 : string = "v122.re"                                        │
00:01:12 #4273 [Verbose] > │         let v124 : float = Fable.Core.RustInterop.emitRustExpr () v123       │
00:01:12 #4274 [Verbose] > │         let v125 : float = 1.0 - v124                                        │
00:01:12 #4275 [Verbose] > │         let v126 : num_complex_Complex<float> = method14(v27)                │
00:01:12 #4276 [Verbose] > │         let v127 : string = "v126.im"                                        │
00:01:12 #4277 [Verbose] > │         let v128 : float = Fable.Core.RustInterop.emitRustExpr () v127       │
00:01:12 #4278 [Verbose] > │         let v129 : float =  -v128                                            │
00:01:12 #4279 [Verbose] > │         let v130 : float = method31(v125)                                    │
00:01:12 #4280 [Verbose] > │         let v131 : float = method3(v130)                                     │
00:01:12 #4281 [Verbose] > │         let v132 : float = method32(v129)                                    │
00:01:12 #4282 [Verbose] > │         let v133 : string = "num_complex::Complex::new(v131, v132)"          │
00:01:12 #4283 [Verbose] > │         let v134 : num_complex_Complex<float> =                              │
00:01:12 #4284 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v133                                  │
00:01:12 #4285 [Verbose] > │         let v135 : string = $"        s = mpmath.zeta(s)"                    │
00:01:12 #4286 [Verbose] > │         let v136 : num_complex_Complex<float> = method8(v134)                │
00:01:12 #4287 [Verbose] > │         let v137 : Result<num_complex_Complex<float>, std_string_String> =   │
00:01:12 #4288 [Verbose] > │ method9(v0, v135, v136)                                                      │
00:01:12 #4289 [Verbose] > │         let v138 : num_complex_Complex<float> = method33(v0, v134)           │
00:01:12 #4290 [Verbose] > │         let v139 : string = "v137.ok()"                                      │
00:01:12 #4291 [Verbose] > │         let v140 : num_complex_Complex<float> option =                       │
00:01:12 #4292 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v139                                  │
00:01:12 #4293 [Verbose] > │         let v141 : US0 = US0_0                                               │
00:01:12 #4294 [Verbose] > │         let v142 : US0 = v140 |> Option.map v34 |> Option.defaultValue v141  │
00:01:12 #4295 [Verbose] > │         let v143 : string = "f64::NAN"                                       │
00:01:12 #4296 [Verbose] > │         let v144 : float = Fable.Core.RustInterop.emitRustExpr () v143       │
00:01:12 #4297 [Verbose] > │         let v145 : string = "f64::NAN"                                       │
00:01:12 #4298 [Verbose] > │         let v146 : float = Fable.Core.RustInterop.emitRustExpr () v145       │
00:01:12 #4299 [Verbose] > │         let v147 : float = method31(v144)                                    │
00:01:12 #4300 [Verbose] > │         let v148 : float = method3(v147)                                     │
00:01:12 #4301 [Verbose] > │         let v149 : float = method32(v146)                                    │
00:01:12 #4302 [Verbose] > │         let v150 : string = "num_complex::Complex::new(v148, v149)"          │
00:01:12 #4303 [Verbose] > │         let v151 : num_complex_Complex<float> =                              │
00:01:12 #4304 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v150                                  │
00:01:12 #4305 [Verbose] > │         let v154 : num_complex_Complex<float> =                              │
00:01:12 #4306 [Verbose] > │             match v142 with                                                  │
00:01:12 #4307 [Verbose] > │             | US0_0 -> (* None *)                                            │
00:01:12 #4308 [Verbose] > │                 v151                                                         │
00:01:12 #4309 [Verbose] > │             | US0_1(v152) -> (* Some *)                                      │
00:01:12 #4310 [Verbose] > │                 v152                                                         │
00:01:12 #4311 [Verbose] > │         let v155 : string = "v121 * v154"                                    │
00:01:12 #4312 [Verbose] > │         let v156 : num_complex_Complex<float> =                              │
00:01:12 #4313 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v155                                  │
00:01:12 #4314 [Verbose] > │         let v157 : num_complex_Complex<float> = method13(v48)                │
00:01:12 #4315 [Verbose] > │         let v158 : string = "v157.re"                                        │
00:01:12 #4316 [Verbose] > │         let v159 : float = Fable.Core.RustInterop.emitRustExpr () v158       │
00:01:12 #4317 [Verbose] > │         let v160 : num_complex_Complex<float> = method13(v156)               │
00:01:12 #4318 [Verbose] > │         let v161 : string = "v160.re"                                        │
00:01:12 #4319 [Verbose] > │         let v162 : float = Fable.Core.RustInterop.emitRustExpr () v161       │
00:01:12 #4320 [Verbose] > │         let v163 : float = v159 - v162                                       │
00:01:12 #4321 [Verbose] > │         let v164 : float =  -v163                                            │
00:01:12 #4322 [Verbose] > │         let v165 : bool = v163 >= v164                                       │
00:01:12 #4323 [Verbose] > │         let v166 : float =                                                   │
00:01:12 #4324 [Verbose] > │             if v165 then                                                     │
00:01:12 #4325 [Verbose] > │                 v163                                                         │
00:01:12 #4326 [Verbose] > │             else                                                             │
00:01:12 #4327 [Verbose] > │                 v164                                                         │
00:01:12 #4328 [Verbose] > │         let v167 : string = $"%A{v166}"                                      │
00:01:12 #4329 [Verbose] > │         System.Console.WriteLine v167                                        │
00:01:12 #4330 [Verbose] > │         let v168 : bool = v166 < 0.0001                                      │
00:01:12 #4331 [Verbose] > │         let v170 : bool =                                                    │
00:01:12 #4332 [Verbose] > │             if v168 then                                                     │
00:01:12 #4333 [Verbose] > │                 true                                                         │
00:01:12 #4334 [Verbose] > │             else                                                             │
00:01:12 #4335 [Verbose] > │                 method43(v168)                                               │
00:01:12 #4336 [Verbose] > │         let v171 : string = $"__expect / actual: %A{v166} / expected:        │
00:01:12 #4337 [Verbose] > │ %A{0.0001}"                                                                  │
00:01:12 #4338 [Verbose] > │         let v172 : bool = v170 = false                                       │
00:01:12 #4339 [Verbose] > │         if v172 then                                                         │
00:01:12 #4340 [Verbose] > │             failwith<unit> v171                                              │
00:01:12 #4341 [Verbose] > │         let v173 : num_complex_Complex<float> = method14(v48)                │
00:01:12 #4342 [Verbose] > │         let v174 : string = "v173.im"                                        │
00:01:12 #4343 [Verbose] > │         let v175 : float = Fable.Core.RustInterop.emitRustExpr () v174       │
00:01:12 #4344 [Verbose] > │         let v176 : num_complex_Complex<float> = method14(v156)               │
00:01:12 #4345 [Verbose] > │         let v177 : string = "v176.im"                                        │
00:01:12 #4346 [Verbose] > │         let v178 : float = Fable.Core.RustInterop.emitRustExpr () v177       │
00:01:12 #4347 [Verbose] > │         let v179 : float = v175 - v178                                       │
00:01:12 #4348 [Verbose] > │         let v180 : float =  -v179                                            │
00:01:12 #4349 [Verbose] > │         let v181 : bool = v179 >= v180                                       │
00:01:12 #4350 [Verbose] > │         let v182 : float =                                                   │
00:01:12 #4351 [Verbose] > │             if v181 then                                                     │
00:01:12 #4352 [Verbose] > │                 v179                                                         │
00:01:12 #4353 [Verbose] > │             else                                                             │
00:01:12 #4354 [Verbose] > │                 v180                                                         │
00:01:12 #4355 [Verbose] > │         let v183 : string = $"%A{v182}"                                      │
00:01:12 #4356 [Verbose] > │         System.Console.WriteLine v183                                        │
00:01:12 #4357 [Verbose] > │         let v184 : bool = v182 < 0.0001                                      │
00:01:12 #4358 [Verbose] > │         let v186 : bool =                                                    │
00:01:12 #4359 [Verbose] > │             if v184 then                                                     │
00:01:12 #4360 [Verbose] > │                 true                                                         │
00:01:12 #4361 [Verbose] > │             else                                                             │
00:01:12 #4362 [Verbose] > │                 method43(v184)                                               │
00:01:12 #4363 [Verbose] > │         let v187 : string = $"__expect / actual: %A{v182} / expected:        │
00:01:12 #4364 [Verbose] > │ %A{0.0001}"                                                                  │
00:01:12 #4365 [Verbose] > │         let v188 : bool = v186 = false                                       │
00:01:12 #4366 [Verbose] > │         if v188 then                                                         │
00:01:12 #4367 [Verbose] > │             failwith<unit> v187                                              │
00:01:12 #4368 [Verbose] > │         let v189 : int32 = v26 + 1                                           │
00:01:12 #4369 [Verbose] > │         v24.l0 <- v189                                                       │
00:01:12 #4370 [Verbose] > │         ()                                                                   │
00:01:12 #4371 [Verbose] > │     ()                                                                       │
00:01:12 #4372 [Verbose] > │ and method88 () : unit =                                                     │
00:01:12 #4373 [Verbose] > │     let v0 : string = "pyo3::prepare_freethreaded_python()"                  │
00:01:12 #4374 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v0                                │
00:01:12 #4375 [Verbose] > │     let v1 : string = "let __result = pyo3::Python::with_gil(|py| ->         │
00:01:12 #4376 [Verbose] > │ pyo3::PyResult<()> { //"                                                     │
00:01:12 #4377 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v1                                │
00:01:12 #4378 [Verbose] > │     let v2 : string = "py"                                                   │
00:01:12 #4379 [Verbose] > │     let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2         │
00:01:12 #4380 [Verbose] > │     method89(v3)                                                             │
00:01:12 #4381 [Verbose] > │     let v4 : Result<unit, pyo3_PyErr> = Ok ()                                │
00:01:12 #4382 [Verbose] > │     let v5 : Result<unit, pyo3_PyErr> = method44(v4)                         │
00:01:12 #4383 [Verbose] > │     let v6 : string = "v5 }})"                                               │
00:01:12 #4384 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v6                                │
00:01:12 #4385 [Verbose] > │     let v7 : string = "{ //"                                                 │
00:01:12 #4386 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v7                                │
00:01:12 #4387 [Verbose] > │     let v8 : string = "__result"                                             │
00:01:12 #4388 [Verbose] > │     let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr  │
00:01:12 #4389 [Verbose] > │ () v8                                                                        │
00:01:12 #4390 [Verbose] > │     let v10 : Result<unit, pyo3_PyErr> = method45(v9)                        │
00:01:12 #4391 [Verbose] > │     let v11 : string = "v10.unwrap()"                                        │
00:01:12 #4392 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v11                               │
00:01:12 #4393 [Verbose] > │     ()                                                                       │
00:01:12 #4394 [Verbose] > │ and method98 (v0 : int32, v1 : Mut3) : bool =                                │
00:01:12 #4395 [Verbose] > │     let v2 : int32 = v1.l0                                                   │
00:01:12 #4396 [Verbose] > │     let v3 : bool = v2 < v0                                                  │
00:01:12 #4397 [Verbose] > │     v3                                                                       │
00:01:12 #4398 [Verbose] > │ and method97 (v0 : pyo3_Python) : unit =                                     │
00:01:12 #4399 [Verbose] > │     let v1 : (float []) = [|2.0; 2.5; 3.0; 3.5; 4.0; 4.5; 5.0|]              │
00:01:12 #4400 [Verbose] > │     let v2 : (float []) = method65(v1)                                       │
00:01:12 #4401 [Verbose] > │     let v3 : (float []) = [|2.0; 3.0; 5.0; 7.0; 11.0; 13.0; 17.0; 19.0;      │
00:01:12 #4402 [Verbose] > │ 23.0; 29.0; 31.0; 37.0; 41.0; 43.0; 47.0; 53.0; 59.0; 61.0; 67.0; 71.0|]     │
00:01:12 #4403 [Verbose] > │     let v4 : (float []) = method65(v3)                                       │
00:01:12 #4404 [Verbose] > │     let v5 : int32 = v2.Length                                               │
00:01:12 #4405 [Verbose] > │     let v6 : Mut0 = {l0 = 0} : Mut0                                          │
00:01:12 #4406 [Verbose] > │     while method7(v5, v6) do                                                 │
00:01:12 #4407 [Verbose] > │         let v8 : int32 = v6.l0                                               │
00:01:12 #4408 [Verbose] > │         let v9 : float = v2.[int v8]                                         │
00:01:12 #4409 [Verbose] > │         let v10 : float = method31(v9)                                       │
00:01:12 #4410 [Verbose] > │         let v11 : float = method3(v10)                                       │
00:01:12 #4411 [Verbose] > │         let v12 : float = method4()                                          │
00:01:12 #4412 [Verbose] > │         let v13 : string = "num_complex::Complex::new(v11, v12)"             │
00:01:12 #4413 [Verbose] > │         let v14 : num_complex_Complex<float> =                               │
00:01:12 #4414 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v13                                   │
00:01:12 #4415 [Verbose] > │         let v15 : int32 = v4.Length                                          │
00:01:12 #4416 [Verbose] > │         let v16 : Mut3 = {l0 = 0; l1 = 1.0} : Mut3                           │
00:01:12 #4417 [Verbose] > │         while method98(v15, v16) do                                          │
00:01:12 #4418 [Verbose] > │             let v18 : int32 = v16.l0                                         │
00:01:12 #4419 [Verbose] > │             let v19 : float = v16.l1                                         │
00:01:12 #4420 [Verbose] > │             let v20 : float = v4.[int v18]                                   │
00:01:12 #4421 [Verbose] > │             let v21 : float =  -v9                                           │
00:01:12 #4422 [Verbose] > │             let v22 : float = v20 ** v21                                     │
00:01:12 #4423 [Verbose] > │             let v23 : float = 1.0 - v22                                      │
00:01:12 #4424 [Verbose] > │             let v24 : float = v19 / v23                                      │
00:01:12 #4425 [Verbose] > │             let v25 : int32 = v18 + 1                                        │
00:01:12 #4426 [Verbose] > │             v16.l0 <- v25                                                    │
00:01:12 #4427 [Verbose] > │             v16.l1 <- v24                                                    │
00:01:12 #4428 [Verbose] > │             ()                                                               │
00:01:12 #4429 [Verbose] > │         let v26 : float = v16.l1                                             │
00:01:12 #4430 [Verbose] > │         let v27 : string = $"        s = mpmath.zeta(s)"                     │
00:01:12 #4431 [Verbose] > │         let v28 : num_complex_Complex<float> = method8(v14)                  │
00:01:12 #4432 [Verbose] > │         let v29 : Result<num_complex_Complex<float>, std_string_String> =    │
00:01:12 #4433 [Verbose] > │ method9(v0, v27, v28)                                                        │
00:01:12 #4434 [Verbose] > │         let v30 : num_complex_Complex<float> = method33(v0, v14)             │
00:01:12 #4435 [Verbose] > │         let v31 : string = "v29.ok()"                                        │
00:01:12 #4436 [Verbose] > │         let v32 : num_complex_Complex<float> option =                        │
00:01:12 #4437 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v31                                   │
00:01:12 #4438 [Verbose] > │         let v33 : (num_complex_Complex<float> -> US0) = closure5()           │
00:01:12 #4439 [Verbose] > │         let v34 : US0 = US0_0                                                │
00:01:12 #4440 [Verbose] > │         let v35 : US0 = v32 |> Option.map v33 |> Option.defaultValue v34     │
00:01:12 #4441 [Verbose] > │         let v36 : string = "f64::NAN"                                        │
00:01:12 #4442 [Verbose] > │         let v37 : float = Fable.Core.RustInterop.emitRustExpr () v36         │
00:01:12 #4443 [Verbose] > │         let v38 : string = "f64::NAN"                                        │
00:01:12 #4444 [Verbose] > │         let v39 : float = Fable.Core.RustInterop.emitRustExpr () v38         │
00:01:12 #4445 [Verbose] > │         let v40 : float = method31(v37)                                      │
00:01:12 #4446 [Verbose] > │         let v41 : float = method3(v40)                                       │
00:01:12 #4447 [Verbose] > │         let v42 : float = method32(v39)                                      │
00:01:12 #4448 [Verbose] > │         let v43 : string = "num_complex::Complex::new(v41, v42)"             │
00:01:12 #4449 [Verbose] > │         let v44 : num_complex_Complex<float> =                               │
00:01:12 #4450 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v43                                   │
00:01:12 #4451 [Verbose] > │         let v47 : num_complex_Complex<float> =                               │
00:01:12 #4452 [Verbose] > │             match v35 with                                                   │
00:01:12 #4453 [Verbose] > │             | US0_0 -> (* None *)                                            │
00:01:12 #4454 [Verbose] > │                 v44                                                          │
00:01:12 #4455 [Verbose] > │             | US0_1(v45) -> (* Some *)                                       │
00:01:12 #4456 [Verbose] > │                 v45                                                          │
00:01:12 #4457 [Verbose] > │         let v48 : num_complex_Complex<float> = method13(v47)                 │
00:01:12 #4458 [Verbose] > │         let v49 : string = "v48.re"                                          │
00:01:12 #4459 [Verbose] > │         let v50 : float = Fable.Core.RustInterop.emitRustExpr () v49         │
00:01:12 #4460 [Verbose] > │         let v51 : float = v50 - v26                                          │
00:01:12 #4461 [Verbose] > │         let v52 : float =  -v51                                              │
00:01:12 #4462 [Verbose] > │         let v53 : bool = v51 >= v52                                          │
00:01:12 #4463 [Verbose] > │         let v54 : float =                                                    │
00:01:12 #4464 [Verbose] > │             if v53 then                                                      │
00:01:12 #4465 [Verbose] > │                 v51                                                          │
00:01:12 #4466 [Verbose] > │             else                                                             │
00:01:12 #4467 [Verbose] > │                 v52                                                          │
00:01:12 #4468 [Verbose] > │         let v55 : string = $"%A{v54}"                                        │
00:01:12 #4469 [Verbose] > │         System.Console.WriteLine v55                                         │
00:01:12 #4470 [Verbose] > │         let v56 : bool = v54 < 0.01                                          │
00:01:12 #4471 [Verbose] > │         let v58 : bool =                                                     │
00:01:12 #4472 [Verbose] > │             if v56 then                                                      │
00:01:12 #4473 [Verbose] > │                 true                                                         │
00:01:12 #4474 [Verbose] > │             else                                                             │
00:01:12 #4475 [Verbose] > │                 method43(v56)                                                │
00:01:12 #4476 [Verbose] > │         let v59 : string = $"__expect / actual: %A{v54} / expected:          │
00:01:12 #4477 [Verbose] > │ %A{0.01}"                                                                    │
00:01:12 #4478 [Verbose] > │         let v60 : bool = v58 = false                                         │
00:01:12 #4479 [Verbose] > │         if v60 then                                                          │
00:01:12 #4480 [Verbose] > │             failwith<unit> v59                                               │
00:01:12 #4481 [Verbose] > │         let v61 : num_complex_Complex<float> = method14(v47)                 │
00:01:12 #4482 [Verbose] > │         let v62 : string = "v61.im"                                          │
00:01:12 #4483 [Verbose] > │         let v63 : float = Fable.Core.RustInterop.emitRustExpr () v62         │
00:01:12 #4484 [Verbose] > │         let v64 : string = $"%A{v63}"                                        │
00:01:12 #4485 [Verbose] > │         System.Console.WriteLine v64                                         │
00:01:12 #4486 [Verbose] > │         let v65 : bool = v63 < 0.01                                          │
00:01:12 #4487 [Verbose] > │         let v67 : bool =                                                     │
00:01:12 #4488 [Verbose] > │             if v65 then                                                      │
00:01:12 #4489 [Verbose] > │                 true                                                         │
00:01:12 #4490 [Verbose] > │             else                                                             │
00:01:12 #4491 [Verbose] > │                 method43(v65)                                                │
00:01:12 #4492 [Verbose] > │         let v68 : string = $"__expect / actual: %A{v63} / expected:          │
00:01:12 #4493 [Verbose] > │ %A{0.01}"                                                                    │
00:01:12 #4494 [Verbose] > │         let v69 : bool = v67 = false                                         │
00:01:12 #4495 [Verbose] > │         if v69 then                                                          │
00:01:12 #4496 [Verbose] > │             failwith<unit> v68                                               │
00:01:12 #4497 [Verbose] > │         let v70 : int32 = v8 + 1                                             │
00:01:12 #4498 [Verbose] > │         v6.l0 <- v70                                                         │
00:01:12 #4499 [Verbose] > │         ()                                                                   │
00:01:12 #4500 [Verbose] > │     ()                                                                       │
00:01:12 #4501 [Verbose] > │ and method96 () : unit =                                                     │
00:01:12 #4502 [Verbose] > │     let v0 : string = "pyo3::prepare_freethreaded_python()"                  │
00:01:12 #4503 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v0                                │
00:01:12 #4504 [Verbose] > │     let v1 : string = "let __result = pyo3::Python::with_gil(|py| ->         │
00:01:12 #4505 [Verbose] > │ pyo3::PyResult<()> { //"                                                     │
00:01:12 #4506 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v1                                │
00:01:12 #4507 [Verbose] > │     let v2 : string = "py"                                                   │
00:01:12 #4508 [Verbose] > │     let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2         │
00:01:12 #4509 [Verbose] > │     method97(v3)                                                             │
00:01:12 #4510 [Verbose] > │     let v4 : Result<unit, pyo3_PyErr> = Ok ()                                │
00:01:12 #4511 [Verbose] > │     let v5 : Result<unit, pyo3_PyErr> = method44(v4)                         │
00:01:12 #4512 [Verbose] > │     let v6 : string = "v5 }})"                                               │
00:01:12 #4513 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v6                                │
00:01:12 #4514 [Verbose] > │     let v7 : string = "{ //"                                                 │
00:01:12 #4515 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v7                                │
00:01:12 #4516 [Verbose] > │     let v8 : string = "__result"                                             │
00:01:12 #4517 [Verbose] > │     let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr  │
00:01:12 #4518 [Verbose] > │ () v8                                                                        │
00:01:12 #4519 [Verbose] > │     let v10 : Result<unit, pyo3_PyErr> = method45(v9)                        │
00:01:12 #4520 [Verbose] > │     let v11 : string = "v10.unwrap()"                                        │
00:01:12 #4521 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v11                               │
00:01:12 #4522 [Verbose] > │     ()                                                                       │
00:01:12 #4523 [Verbose] > │ and closure0 () () : unit =                                                  │
00:01:12 #4524 [Verbose] > │     let v0 : string = "}//"                                                  │
00:01:12 #4525 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v0                                │
00:01:12 #4526 [Verbose] > │     let v1 : string = "#[test] fn test_zeta_at_known_values_() { //"         │
00:01:12 #4527 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v1                                │
00:01:12 #4528 [Verbose] > │     method0()                                                                │
00:01:12 #4529 [Verbose] > │     let v2 : string = "} #[test] fn test_zeta_at_2_minus2() { //"            │
00:01:12 #4530 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v2                                │
00:01:12 #4531 [Verbose] > │     method46()                                                               │
00:01:12 #4532 [Verbose] > │     let v3 : string = "} #[test] fn test_trivial_zero_at_negative_even___()  │
00:01:12 #4533 [Verbose] > │ { //"                                                                        │
00:01:12 #4534 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v3                                │
00:01:12 #4535 [Verbose] > │     method49()                                                               │
00:01:12 #4536 [Verbose] > │     let v4 : string = "} #[test] fn test_non_trivial_zero___() { //"         │
00:01:12 #4537 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v4                                │
00:01:12 #4538 [Verbose] > │     method53()                                                               │
00:01:12 #4539 [Verbose] > │     let v5 : string = "} #[test] fn test_real_part_greater_than_one___() {   │
00:01:12 #4540 [Verbose] > │ //"                                                                          │
00:01:12 #4541 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v5                                │
00:01:12 #4542 [Verbose] > │     method63()                                                               │
00:01:12 #4543 [Verbose] > │     let v6 : string = "} #[test] fn test_zeta_at_1___() { //"                │
00:01:12 #4544 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v6                                │
00:01:12 #4545 [Verbose] > │     method66()                                                               │
00:01:12 #4546 [Verbose] > │     let v7 : string = "} #[test] fn test_symmetry_across_real_axis___() {    │
00:01:12 #4547 [Verbose] > │ //"                                                                          │
00:01:12 #4548 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v7                                │
00:01:12 #4549 [Verbose] > │     method68()                                                               │
00:01:12 #4550 [Verbose] > │     let v8 : string = "} #[test] fn test_behavior_near_origin___() { //"     │
00:01:12 #4551 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v8                                │
00:01:12 #4552 [Verbose] > │     method71()                                                               │
00:01:12 #4553 [Verbose] > │     let v9 : string = "} #[test] fn test_imaginary_axis() { //"              │
00:01:12 #4554 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v9                                │
00:01:12 #4555 [Verbose] > │     method75()                                                               │
00:01:12 #4556 [Verbose] > │     let v10 : string = "} #[test] fn test_critical_strip() { //"             │
00:01:12 #4557 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v10                               │
00:01:12 #4558 [Verbose] > │     method79()                                                               │
00:01:12 #4559 [Verbose] > │     let v11 : string = "} #[test] fn                                         │
00:01:12 #4560 [Verbose] > │ test_reflection_formula_for_specific_value() { //"                           │
00:01:12 #4561 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v11                               │
00:01:12 #4562 [Verbose] > │     method88()                                                               │
00:01:12 #4563 [Verbose] > │     let v12 : string = "} #[test] fn test_euler_product_formula() { //"      │
00:01:12 #4564 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v12                               │
00:01:12 #4565 [Verbose] > │     method96()                                                               │
00:01:12 #4566 [Verbose] > │ and closure6 () (v0 : (string [])) : int32 =                                 │
00:01:12 #4567 [Verbose] > │     let v1 : string = $"value: {1}"                                          │
00:01:12 #4568 [Verbose] > │     System.Console.WriteLine v1                                              │
00:01:12 #4569 [Verbose] > │     0                                                                        │
00:01:12 #4570 [Verbose] > │ let v0 : (unit -> unit) = closure0()                                         │
00:01:12 #4571 [Verbose] > │ let tests () = v0 ()                                                         │
00:01:12 #4572 [Verbose] > │ let v1 : ((string []) -> int32) = closure6()                                 │
00:01:12 #4573 [Verbose] > │ let main args = v1 args                                                      │
00:01:12 #4574 [Verbose] > │ ()                                                                           │
00:01:12 #4575 [Verbose] > │                                                                              │
00:01:12 #4576 [Verbose] > │                                                                              │
00:01:12 #4577 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:13 #4578 [Verbose] > [NbConvertApp] Converting notebook math.dib.ipynb to html
00:01:13 #4579 [Verbose] > /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:01:13 #4580 [Verbose] >   validate(nb)
00:01:13 #4581 [Verbose] > /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:01:13 #4582 [Verbose] >   return _pygments_highlight(
00:01:14 #4583 [Verbose] > [NbConvertApp] Writing 7298684 bytes to math.dib.html
00:01:14 #4584 [Debug] executeAsync / exitCode: 0 / output.Length: 434089
00:01:14 #4585 [Debug] main / executeCommand / exitCode: 0
00:01:15 #4586 [Verbose] waitForPortAccess / port: 13805 / retry: 0
00:01:15 #4587 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #1 [Debug] writeDibCode / output: Spi / path: math.dib
00:00:00 #2 [Debug] parseDibCode / output: Spi / file: math.dib
00:00:00 #1 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #2 [Debug] executeAsync / options: { Command =
   "dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64"
  WorkingDirectory = None
  CancellationToken = Some System.Threading.CancellationToken
  OnLine = Some <fun:main@425-61> }
00:00:00 #3 [Verbose] > pwd: /home/runner/work/polyglot/polyglot/lib/math
00:00:00 #4 [Verbose] > dll_path: /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release
00:00:00 #5 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #6 [Verbose] waitForPortAccess / port: 13805 / retry: 0
00:00:00 #7 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #8 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #9 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #10 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #11 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #12 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #13 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #14 [Verbose] > Starting the Spiral Server. It is bound to: http://localhost:13805
00:00:00 #15 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #16 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #17 [Debug] sendJson / port: 13805 / json: {"Ping":true} / result.Length:
00:00:00 #18 [Verbose] awaitCompiler / Ping / result: Some(null) / port: 13805 / retry: 0
00:00:00 #19 [Verbose] > Server bound to: http://localhost:13805
00:00:00 #20 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #21 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: [] / typeErrorCount: 0
00:00:00 #22 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: [] / typeErrorCount: 0
00:00:00 #23 [Debug] sendJson / port: 13805 / json: {"FileOpen":{"spiText":"// // # math\n\nopen testing\nopen rust_operators\n\ninl types () =\n    global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022num_complex::Complex\u003C$0\u003E\\\u0022)\u003E] type num_complex_Complex\u003C\u0027T\u003E = class end\u0022\n    global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022pyo3::types::PyModule\\\u0022)\u003E] type pyo3_types_PyModule = class end\u0022\n    global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022pyo3::Bound\u003C$0\u003E\\\u0022)\u003E] type pyo3_Bound\u003C\u0027T\u003E = class end\u0022\n    global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022pyo3::Python\\\u0022)\u003E] type pyo3_Python = class end\u0022\n    global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022pyo3::PyAny\\\u0022)\u003E] type pyo3_PyAny = class end\u0022\n    global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022pyo3::PyErr\\\u0022)\u003E] type pyo3_PyErr = class end\u0022\n\ninl types () =\n    rust.types ()\n    sm\u0027.types ()\n    types ()\n\n// // ## complex\n\nnominal complex t = $\u0022num_complex_Complex\u003C\u0060t\u003E\u0022\nnominal bound t = $\u0022pyo3_Bound\u003C\u0060t\u003E\u0022\nnominal python = $\u0022pyo3_Python\u0022\nnominal pymodule = $\u0022pyo3_types_PyModule\u0022\nnominal pyany = $\u0022pyo3_PyAny\u0022\nnominal pyerr = $\u0022pyo3_PyErr\u0022\n\ninl complex forall t. ((re : t), (im : t)) : complex t =\n    inl re = join re\n    inl re = join re\n    inl im = join im\n    !\\($\u0027\u0022num_complex::Complex::new(!re, !im)\u0022\u0027)\n\n// // ## complex_sin\n\ninl re forall t. (c : complex t) : t =\n    inl c = join c\n    !\\($\u0027\u0022!c.re\u0022\u0027)\n\ninl im forall t. (c : complex t) : t =\n    inl c = join c\n    !\\($\u0027\u0022!c.im\u0022\u0027)\n\ninl complex_unbox forall t. (c : complex t) =\n    re c, im c\n\ninl (~.^) c = complex c\n\ninl complex_eq forall t. (a : complex t) (b : complex t) : bool =\n    !\\($\u0027\u0022!a == !b\u0022\u0027)\n\ninl (.=) a b = complex_eq a b\n\ninstance equable complex t = complex_eq\n\ninl complex_add forall t. (a : complex t) (b : complex t) : complex t =\n    !\\($\u0027\u0022!a \u002B !b\u0022\u0027)\n\ninl (.\u002B) a b = complex_add a b\n\ninl complex_sub forall t. (a : complex t) (b : complex t) : complex t =\n    !\\($\u0027\u0022!a - !b\u0022\u0027)\n\ninl (.-) a b = complex_sub a b\n\ninl complex_mult forall t. (a : complex t) (b : complex t) : complex t =\n    !\\($\u0027\u0022!a * !b\u0022\u0027)\n\ninl (.*) a b = complex_mult a b\n\ninl complex_div forall t. (a : complex t) (b : complex t) : complex t =\n    !\\($\u0027\u0022!a / !b\u0022\u0027)\n\ninl (./) a b = complex_div a b\n\ninl powc forall t. (s : complex t) (c : complex t) : complex t =\n    inl c = join c\n    inl s = join s\n    !\\($\u0027\u0022num_complex::Complex::powc(!c, !s)\u0022\u0027)\n\ninl (.**) a b = powc b a\n\ninl complex_sin forall t. (c : complex t) : complex t =\n    !\\($\u0027\u0022!c.sin()\u0022\u0027)\n\ninl conj forall t. (c : complex t) : complex t =\n    !\\($\u0027\u0022!c.conj()\u0022\u0027)\n\n// // ## zeta\n\ninl zeta log (gamma : complex f64 -\u003E complex f64) (s : complex f64) : complex f64 =\n    inl rec zeta count gamma s =\n        inl s = join s\n        if log then\n            !\\($\u0027\u0022println\\!(\\\\\\\u0022zeta / count: {:?} / s: {:?}\\\\\\\u0022, !count, !s)\u0022\u0027)\n        if re s \u003E 1 then\n            (.^(0, 0), (am.init 10000i32 id : a i32 _))\n            ||\u003E am.fold fun acc n =\u003E\n                acc .\u002B (.^(1, 0) ./ (.^(f64 n, 0) .** s))\n        else\n            inl gamma_term = gamma (.^(1, 0) .- s)\n            inl sin_term = .^(pi, 0) .* s ./ .^(2, 0) |\u003E complex_sin\n            inl one_minus_s = .^(1 - re s, -(im s))\n            inl mirror_term =\n                if re one_minus_s \u003C= 1\n                then .^(0, 0)\n                else\n                    if count \u003C= 3\n                    then zeta (count \u002B 1) gamma one_minus_s\n                    else one_minus_s\n            inl reflection_formula =\n                .^(2, 0) .* (.^(pi, 0) .** s) .* sin_term .* gamma_term .* mirror_term\n            reflection_formula\n    join zeta 0i32 gamma s\n\n// // ## eval\n\ninl module_from_code (py : python) (code : string) : _ (bound pymodule) _ =\n    inl py = join py\n    inl code = code |\u003E sm\u0027.as_str\n    !\\($\u0027\u0022pyo3::types::PyModule::from_code_bound(!py, !code, \\\\\u0022\\\\\u0022, \\\\\u0022\\\\\u0022)\u0022\u0027)\n    |\u003E resultm.map_error\u0027 fun (x : pyerr) =\u003E x |\u003E sm\u0027.format\u0027\n\ninl use_pyanymethods () =\n    global \u0022Fable.Core.RustInterop.emitRustExpr () \\\u0022);\\nuse pyo3::prelude::PyAnyMethods;\\n//\\\u0022\u0022\n\ninl getattr (attr : string) (module : bound pymodule) : _ (bound pyany) _ =\n    inl attr = attr |\u003E sm\u0027.as_str\n    inl module = join module\n    use_pyanymethods ()\n    !\\($\u0027\u0022!module.getattr(!attr)\u0022\u0027)\n    |\u003E resultm.map_error\u0027 fun (x : pyerr) =\u003E x |\u003E sm\u0027.format\u0027\n\ninl call forall t. (args : t) (module : bound pyany) : _ (bound pyany) _ =\n    inl args = join args\n    inl module = join module\n    !\\($\u0027\u0022pyo3::prelude::PyAnyMethods::call(\u0026!module, ((*!args).0, *(*!args).1), None)\u0022\u0027)\n    |\u003E resultm.map_error\u0027 fun (x : pyerr) =\u003E x |\u003E sm\u0027.format\u0027\n\ninl extract forall t. (result : bound pyany) : _ t _ =\n    inl result = join result\n    use_pyanymethods ()\n    !\\($\u0027\u0022!result.extract()\u0022\u0027)\n    |\u003E resultm.map_error\u0027 fun (x : pyerr) =\u003E x |\u003E sm\u0027.format\u0027\n\ninl eval py code (args : pair bool (pair f64 f64)) : _ (_ f64) sm\u0027.std_string =\n    inl code =\n        code\n        |\u003E module_from_code py\n        |\u003E resultm.unwrap\u0027\n    inl fn =\n        code\n        |\u003E getattr \u0022fn\u0022\n        |\u003E resultm.unwrap\u0027\n\n    fn\n    |\u003E call args\n    |\u003E resultm.try\u0027\n    |\u003E extract\n    |\u003E resultm.try\u0027\n    |\u003E complex\n    |\u003E Ok\n    |\u003E resultm.box\n\ninl call1_ log py s code =\n    inl code = join (a code : _ i32 _) |\u003E sm\u0027.concat_array_trailing \u0022\\n\u0022\n    \n    inl s = new_pair (re s) (im s)\n    inl args = new_pair log s\n\n    eval py code args\n\ninl call1_ log name py s line =\n    inl s = join s\n    join\n        ;[\n            $\u0027$\u0022import sys\u0022\u0027\n            $\u0027$\u0022import traceback\u0022\u0027\n            $\u0027$\u0022import re\u0022\u0027\n            $\u0027$\u0022count = 0\u0022\u0027\n            $\u0027$\u0022memory_address_pattern = re.compile(r\\\u0027 at 0x[0-9a-fA-F]\u002B\\\u0027)\u0022\u0027\n            $\u0027$\u0022def trace_calls(frame, event, arg):\u0022\u0027\n            $\u0027$\u0022    global count\u0022\u0027\n            $\u0027$\u0022    count \u002B= 1\u0022\u0027\n            $\u0027$\u0022    if count \u003C 200:\u0022\u0027\n            $\u0027$\u0022        try:\u0022\u0027\n            $\u0027$\u0022            args = {{ k: v for k, v in frame.f_locals.items() if frame.f_code.co_name \\!= \\\u0027make_mpc\\\u0027 and k not in [\\\u0027ctx\\\u0027] and not callable(v) }}\u0022\u0027\n            $\u0027$\u0022            args_str = \\\u0027, \\\u0027.join([ f\\\\\\\u0022{{k}}={{re.sub(memory_address_pattern, \\\u0027 at 0x\u003C?\u003E\\\u0027, repr(v))}}\\\\\\\u0022 for k, v in args.items() ])\u0022\u0027\n            $\u0027$\u0022            print(f\\\\\\\u0022{{event}}({!name}) / f_code.co_name: {{frame.f_code.co_name}} / f_locals: {{args_str}} / f_lineno: {{frame.f_lineno}} / f_code.co_filename: {{frame.f_code.co_filename.split(\\\u0027site-packages\\\u0027)[-1]}} / f_back.f_lineno: {{ \\\u0027\\\u0027 if frame.f_back is None else frame.f_back.f_lineno }} / f_back.f_code.co_filename: {{ \\\u0027\\\u0027 if frame.f_back is None else frame.f_back.f_code.co_filename.split(\\\u0027site-packages\\\u0027)[-1] }} / arg: {{re.sub(memory_address_pattern, \\\u0027 at 0x\u003C?\u003E\\\u0027, repr(arg))}}\\\\\\\u0022, flush=True)\u0022\u0027\n            $\u0027$\u0022        except ValueError as e:\u0022\u0027\n            $\u0027$\u0022            print(f\\\u0027{!name} / e: {{e}}\\\u0027, flush=True)\u0022\u0027\n            $\u0027$\u0022        return trace_calls\u0022\u0027\n            $\u0027$\u0022import mpmath\u0022\u0027\n            $\u0027$\u0022def fn(log, s):\u0022\u0027\n            $\u0027$\u0022    global count\u0022\u0027\n            $\u0027$\u0022    if log:\u0022\u0027\n            $\u0027$\u0022        print(f\\\u0027{!name} / s: {{s}} / count: {{count}}\\\u0027, flush=True)\u0022\u0027\n            $\u0027$\u0022    s = complex(*s)\u0022\u0027\n            $\u0027$\u0022    try:\u0022\u0027\n            $\u0027$\u0022        if log: sys.settrace(trace_calls)\u0022\u0027\n            line\n            $\u0027$\u0022        if log:\u0022\u0027\n            $\u0027$\u0022            sys.settrace(None)\u0022\u0027\n            $\u0027$\u0022            print(f\\\u0027{!name} / result: {{s}} / count: {{count}}\\\u0027, flush=True)\u0022\u0027\n            $\u0027$\u0022    except ValueError as e:\u0022\u0027\n            $\u0027$\u0022        if s.real == 1:\u0022\u0027\n            $\u0027$\u0022            s = complex(float(\\\u0027inf\\\u0027), 0)\u0022\u0027\n            $\u0027$\u0022    return (s.real, s.imag)\u0022\u0027\n        ]\n        |\u003E call1_ log py s\n\ninl gamma_ log py s =\n    call1_ log \u0022gamma_\u0022 py s $\u0027$\u0022        s = mpmath.gamma(s)\u0022\u0027\n\ninl zeta_ log py s =\n    call1_ log \u0022zeta_\u0022 py s $\u0027$\u0022        s = mpmath.zeta(s)\u0022\u0027\n\n// // ## run_test\n\ninl run_test log closure_fix (fn : (complex f64 -\u003E complex f64) * (complex f64 -\u003E complex f64) -\u003E ()) =\n    inl fn_ (py : python) : resultm.result\u0027 () pyerr =\n        inl nan () =\n            !\\($\u0027\u0022f64::NAN\u0022\u0027)\n        inl gamma__ = fun (s : complex f64) =\u003E\n            inl result = gamma_ log py s\n            if log then\n                inl s = join s\n                !\\($\u0027\u0022println\\!(\\\\\\\u0022gamma__ / s: {:?} / result: {:?}\\\\\\\u0022, !s, !result)\u0022\u0027)\n            result |\u003E resultm.ok\u0027 |\u003E optionm\u0027.unbox |\u003E optionm\u0027.default_value .^(nan (), nan ())\n        inl zeta__ = fun (s : complex f64) =\u003E\n            inl result = zeta_ log py s\n\n            inl z = zeta true gamma__ s\n\n            if log then\n                inl s = join s\n                !\\($\u0027\u0022println\\!(\\\\\\\u0022zeta__ / s: {:?} / result: {:?} / z: {:?}\\\\\\\u0022, !s, !result, !z)\u0022\u0027)\n\n    //             re result - re x |\u003E abs\n    //             |\u003E _assert_lt 0.001\n\n    //             im result - im x |\u003E abs\n    //             |\u003E _assert_lt 0.001\n\n            result |\u003E resultm.ok\u0027 |\u003E optionm\u0027.unbox |\u003E optionm\u0027.default_value .^(nan (), nan ())\n        join fn (zeta__, gamma__)\n\n        Ok ()\n        |\u003E resultm.box\n    \n    join\n        !\\($\u0027\u0022pyo3::prepare_freethreaded_python()\u0022\u0027) : ()\n\n        !\\($\u0027\u0022let __result = pyo3::Python::with_gil(|py| -\u003E pyo3::PyResult\u003C()\u003E { //\u0022\u0027)\n\n        let x\u0027 = fn_ (!\\($\u0027\u0022py\u0022\u0027) : python)\n        inl x\u0027 = join x\u0027\n        \n        inl closure_fix = 2u8, 1u8\n        x\u0027 |\u003E rust.fix_closure closure_fix\n\n        (!\\($\u0027\u0022__result\u0022\u0027) : _ () pyerr)\n        |\u003E resultm.unwrap\u0027\n\n// // ## test_zeta_at_known_values_\n\ninl test_zeta_at_known_values_ log = run_test log (3u8, 2u8) fun zeta, gamma =\u003E\n    ;[\n        .^(2, 0), pi ** 2 / 6\n        .^(-1, 0), -1 / 12\n    ]\n    |\u003E fun x =\u003E a x : _ i32 _\n    |\u003E am.iter fun s, e =\u003E\n        inl result = zeta s\n\n        result |\u003E im |\u003E _assert_eq 0\n        re result - e |\u003E abs |\u003E _assert_lt 0.0001\n\n// // ## test_zeta_at_2_minus2\n\ninl test_zeta_at_2_minus2 log = run_test log (6u8, 5u8) fun zeta, gamma =\u003E\n    inl s = .^(2, -2)\n    inl result = zeta s\n\n    (re result - 0.8673) |\u003E abs |\u003E _assert_lt 0.001\n    (im result - 0.2750) |\u003E abs |\u003E _assert_lt 0.001\n\n// // ## test_trivial_zero_at_negative_even___\n\ninl test_trivial_zero_at_negative_even___ log = run_test log (2u8, 1u8) fun zeta, gamma =\u003E\n    (join listm\u0027.init_series -2f64 -40 -2)\n    |\u003E listm.iter fun n =\u003E\n        inl s = .^(n, 0)\n        inl result = zeta s\n\n        result |\u003E re |\u003E _assert_eq 0\n        result |\u003E im |\u003E _assert_eq 0\n\n// // ## test_non_trivial_zero___\n\ninl test_non_trivial_zero___ log = run_test log (3u8, 2u8) fun zeta, gamma =\u003E\n    ;[\n        .^(0.5, 14.134725)\n        .^(0.5, 21.022040)\n        .^(0.5, 25.010857)\n        .^(0.5, 30.424876)\n        .^(0.5, 32.935062)\n        .^(0.5, 37.586178)\n    ]\n    |\u003E fun x =\u003E a x : _ i32 _\n    |\u003E am.iter fun x =\u003E\n            inl result = zeta x\n            result |\u003E re |\u003E abs |\u003E _assert_lt 0.0001\n            result |\u003E im |\u003E abs |\u003E _assert_lt 0.0001\n\n// // ## test_real_part_greater_than_one___\n\ninl test_real_part_greater_than_one___ log = run_test log (3u8, 2u8) fun zeta, gamma =\u003E\n    inl points = ;[2; 3; 4; 5; 10; 20; 50]\n    (a points : _ i32 _)\n    |\u003E am.iter fun point =\u003E\n        inl s = .^(point, 0)\n        inl result = zeta s\n        result |\u003E re |\u003E _assert_gt 0\n        result |\u003E im |\u003E _assert_eq 0\n\n// // ## test_zeta_at_1___\n\ninl test_zeta_at_1___ log = run_test log (6u8, 5u8) fun zeta, gamma =\u003E\n    inl s = .^(1, 0)\n    inl result = zeta s\n    result |\u003E re |\u003E _assert_eq limit.max\n    result |\u003E im |\u003E _assert_eq 0\n\n// // ## test_symmetry_across_real_axis___\n\ninl test_symmetry_across_real_axis___ log = run_test log (8u8, 7u8) fun zeta, gamma =\u003E\n    inl s = .^(2, 10)\n    inl result_positive_im = zeta s\n    inl result_negative_im = zeta .^(re s, -(im s))\n    inl conj = result_negative_im |\u003E conj\n    result_positive_im |\u003E re |\u003E _assert_eq (conj |\u003E re)\n    result_positive_im |\u003E im |\u003E _assert_eq (conj |\u003E im)\n\n// // ## test_behavior_near_origin___\n\ninl test_behavior_near_origin___ log = run_test log (6u8, 5u8) fun zeta, gamma =\u003E\n    inl s = .^(0.01, 0.01)\n    inl result = zeta s\n    result |\u003E re |\u003E _assert_lt limit.max\n    result |\u003E im |\u003E _assert_lt limit.max\n\n// // ## test_imaginary_axis\n\ninl test_imaginary_axis log = run_test log (3u8, 2u8) fun zeta, gamma =\u003E\n    (join a ;[10; 20; 30; 40; 50; 60; 70; 80; 90; 100] : _ i32 _)\n    |\u003E am.iter fun s =\u003E\n        inl s = .^(0, s)\n        inl result = zeta s\n        result |\u003E re |\u003E _assert_ne 0\n        result |\u003E im |\u003E _assert_ne 0\n\n// // ## test_critical_strip\n\ninl test_critical_strip log = run_test log (3u8, 2u8) fun zeta, gamma =\u003E\n    ;[\n        .^(0.5, 14.134725)\n        .^(0.75, 20.5)\n        .^(1.25, 30.1)\n        .^(0.25, 40.0)\n        .^(1.0, 50.0)\n    ]\n    |\u003E fun x =\u003E a x : _ i32 _\n    |\u003E am.iter fun s =\u003E\n        inl result = zeta s\n        result |\u003E re |\u003E _assert_ne 0\n        result |\u003E im |\u003E _assert_ne 0\n\n// // ## test_reflection_formula_for_specific_value\n\ninl test_reflection_formula_for_specific_value log = run_test log (3u8, 2u8) fun zeta, gamma =\u003E\n    ;[\n        .^(3, 4)\n        .^(2.5, -3.5)\n        .^(1.5, 2.5)\n        .^(0.5, 14.134725)\n    ]\n    |\u003E fun x =\u003E a x : _ i32 _\n    |\u003E am.iter fun s =\u003E\n        inl lhs = zeta s\n        inl reflection_coefficient =\n            (.^(2, 0) .** s)\n            .* (.^(pi, 0) .** (s .- .^(1, 0)))\n            .* (.^(pi, 0) .* s ./ .^(2, 0) |\u003E complex_sin)\n            .* gamma (.^(1, 0) .- s)\n\n        inl one_minus_s = .^(1 - re s, -(im s))\n        inl rhs = reflection_coefficient .* zeta one_minus_s\n\n        re lhs - re rhs |\u003E abs |\u003E _assert_lt 0.0001\n        im lhs - im rhs |\u003E abs |\u003E _assert_lt 0.0001\n\n// // ## test_euler_product_formula\n\ninl test_euler_product_formula log = run_test log (3u8, 2u8) fun zeta, gamma =\u003E\n    inl s_values = ;[2; 2.5; 3; 3.5; 4; 4.5; 5]\n    inl primes = ;[2; 3; 5; 7; 11; 13; 17; 19; 23; 29; 31; 37; 41; 43; 47; 53; 59; 61; 67; 71]\n    (a s_values : _ i32 _)\n    |\u003E am.iter fun s_re =\u003E\n        inl s = .^(s_re, 0)\n        inl product =\n            (1, (a primes : _ i32 _))\n            ||\u003E am.fold fun acc x =\u003E\n                acc * 1 / (1 - x ** -s_re)\n\n        inl result = zeta s\n        re result - product |\u003E abs |\u003E _assert_lt 0.01\n        result |\u003E im |\u003E _assert_lt 0.01\n\n// // ## graph\n\n// // ## tests\n\ninl tests () =\n    !\\($\u0027\u0022}//\u0022\u0027) : ()\n\n    !\\($\u0027\u0022#[test] fn test_zeta_at_known_values_() { //\u0022\u0027) : ()\n    test_zeta_at_known_values_ false\n    !\\($\u0027\u0022} #[test] fn test_zeta_at_2_minus2() { //\u0022\u0027) : ()\n    test_zeta_at_2_minus2 false\n    !\\($\u0027\u0022} #[test] fn test_trivial_zero_at_negative_even___() { //\u0022\u0027) : ()\n    test_trivial_zero_at_negative_even___ false\n    !\\($\u0027\u0022} #[test] fn test_non_trivial_zero___() { //\u0022\u0027) : ()\n    test_non_trivial_zero___ false\n    !\\($\u0027\u0022} #[test] fn test_real_part_greater_than_one___() { //\u0022\u0027) : ()\n    test_real_part_greater_than_one___ false\n    !\\($\u0027\u0022} #[test] fn test_zeta_at_1___() { //\u0022\u0027) : ()\n    test_zeta_at_1___ false\n    !\\($\u0027\u0022} #[test] fn test_symmetry_across_real_axis___() { //\u0022\u0027) : ()\n    test_symmetry_across_real_axis___ false\n    !\\($\u0027\u0022} #[test] fn test_behavior_near_origin___() { //\u0022\u0027) : ()\n    test_behavior_near_origin___ false\n    !\\($\u0027\u0022} #[test] fn test_imaginary_axis() { //\u0022\u0027) : ()\n    test_imaginary_axis false\n    !\\($\u0027\u0022} #[test] fn test_critical_strip() { //\u0022\u0027) : ()\n    test_critical_strip false\n    !\\($\u0027\u0022} #[test] fn test_reflection_formula_for_specific_value() { //\u0022\u0027) : ()\n    test_reflection_formula_for_specific_value false\n    !\\($\u0027\u0022} #[test] fn test_euler_product_formula() { //\u0022\u0027) : ()\n    test_euler_product_formula false\n\n// // rust=\n\ninl main (_args : array_base string) =\n    inl value = 1i32\n    console.write_line ($\u0022$\\\u0022value: {!value}\\\u0022\u0022 : string)\n    0i32\n\ninl main () =\n    types ()\n    $\u0022let tests () = !tests ()\u0022 : ()\n    $\u0022let main args = !main args\u0022 : ()\n","uri":"file:///home/runner/work/polyglot/polyglot/lib/math/math.spi"}} / result.Length:
00:00:01 #24 [Debug] sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///home/runner/work/polyglot/polyglot/lib/math/math.spi"}} / result.Length:
00:00:01 #25 [Verbose] > Building /home/runner/work/polyglot/polyglot/lib/math/math.spi
00:00:01 #26 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: [] / typeErrorCount: 0
00:00:02 #27 [Debug] buildFile / takeWhileInclusive / fsxContent: [<Fable.Core.Erase; Fable.Core.Emit("Func0<$0>")>] type Func0<'T> = class end
[<Fable.Core.Erase; Fable.Core.Emit("Func1<$0, $1>")>] type Func0<'T, 'U> = class end
[<Fable.Core.Erase; Fable.Core.Emit("Box<$0>")>] type Box<'T> = class end
[<Fable.Core.Erase; Fable.Core.Emit("dyn $0")>] type Dyn<'T> = class end
[<Fable.Core.Erase; Fable.Core.Emit("Fn() -> $0")>] type Fn<'T> = class end
[<Fable.Core.Erase; Fable.Core.Emit("Fn()")>] type FnUnit = class end
[<Fable.Core.Erase; Fable.Core.Emit("FnOnce() -> $0")>] type FnOnce<'T> = class end
[<Fable.Core.Erase; Fable.Core.Emit("Fn($0, $1)")>] type ActionFn2<'T, 'U> = class end
[<Fable.Core.Erase; Fable.Core.Emit("impl $0")>] type Impl<'T> = class end
[<Fable.Core.Erase; Fable.Core.Emit("mut $0")>]... / errors: [] / typeErrorCount: 0
00:00:02 #28 [Debug] watchWithFilter / Disposing watch stream / filter: FileName, LastWrite
00:00:02 #29 [Verbose] waitForPortAccess / port: 13805 / retry: 0
00:00:02 #30 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #1 [Debug] persistCodeProject / packages: [Fable.Core] / modules: [lib/spiral/common.fsx; lib/spiral/date_time.fsx; lib/fsharp/Common.fs] / name: math / code.Length: 141585
00:00:00 #2 [Debug] buildProject / fullPath: /home/runner/work/polyglot/polyglot/target/polyglot/builder/math/math.fsproj
00:00:00 #3 [Debug] executeAsync / options: { Command =
   "dotnet publish "/home/runner/work/polyglot/polyglot/target/polyglot/builder/math/math.fsproj" --configuration Release --output "/home/runner/work/polyglot/polyglot/lib/math/dist" --runtime linux-x64"
  WorkingDirectory =
   Some "/home/runner/work/polyglot/polyglot/target/polyglot/builder/math"
  CancellationToken = None
  OnLine = None }
00:00:00 #4 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f for .NET
00:00:00 #5 [Verbose] >   Determining projects to restore...
00:00:00 #6 [Verbose] >   Paket version 8.1.0-alpha001+8e77fe66ac27ddecf519e0df5a4d3327ca9250e2
00:00:00 #7 [Verbose] >   The last full restore is still up to date. Nothing left to do.
00:00:00 #8 [Verbose] >   Total time taken: 0 milliseconds
00:00:01 #9 [Verbose] >   Paket version 8.1.0-alpha001+8e77fe66ac27ddecf519e0df5a4d3327ca9250e2
00:00:01 #10 [Verbose] >   Restoring /home/runner/work/polyglot/polyglot/target/polyglot/builder/math/math.fsproj
00:00:01 #11 [Verbose] >   Starting restore process.
00:00:01 #12 [Verbose] >   Total time taken: 0 milliseconds
00:00:02 #13 [Verbose] >   Restored /home/runner/work/polyglot/polyglot/target/polyglot/builder/math/math.fsproj (in 271 ms).
00:00:02 #14 [Verbose] > /usr/share/dotnet/sdk/9.0.100-preview.1.24101.2/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.RuntimeIdentifierInference.targets(313,5): message NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy [/home/runner/work/polyglot/polyglot/target/polyglot/builder/math/math.fsproj]
00:00:05 #15 [Verbose] >   math -> /home/runner/work/polyglot/polyglot/target/polyglot/builder/math/bin/Release/net9.0/linux-x64/math.dll
00:00:06 #16 [Verbose] >   math -> /home/runner/work/polyglot/polyglot/lib/math/dist
00:00:06 #17 [Debug] executeAsync / exitCode: 0 / output.Length: 1085
Fable 4.14.0: F# to Rust compiler (status: alpha)

Thanks to the contributor! @johlrich
Stand with Ukraine! https://standwithukraine.com.ua/

Parsing ../../target/polyglot/builder/math/math.fsproj...
../../target/polyglot/builder/math> dotnet restore math.fable-temp.csproj -p:FABLE_COMPILER=true -p:FABLE_COMPILER_4=true -p:FABLE_COMPILER_RUST=true
  Determining projects to restore...
  Paket version 8.1.0-alpha001+8e77fe66ac27ddecf519e0df5a4d3327ca9250e2
  The last full restore is still up to date. Nothing left to do.
  Total time taken: 0 milliseconds
  Paket version 8.1.0-alpha001+8e77fe66ac27ddecf519e0df5a4d3327ca9250e2
  Restoring /home/runner/work/polyglot/polyglot/target/polyglot/builder/math/math.fable-temp.csproj
  Starting restore process.
  Total time taken: 0 milliseconds
  Restored /home/runner/work/polyglot/polyglot/target/polyglot/builder/math/math.fable-temp.csproj (in 271 ms).
../../target/polyglot/builder/math> dotnet restore /home/runner/work/polyglot/polyglot/target/polyglot/builder/math/math.fsproj
  Determining projects to restore...
  Restored /home/runner/work/polyglot/polyglot/target/polyglot/builder/math/math.fsproj (in 281 ms).
Project and references (4 source files) parsed in 5640ms

Started Fable compilation...

Fable compilation finished in 3100ms

./../spiral/date_time.fsx(81,0): (81,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./../spiral/common.fsx(95,0): (95,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
./../../target/polyglot/builder/math/math.fs(35,0): (37,3) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
 Downloading crates ...
  Downloaded simba v0.6.0
  Downloaded rawpointer v0.2.1
  Downloaded rand_distr v0.4.3
  Downloaded safe_arch v0.7.1
  Downloaded wide v0.7.15
  Downloaded nalgebra v0.29.0
  Downloaded statrs v0.16.0
  Downloaded matrixmultiply v0.3.8
  Downloaded libm v0.2.8
  Downloaded num-rational v0.4.1
  Downloaded nalgebra-macros v0.1.0
  Downloaded float-cmp v0.9.0
  Downloaded approx v0.5.1
   Compiling libc v0.2.153
   Compiling libm v0.2.8
   Compiling num-traits v0.2.18
   Compiling target-lexicon v0.12.14
   Compiling cfg-if v1.0.0
   Compiling proc-macro2 v1.0.79
   Compiling pyo3-build-config v0.21.0
   Compiling unicode-ident v1.0.12
   Compiling once_cell v1.19.0
   Compiling getrandom v0.2.12
   Compiling rand_core v0.6.4
   Compiling quote v1.0.35
   Compiling syn v1.0.109
   Compiling bytemuck v1.15.0
   Compiling ppv-lite86 v0.2.17
   Compiling paste v1.0.14
   Compiling safe_arch v0.7.1
   Compiling rand_chacha v0.3.1
   Compiling matrixmultiply v0.3.8
   Compiling lock_api v0.4.11
   Compiling num-rational v0.4.1
   Compiling typenum v1.17.0
   Compiling parking_lot_core v0.9.9
   Compiling pyo3-ffi v0.21.0
   Compiling rand v0.8.5
   Compiling wide v0.7.15
   Compiling syn v2.0.55
   Compiling num-integer v0.1.46
   Compiling num-complex v0.4.5
   Compiling approx v0.5.1
   Compiling memoffset v0.9.1
   Compiling scopeguard v1.2.0
   Compiling heck v0.4.1
   Compiling smallvec v1.13.2
   Compiling rawpointer v0.2.1
   Compiling portable-atomic v1.6.0
   Compiling simba v0.6.0
   Compiling pyo3-macros-backend v0.21.0
   Compiling nalgebra-macros v0.1.0
   Compiling rand_distr v0.4.3
   Compiling pyo3 v0.21.0
   Compiling iana-time-zone v0.1.60
   Compiling parking_lot v0.12.1
   Compiling chrono v0.4.37
   Compiling nalgebra v0.29.0
   Compiling uuid v1.8.0
   Compiling unindent v0.2.3
   Compiling pyo3-macros v0.21.0
   Compiling indoc v2.0.5
   Compiling lazy_static v1.4.0
   Compiling fable_library_rust v0.1.0 (/home/runner/work/polyglot/polyglot/lib/rust/fable/fable_modules/fable-library-rust)
   Compiling float-cmp v0.9.0
   Compiling statrs v0.16.0
   Compiling math v0.0.1 (/home/runner/work/polyglot/polyglot/lib/math)
    Finished `release` profile [optimized] target(s) in 24.55s
     Running unittests math.rs (/home/runner/work/polyglot/polyglot/target/release/deps/math-50b25401a80fb1e6)

running 12 tests
test module_b7a9935b::Math::test_behavior_near_origin___ ... ok
test module_b7a9935b::Math::test_critical_strip ... ok
test module_b7a9935b::Math::test_non_trivial_zero___ ... ok
test module_b7a9935b::Math::test_euler_product_formula ... ok
test module_b7a9935b::Math::test_real_part_greater_than_one___ ... ok
test module_b7a9935b::Math::test_symmetry_across_real_axis___ ... ok
test module_b7a9935b::Math::test_zeta_at_1___ ... ok
test module_b7a9935b::Math::test_zeta_at_2_minus2 ... ok
test module_b7a9935b::Math::test_reflection_formula_for_specific_value ... ok
test module_b7a9935b::Math::test_zeta_at_known_values_ ... ok
test module_b7a9935b::Math::test_imaginary_axis ... ok
test module_b7a9935b::Math::test_trivial_zero_at_negative_even___ ... ok

test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.19s

In [ ]:
{ . "$ScriptDir/../apps/scheduler/build.ps1" } | Invoke-Block
00:00:00 #1 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #2 [Debug] executeAsync / options: { Command =
   "dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64"
  WorkingDirectory = None
  CancellationToken = Some System.Threading.CancellationToken
  OnLine = Some <fun:main@425-61> }
00:00:00 #3 [Verbose] > pwd: /home/runner/work/polyglot/polyglot/apps/scheduler
00:00:00 #4 [Verbose] > dll_path: /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release
00:00:00 #5 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #6 [Verbose] waitForPortAccess / port: 13805 / retry: 0
00:00:00 #7 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #8 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #9 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #10 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #11 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #12 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #13 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #14 [Verbose] > Starting the Spiral Server. It is bound to: http://localhost:13805
00:00:00 #15 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #16 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #17 [Debug] sendJson / port: 13805 / json: {"Ping":true} / result.Length:
00:00:00 #18 [Verbose] awaitCompiler / Ping / result: Some(null) / port: 13805 / retry: 0
00:00:00 #19 [Verbose] > Server bound to: http://localhost:13805
00:00:00 #20 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 Tasks.dib -Retries 3""
  WorkingDirectory = None
  CancellationToken = Some System.Threading.CancellationToken
  OnLine = None }
00:00:02 #21 [Verbose] >
00:00:02 #22 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:02 #23 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:02 #24 [Verbose] > │ ## Tasks (Polyglot)                                                          │
00:00:02 #25 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:02 #26 [Verbose] >
00:00:02 #27 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:02 #28 [Verbose] > // // test
00:00:02 #29 [Verbose] >
00:00:02 #30 [Verbose] > open testing
00:00:04 #31 [Verbose] > Building /tmp/dotnet-repl/20240329-2211-2359-5965-5484b3631553/main.spi
00:00:06 #32 [Verbose] >
00:00:06 #33 [Verbose] > ╭─[ 3.80s - stdout ]───────────────────────────────────────────────────────────╮
00:00:06 #34 [Verbose] > │ ()                                                                           │
00:00:06 #35 [Verbose] > │                                                                              │
00:00:06 #36 [Verbose] > │                                                                              │
00:00:06 #37 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:06 #38 [Verbose] >
00:00:06 #39 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:06 #40 [Verbose] > inl types () =
00:00:06 #41 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::string::String\")>]]
00:00:06 #42 [Verbose] > type std_string_String = class end"
00:00:06 #43 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"&$0\")>]] type Ref<'T> =
00:00:06 #44 [Verbose] > class end"
00:00:06 #45 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"str\")>]] type Str = class
00:00:06 #46 [Verbose] > end"
00:00:06 #47 [Verbose] >
00:00:06 #48 [Verbose] > inl emit_expr forall a t. (args : a) (code : string) : t =
00:00:06 #49 [Verbose] >     real
00:00:06 #50 [Verbose] >         $"Fable.Core.RustInterop.emitRustExpr !args !code" : t
00:00:06 #51 [Verbose] >
00:00:06 #52 [Verbose] >
00:00:06 #53 [Verbose] > nominal std_string = $"std_string_String"
00:00:06 #54 [Verbose] > nominal ref' t = $"Ref<`t>"
00:00:06 #55 [Verbose] > nominal str = $"Str"
00:00:06 #56 [Verbose] >
00:00:06 #57 [Verbose] > inl format_debug forall t. (x : t) : std_string =
00:00:06 #58 [Verbose] >     real
00:00:06 #59 [Verbose] >         emit_expr `t `std_string x "format!(\"{:?}\", $0)"
00:00:06 #60 [Verbose] >
00:00:06 #61 [Verbose] > inl format_pretty forall t. (x : t) : std_string =
00:00:06 #62 [Verbose] >     real
00:00:06 #63 [Verbose] >         emit_expr `t `std_string x "format!(\"{:#?}\", $0)"
00:00:06 #64 [Verbose] >
00:00:06 #65 [Verbose] > inl to_std_string (str : ref' str) : std_string =
00:00:06 #66 [Verbose] >     // inl str = join str
00:00:06 #67 [Verbose] >     // // emit_expr () $"\"!str.to_string()\""
00:00:06 #68 [Verbose] >     // // emit_expr () $"\"alloc::string::to_string(!str)\""
00:00:06 #69 [Verbose] >     // emit_expr str "($0).to_string()"
00:00:06 #70 [Verbose] >     emit_expr str $"\"String::from(core::ops::Deref::deref($0))\""
00:00:06 #71 [Verbose] >     // emit_expr str $"\"String::from(*$0)\""
00:00:06 #72 [Verbose] >     // emit_expr () $"\"String::from(!str)\""
00:00:06 #73 [Verbose] >
00:00:06 #74 [Verbose] > inl format forall t. (x : t) : std_string =
00:00:06 #75 [Verbose] >     real
00:00:06 #76 [Verbose] >         inl result : std_string =
00:00:06 #77 [Verbose] >             typecase t with
00:00:06 #78 [Verbose] >             | string => to_std_string x
00:00:06 #79 [Verbose] >             | std_string => x
00:00:06 #80 [Verbose] >             | _ => format_pretty `t x
00:00:06 #81 [Verbose] >         result
00:00:06 #82 [Verbose] >
00:00:06 #83 [Verbose] > inl raw_string_literal (s : string) : ref' str =
00:00:06 #84 [Verbose] >     emit_expr () $"\"r#\\\"\" + !s + \"\\\"#\""
00:00:06 #85 [Verbose] >
00:00:06 #86 [Verbose] > inl (~#) (s : string) : ref' str =
00:00:06 #87 [Verbose] >     raw_string_literal s
00:00:06 #88 [Verbose] > Building /tmp/dotnet-repl/20240329-2211-2606-0644-078c24a5b729/main.spi
00:00:06 #89 [Verbose] >
00:00:06 #90 [Verbose] > ╭─[ 178.30ms - stdout ]────────────────────────────────────────────────────────╮
00:00:06 #91 [Verbose] > │ ()                                                                           │
00:00:06 #92 [Verbose] > │                                                                              │
00:00:06 #93 [Verbose] > │                                                                              │
00:00:06 #94 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:06 #95 [Verbose] >
00:00:06 #96 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:06 #97 [Verbose] > nominal task_name = string
00:00:06 #98 [Verbose] >
00:00:06 #99 [Verbose] > union manual_scheduling =
00:00:06 #100 [Verbose] >     | WithSuggestion
00:00:06 #101 [Verbose] >     | WithoutSuggestion
00:00:06 #102 [Verbose] >
00:00:06 #103 [Verbose] > union recurrency_offset =
00:00:06 #104 [Verbose] >     | Days : i32
00:00:06 #105 [Verbose] >     | Weeks : i32
00:00:06 #106 [Verbose] >     | Months : i32
00:00:06 #107 [Verbose] >
00:00:06 #108 [Verbose] > union day_of_week =
00:00:06 #109 [Verbose] >     | Sunday
00:00:06 #110 [Verbose] >     | Monday
00:00:06 #111 [Verbose] >     | Tuesday
00:00:06 #112 [Verbose] >     | Wednesday
00:00:06 #113 [Verbose] >     | Thursday
00:00:06 #114 [Verbose] >     | Friday
00:00:06 #115 [Verbose] >     | Saturday
00:00:06 #116 [Verbose] >
00:00:06 #117 [Verbose] > union month =
00:00:06 #118 [Verbose] >     | January
00:00:06 #119 [Verbose] >     | February
00:00:06 #120 [Verbose] >     | March
00:00:06 #121 [Verbose] >     | April
00:00:06 #122 [Verbose] >     | May
00:00:06 #123 [Verbose] >     | June
00:00:06 #124 [Verbose] >     | July
00:00:06 #125 [Verbose] >     | August
00:00:06 #126 [Verbose] >     | September
00:00:06 #127 [Verbose] >     | October
00:00:06 #128 [Verbose] >     | November
00:00:06 #129 [Verbose] >     | December
00:00:06 #130 [Verbose] >
00:00:06 #131 [Verbose] > nominal day = i32
00:00:06 #132 [Verbose] > nominal year = i32
00:00:06 #133 [Verbose] >
00:00:06 #134 [Verbose] > union fixed_recurrency =
00:00:06 #135 [Verbose] >     | Weekly : day_of_week
00:00:06 #136 [Verbose] >     | Monthly : day
00:00:06 #137 [Verbose] >     | Yearly : day * month
00:00:06 #138 [Verbose] >
00:00:06 #139 [Verbose] > union recurrency =
00:00:06 #140 [Verbose] >     | Offset : recurrency_offset
00:00:06 #141 [Verbose] >     | Fixed : list fixed_recurrency
00:00:06 #142 [Verbose] >
00:00:06 #143 [Verbose] > union scheduling =
00:00:06 #144 [Verbose] >     | Manual : manual_scheduling
00:00:06 #145 [Verbose] >     | Recurrent : recurrency
00:00:06 #146 [Verbose] >
00:00:06 #147 [Verbose] > type task =
00:00:06 #148 [Verbose] >     {
00:00:06 #149 [Verbose] >         name : task_name
00:00:06 #150 [Verbose] >         scheduling : scheduling
00:00:06 #151 [Verbose] >     }
00:00:06 #152 [Verbose] >
00:00:06 #153 [Verbose] > type date =
00:00:06 #154 [Verbose] >     {
00:00:06 #155 [Verbose] >         year : year
00:00:06 #156 [Verbose] >         month : month
00:00:06 #157 [Verbose] >         day : day
00:00:06 #158 [Verbose] >     }
00:00:06 #159 [Verbose] >
00:00:06 #160 [Verbose] > union status =
00:00:06 #161 [Verbose] >     | Postponed : option ()
00:00:06 #162 [Verbose] >
00:00:06 #163 [Verbose] > type event =
00:00:06 #164 [Verbose] >     {
00:00:06 #165 [Verbose] >         date : date
00:00:06 #166 [Verbose] >         status : status
00:00:06 #167 [Verbose] >     }
00:00:06 #168 [Verbose] >
00:00:06 #169 [Verbose] > type task_template =
00:00:06 #170 [Verbose] >     {
00:00:06 #171 [Verbose] >         task : task
00:00:06 #172 [Verbose] >         events : list event
00:00:06 #173 [Verbose] >     }
00:00:06 #174 [Verbose] > Building /tmp/dotnet-repl/20240329-2211-2623-2363-23571c52e0be/main.spi
00:00:06 #175 [Verbose] >
00:00:06 #176 [Verbose] > ╭─[ 191.89ms - stdout ]────────────────────────────────────────────────────────╮
00:00:06 #177 [Verbose] > │ ()                                                                           │
00:00:06 #178 [Verbose] > │                                                                              │
00:00:06 #179 [Verbose] > │                                                                              │
00:00:06 #180 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:06 #181 [Verbose] >
00:00:06 #182 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:06 #183 [Verbose] > // // test
00:00:06 #184 [Verbose] > // // rust=
00:00:06 #185 [Verbose] >
00:00:06 #186 [Verbose] > types ()
00:00:06 #187 [Verbose] > Building /tmp/dotnet-repl/20240329-2211-2642-4276-478b7c93bc30/main.spi
00:00:09 #188 [Verbose] >
00:00:09 #189 [Verbose] > ╭─[ 2.60s - return value ]─────────────────────────────────────────────────────╮
00:00:09 #190 [Verbose] > │ .rs output:                                                                  │
00:00:09 #191 [Verbose] > │                                                                              │
00:00:09 #192 [Verbose] > │                                                                              │
00:00:09 #193 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:09 #194 [Verbose] >
00:00:09 #195 [Verbose] > ╭─[ 2.61s - stdout ]───────────────────────────────────────────────────────────╮
00:00:09 #196 [Verbose] > │                                                                              │
00:00:09 #197 [Verbose] > │ .fsx:                                                                        │
00:00:09 #198 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] type            │
00:00:09 #199 [Verbose] > │ std_string_String = class end                                                │
00:00:09 #200 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("&$0")>] type Ref<'T> = class end        │
00:00:09 #201 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("str")>] type Str = class end            │
00:00:09 #202 [Verbose] > │ let rec method0 () : unit =                                                  │
00:00:09 #203 [Verbose] > │     ()                                                                       │
00:00:09 #204 [Verbose] > │ method0()                                                                    │
00:00:09 #205 [Verbose] > │                                                                              │
00:00:09 #206 [Verbose] > │                                                                              │
00:00:09 #207 [Verbose] > │ .rs:                                                                         │
00:00:09 #208 [Verbose] > │ #![allow(dead_code,)]                                                        │
00:00:09 #209 [Verbose] > │ #![allow(non_camel_case_types,)]                                             │
00:00:09 #210 [Verbose] > │ #![allow(non_snake_case,)]                                                   │
00:00:09 #211 [Verbose] > │ #![allow(non_upper_case_globals,)]                                           │
00:00:09 #212 [Verbose] > │ #![allow(unreachable_code,)]                                                 │
00:00:09 #213 [Verbose] > │ #![allow(unused_attributes,)]                                                │
00:00:09 #214 [Verbose] > │ #![allow(unused_imports,)]                                                   │
00:00:09 #215 [Verbose] > │ #![allow(unused_macros,)]                                                    │
00:00:09 #216 [Verbose] > │ #![allow(unused_parens,)]                                                    │
00:00:09 #217 [Verbose] > │ #![allow(unused_variables,)]                                                 │
00:00:09 #218 [Verbose] > │ mod module_ccfa04bf {                                                        │
00:00:09 #219 [Verbose] > │     pub mod Spiral_eval {                                                    │
00:00:09 #220 [Verbose] > │         use super::*;                                                        │
00:00:09 #221 [Verbose] > │         use fable_library_rust::Native_::on_startup;                         │
00:00:09 #222 [Verbose] > │         pub fn method0() { (); }                                             │
00:00:09 #223 [Verbose] > │         on_startup!(Spiral_eval::method0());                                 │
00:00:09 #224 [Verbose] > │     }                                                                        │
00:00:09 #225 [Verbose] > │ }                                                                            │
00:00:09 #226 [Verbose] > │ pub use module_ccfa04bf::*;                                                  │
00:00:09 #227 [Verbose] > │                                                                              │
00:00:09 #228 [Verbose] > │                                                                              │
00:00:09 #229 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:09 #230 [Verbose] >
00:00:09 #231 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:09 #232 [Verbose] > // // test
00:00:09 #233 [Verbose] > // // rust=
00:00:09 #234 [Verbose] >
00:00:09 #235 [Verbose] > inl get_tasks () : list task_template =
00:00:09 #236 [Verbose] >     [[
00:00:09 #237 [Verbose] >         {
00:00:09 #238 [Verbose] >             task =
00:00:09 #239 [Verbose] >                 {
00:00:09 #240 [Verbose] >                     name = task_name "01"
00:00:09 #241 [Verbose] >                     scheduling = Manual WithSuggestion
00:00:09 #242 [Verbose] >                 }
00:00:09 #243 [Verbose] >             events = [[]]
00:00:09 #244 [Verbose] >         }
00:00:09 #245 [Verbose] >         {
00:00:09 #246 [Verbose] >             task =
00:00:09 #247 [Verbose] >                 {
00:00:09 #248 [Verbose] >                     name = task_name "02"
00:00:09 #249 [Verbose] >                     scheduling = Manual WithSuggestion
00:00:09 #250 [Verbose] >                 }
00:00:09 #251 [Verbose] >             events = [[]]
00:00:09 #252 [Verbose] >         }
00:00:09 #253 [Verbose] >         {
00:00:09 #254 [Verbose] >             task =
00:00:09 #255 [Verbose] >                 {
00:00:09 #256 [Verbose] >                     name = task_name "03"
00:00:09 #257 [Verbose] >                     scheduling = Manual WithSuggestion
00:00:09 #258 [Verbose] >                 }
00:00:09 #259 [Verbose] >             events = [[]]
00:00:09 #260 [Verbose] >         }
00:00:09 #261 [Verbose] >     ]]
00:00:09 #262 [Verbose] >
00:00:09 #263 [Verbose] > types ()
00:00:09 #264 [Verbose] > get_tasks () |> format_pretty |> console.write_line
00:00:09 #265 [Verbose] > Building /tmp/dotnet-repl/20240329-2211-2903-0388-00477f3b6219/main.spi
00:00:12 #266 [Verbose] >
00:00:12 #267 [Verbose] > ╭─[ 3.31s - return value ]─────────────────────────────────────────────────────╮
00:00:12 #268 [Verbose] > │ .rs output:                                                                  │
00:00:12 #269 [Verbose] > │ UH2_0(                                                                       │
00:00:12 #270 [Verbose] > │     UH0_1,                                                                   │
00:00:12 #271 [Verbose] > │     "01",                                                                    │
00:00:12 #272 [Verbose] > │     US4_0(                                                                   │
00:00:12 #273 [Verbose] > │         US3_0,                                                               │
00:00:12 #274 [Verbose] > │     ),                                                                       │
00:00:12 #275 [Verbose] > │     UH2_0(                                                                   │
00:00:12 #276 [Verbose] > │         UH0_1,                                                               │
00:00:12 #277 [Verbose] > │         "02",                                                                │
00:00:12 #278 [Verbose] > │         US4_0(                                                               │
00:00:12 #279 [Verbose] > │             US3_0,                                                           │
00:00:12 #280 [Verbose] > │         ),                                                                   │
00:00:12 #281 [Verbose] > │         UH2_0(                                                               │
00:00:12 #282 [Verbose] > │             UH0_1,                                                           │
00:00:12 #283 [Verbose] > │             "03",                                                            │
00:00:12 #284 [Verbose] > │             US4_0(                                                           │
00:00:12 #285 [Verbose] > │                 US3_0,                                                       │
00:00:12 #286 [Verbose] > │             ),                                                               │
00:00:12 #287 [Verbose] > │             UH2_1,                                                           │
00:00:12 #288 [Verbose] > │         ),                                                                   │
00:00:12 #289 [Verbose] > │     ),                                                                       │
00:00:12 #290 [Verbose] > │ )                                                                            │
00:00:12 #291 [Verbose] > │                                                                              │
00:00:12 #292 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:12 #293 [Verbose] >
00:00:12 #294 [Verbose] > ╭─[ 3.32s - stdout ]───────────────────────────────────────────────────────────╮
00:00:12 #295 [Verbose] > │                                                                              │
00:00:12 #296 [Verbose] > │ .fsx:                                                                        │
00:00:12 #297 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] type            │
00:00:12 #298 [Verbose] > │ std_string_String = class end                                                │
00:00:12 #299 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("&$0")>] type Ref<'T> = class end        │
00:00:12 #300 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("str")>] type Str = class end            │
00:00:12 #301 [Verbose] > │ type [<Struct>] US0 =                                                        │
00:00:12 #302 [Verbose] > │     | US0_0                                                                  │
00:00:12 #303 [Verbose] > │     | US0_1                                                                  │
00:00:12 #304 [Verbose] > │     | US0_2                                                                  │
00:00:12 #305 [Verbose] > │     | US0_3                                                                  │
00:00:12 #306 [Verbose] > │     | US0_4                                                                  │
00:00:12 #307 [Verbose] > │     | US0_5                                                                  │
00:00:12 #308 [Verbose] > │     | US0_6                                                                  │
00:00:12 #309 [Verbose] > │     | US0_7                                                                  │
00:00:12 #310 [Verbose] > │     | US0_8                                                                  │
00:00:12 #311 [Verbose] > │     | US0_9                                                                  │
00:00:12 #312 [Verbose] > │     | US0_10                                                                 │
00:00:12 #313 [Verbose] > │     | US0_11                                                                 │
00:00:12 #314 [Verbose] > │ and [<Struct>] US2 =                                                         │
00:00:12 #315 [Verbose] > │     | US2_0                                                                  │
00:00:12 #316 [Verbose] > │     | US2_1                                                                  │
00:00:12 #317 [Verbose] > │ and [<Struct>] US1 =                                                         │
00:00:12 #318 [Verbose] > │     | US1_0 of f0_0 : US2                                                    │
00:00:12 #319 [Verbose] > │ and UH0 =                                                                    │
00:00:12 #320 [Verbose] > │     | UH0_0 of int32 * US0 * int32 * US1 * UH0                               │
00:00:12 #321 [Verbose] > │     | UH0_1                                                                  │
00:00:12 #322 [Verbose] > │ and [<Struct>] US3 =                                                         │
00:00:12 #323 [Verbose] > │     | US3_0                                                                  │
00:00:12 #324 [Verbose] > │     | US3_1                                                                  │
00:00:12 #325 [Verbose] > │ and [<Struct>] US7 =                                                         │
00:00:12 #326 [Verbose] > │     | US7_0                                                                  │
00:00:12 #327 [Verbose] > │     | US7_1                                                                  │
00:00:12 #328 [Verbose] > │     | US7_2                                                                  │
00:00:12 #329 [Verbose] > │     | US7_3                                                                  │
00:00:12 #330 [Verbose] > │     | US7_4                                                                  │
00:00:12 #331 [Verbose] > │     | US7_5                                                                  │
00:00:12 #332 [Verbose] > │     | US7_6                                                                  │
00:00:12 #333 [Verbose] > │ and [<Struct>] US6 =                                                         │
00:00:12 #334 [Verbose] > │     | US6_0 of f0_0 : int32                                                  │
00:00:12 #335 [Verbose] > │     | US6_1 of f1_0 : US7                                                    │
00:00:12 #336 [Verbose] > │     | US6_2 of f2_0 : int32 * f2_1 : US0                                     │
00:00:12 #337 [Verbose] > │ and UH1 =                                                                    │
00:00:12 #338 [Verbose] > │     | UH1_0 of US6 * UH1                                                     │
00:00:12 #339 [Verbose] > │     | UH1_1                                                                  │
00:00:12 #340 [Verbose] > │ and [<Struct>] US8 =                                                         │
00:00:12 #341 [Verbose] > │     | US8_0 of f0_0 : int32                                                  │
00:00:12 #342 [Verbose] > │     | US8_1 of f1_0 : int32                                                  │
00:00:12 #343 [Verbose] > │     | US8_2 of f2_0 : int32                                                  │
00:00:12 #344 [Verbose] > │ and [<Struct>] US5 =                                                         │
00:00:12 #345 [Verbose] > │     | US5_0 of f0_0 : UH1                                                    │
00:00:12 #346 [Verbose] > │     | US5_1 of f1_0 : US8                                                    │
00:00:12 #347 [Verbose] > │ and [<Struct>] US4 =                                                         │
00:00:12 #348 [Verbose] > │     | US4_0 of f0_0 : US3                                                    │
00:00:12 #349 [Verbose] > │     | US4_1 of f1_0 : US5                                                    │
00:00:12 #350 [Verbose] > │ and UH2 =                                                                    │
00:00:12 #351 [Verbose] > │     | UH2_0 of UH0 * string * US4 * UH2                                      │
00:00:12 #352 [Verbose] > │     | UH2_1                                                                  │
00:00:12 #353 [Verbose] > │ let rec method0 () : unit =                                                  │
00:00:12 #354 [Verbose] > │     let v0 : UH0 = UH0_1                                                     │
00:00:12 #355 [Verbose] > │     let v1 : string = "01"                                                   │
00:00:12 #356 [Verbose] > │     let v2 : US3 = US3_0                                                     │
00:00:12 #357 [Verbose] > │     let v3 : US4 = US4_0(v2)                                                 │
00:00:12 #358 [Verbose] > │     let v4 : UH0 = UH0_1                                                     │
00:00:12 #359 [Verbose] > │     let v5 : string = "02"                                                   │
00:00:12 #360 [Verbose] > │     let v6 : US3 = US3_0                                                     │
00:00:12 #361 [Verbose] > │     let v7 : US4 = US4_0(v6)                                                 │
00:00:12 #362 [Verbose] > │     let v8 : UH0 = UH0_1                                                     │
00:00:12 #363 [Verbose] > │     let v9 : string = "03"                                                   │
00:00:12 #364 [Verbose] > │     let v10 : US3 = US3_0                                                    │
00:00:12 #365 [Verbose] > │     let v11 : US4 = US4_0(v10)                                               │
00:00:12 #366 [Verbose] > │     let v12 : UH2 = UH2_1                                                    │
00:00:12 #367 [Verbose] > │     let v13 : UH2 = UH2_0(v8, v9, v11, v12)                                  │
00:00:12 #368 [Verbose] > │     let v14 : UH2 = UH2_0(v4, v5, v7, v13)                                   │
00:00:12 #369 [Verbose] > │     let v15 : UH2 = UH2_0(v0, v1, v3, v14)                                   │
00:00:12 #370 [Verbose] > │     let v16 : string = "format!(\"{:#?}\", $0)"                              │
00:00:12 #371 [Verbose] > │     let v17 : std_string_String = Fable.Core.RustInterop.emitRustExpr v15    │
00:00:12 #372 [Verbose] > │ v16                                                                          │
00:00:12 #373 [Verbose] > │     System.Console.WriteLine v17                                             │
00:00:12 #374 [Verbose] > │     ()                                                                       │
00:00:12 #375 [Verbose] > │ method0()                                                                    │
00:00:12 #376 [Verbose] > │                                                                              │
00:00:12 #377 [Verbose] > │                                                                              │
00:00:12 #378 [Verbose] > │ .rs:                                                                         │
00:00:12 #379 [Verbose] > │ #![allow(dead_code,)]                                                        │
00:00:12 #380 [Verbose] > │ #![allow(non_camel_case_types,)]                                             │
00:00:12 #381 [Verbose] > │ #![allow(non_snake_case,)]                                                   │
00:00:12 #382 [Verbose] > │ #![allow(non_upper_case_globals,)]                                           │
00:00:12 #383 [Verbose] > │ #![allow(unreachable_code,)]                                                 │
00:00:12 #384 [Verbose] > │ #![allow(unused_attributes,)]                                                │
00:00:12 #385 [Verbose] > │ #![allow(unused_imports,)]                                                   │
00:00:12 #386 [Verbose] > │ #![allow(unused_macros,)]                                                    │
00:00:12 #387 [Verbose] > │ #![allow(unused_parens,)]                                                    │
00:00:12 #388 [Verbose] > │ #![allow(unused_variables,)]                                                 │
00:00:12 #389 [Verbose] > │ mod module_ccfa04bf {                                                        │
00:00:12 #390 [Verbose] > │     pub mod Spiral_eval {                                                    │
00:00:12 #391 [Verbose] > │         use super::*;                                                        │
00:00:12 #392 [Verbose] > │         use fable_library_rust::Native_::LrcPtr;                             │
00:00:12 #393 [Verbose] > │         use fable_library_rust::Native_::MutCell;                            │
00:00:12 #394 [Verbose] > │         use fable_library_rust::Native_::on_startup;                         │
00:00:12 #395 [Verbose] > │         use fable_library_rust::String_::printfn;                            │
00:00:12 #396 [Verbose] > │         use fable_library_rust::String_::string;                             │
00:00:12 #397 [Verbose] > │         #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Hash, Eq,)]      │
00:00:12 #398 [Verbose] > │         pub enum US0 {                                                       │
00:00:12 #399 [Verbose] > │             US0_0,                                                           │
00:00:12 #400 [Verbose] > │             US0_1,                                                           │
00:00:12 #401 [Verbose] > │             US0_2,                                                           │
00:00:12 #402 [Verbose] > │             US0_3,                                                           │
00:00:12 #403 [Verbose] > │             US0_4,                                                           │
00:00:12 #404 [Verbose] > │             US0_5,                                                           │
00:00:12 #405 [Verbose] > │             US0_6,                                                           │
00:00:12 #406 [Verbose] > │             US0_7,                                                           │
00:00:12 #407 [Verbose] > │             US0_8,                                                           │
00:00:12 #408 [Verbose] > │             US0_9,                                                           │
00:00:12 #409 [Verbose] > │             US0_10,                                                          │
00:00:12 #410 [Verbose] > │             US0_11,                                                          │
00:00:12 #411 [Verbose] > │         }                                                                    │
00:00:12 #412 [Verbose] > │         impl Spiral_eval::US0 {                                              │
00:00:12 #413 [Verbose] > │             pub fn get_IsUS0_0(this_: &MutCell<Spiral_eval::US0>, unitArg:   │
00:00:12 #414 [Verbose] > │ ())                                                                          │
00:00:12 #415 [Verbose] > │              -> bool {                                                       │
00:00:12 #416 [Verbose] > │                 if unreachable!() { true } else { false }                    │
00:00:12 #417 [Verbose] > │             }                                                                │
00:00:12 #418 [Verbose] > │             pub fn get_IsUS0_1(this_: &MutCell<Spiral_eval::US0>, unitArg:   │
00:00:12 #419 [Verbose] > │ ())                                                                          │
00:00:12 #420 [Verbose] > │              -> bool {                                                       │
00:00:12 #421 [Verbose] > │                 if unreachable!() { true } else { false }                    │
00:00:12 #422 [Verbose] > │             }                                                                │
00:00:12 #423 [Verbose] > │             pub fn get_IsUS0_2(this_: &MutCell<Spiral_eval::US0>, unitArg:   │
00:00:12 #424 [Verbose] > │ ())                                                                          │
00:00:12 #425 [Verbose] > │              -> bool {                                                       │
00:00:12 #426 [Verbose] > │                 if unreachable!() { true } else { false }                    │
00:00:12 #427 [Verbose] > │             }                                                                │
00:00:12 #428 [Verbose] > │             pub fn get_IsUS0_3(this_: &MutCell<Spiral_eval::US0>, unitArg:   │
00:00:12 #429 [Verbose] > │ ())                                                                          │
00:00:12 #430 [Verbose] > │              -> bool {                                                       │
00:00:12 #431 [Verbose] > │                 if unreachable!() { true } else { false }                    │
00:00:12 #432 [Verbose] > │             }                                                                │
00:00:12 #433 [Verbose] > │             pub fn get_IsUS0_4(this_: &MutCell<Spiral_eval::US0>, unitArg:   │
00:00:12 #434 [Verbose] > │ ())                                                                          │
00:00:12 #435 [Verbose] > │              -> bool {                                                       │
00:00:12 #436 [Verbose] > │                 if unreachable!() { true } else { false }                    │
00:00:12 #437 [Verbose] > │             }                                                                │
00:00:12 #438 [Verbose] > │             pub fn get_IsUS0_5(this_: &MutCell<Spiral_eval::US0>, unitArg:   │
00:00:12 #439 [Verbose] > │ ())                                                                          │
00:00:12 #440 [Verbose] > │              -> bool {                                                       │
00:00:12 #441 [Verbose] > │                 if unreachable!() { true } else { false }                    │
00:00:12 #442 [Verbose] > │             }                                                                │
00:00:12 #443 [Verbose] > │             pub fn get_IsUS0_6(this_: &MutCell<Spiral_eval::US0>, unitArg:   │
00:00:12 #444 [Verbose] > │ ())                                                                          │
00:00:12 #445 [Verbose] > │              -> bool {                                                       │
00:00:12 #446 [Verbose] > │                 if unreachable!() { true } else { false }                    │
00:00:12 #447 [Verbose] > │             }                                                                │
00:00:12 #448 [Verbose] > │             pub fn get_IsUS0_7(this_: &MutCell<Spiral_eval::US0>, unitArg:   │
00:00:12 #449 [Verbose] > │ ())                                                                          │
00:00:12 #450 [Verbose] > │              -> bool {                                                       │
00:00:12 #451 [Verbose] > │                 if unreachable!() { true } else { false }                    │
00:00:12 #452 [Verbose] > │             }                                                                │
00:00:12 #453 [Verbose] > │             pub fn get_IsUS0_8(this_: &MutCell<Spiral_eval::US0>, unitArg:   │
00:00:12 #454 [Verbose] > │ ())                                                                          │
00:00:12 #455 [Verbose] > │              -> bool {                                                       │
00:00:12 #456 [Verbose] > │                 if unreachable!() { true } else { false }                    │
00:00:12 #457 [Verbose] > │             }                                                                │
00:00:12 #458 [Verbose] > │             pub fn get_IsUS0_9(this_: &MutCell<Spiral_eval::US0>, unitArg:   │
00:00:12 #459 [Verbose] > │ ())                                                                          │
00:00:12 #460 [Verbose] > │              -> bool {                                                       │
00:00:12 #461 [Verbose] > │                 if unreachable!() { true } else { false }                    │
00:00:12 #462 [Verbose] > │             }                                                                │
00:00:12 #463 [Verbose] > │             pub fn get_IsUS0_10(this_: &MutCell<Spiral_eval::US0>,           │
00:00:12 #464 [Verbose] > │                                 unitArg: ()) -> bool {                       │
00:00:12 #465 [Verbose] > │                 if unreachable!() { true } else { false }                    │
00:00:12 #466 [Verbose] > │             }                                                                │
00:00:12 #467 [Verbose] > │             pub fn get_IsUS0_11(this_: &MutCell<Spiral_eval::US0>,           │
00:00:12 #468 [Verbose] > │                                 unitArg: ()) -> bool {                       │
00:00:12 #469 [Verbose] > │                 if unreachable!() { true } else { false }                    │
00:00:12 #470 [Verbose] > │             }                                                                │
00:00:12 #471 [Verbose] > │         }                                                                    │
00:00:12 #472 [Verbose] > │         impl core::fmt::Display for Spiral_eval::US0 {                       │
00:00:12 #473 [Verbose] > │             fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │
00:00:12 #474 [Verbose] > │ {                                                                            │
00:00:12 #475 [Verbose] > │                 write!(f, "{}", core::any::type_name::<Self>())              │
00:00:12 #476 [Verbose] > │             }                                                                │
00:00:12 #477 [Verbose] > │         }                                                                    │
00:00:12 #478 [Verbose] > │         #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Hash, Eq,)]      │
00:00:12 #479 [Verbose] > │         pub enum US2 { US2_0, US2_1, }                                       │
00:00:12 #480 [Verbose] > │         impl Spiral_eval::US2 {                                              │
00:00:12 #481 [Verbose] > │             pub fn get_IsUS2_0(this_: &MutCell<Spiral_eval::US2>, unitArg:   │
00:00:12 #482 [Verbose] > │ ())                                                                          │
00:00:12 #483 [Verbose] > │              -> bool {                                                       │
00:00:12 #484 [Verbose] > │                 if unreachable!() { true } else { false }                    │
00:00:12 #485 [Verbose] > │             }                                                                │
00:00:12 #486 [Verbose] > │             pub fn get_IsUS2_1(this_: &MutCell<Spiral_eval::US2>, unitArg:   │
00:00:12 #487 [Verbose] > │ ())                                                                          │
00:00:12 #488 [Verbose] > │              -> bool {                                                       │
00:00:12 #489 [Verbose] > │                 if unreachable!() { true } else { false }                    │
00:00:12 #490 [Verbose] > │             }                                                                │
00:00:12 #491 [Verbose] > │         }                                                                    │
00:00:12 #492 [Verbose] > │         impl core::fmt::Display for Spiral_eval::US2 {                       │
00:00:12 #493 [Verbose] > │             fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │
00:00:12 #494 [Verbose] > │ {                                                                            │
00:00:12 #495 [Verbose] > │                 write!(f, "{}", core::any::type_name::<Self>())              │
00:00:12 #496 [Verbose] > │             }                                                                │
00:00:12 #497 [Verbose] > │         }                                                                    │
00:00:12 #498 [Verbose] > │         #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Hash, Eq,)]      │
00:00:12 #499 [Verbose] > │         pub enum US1 { US1_0(Spiral_eval::US2), }                            │
00:00:12 #500 [Verbose] > │         impl Spiral_eval::US1 {                                              │
00:00:12 #501 [Verbose] > │             pub fn get_IsUS1_0(this_: &MutCell<Spiral_eval::US1>, unitArg:   │
00:00:12 #502 [Verbose] > │ ())                                                                          │
00:00:12 #503 [Verbose] > │              -> bool {                                                       │
00:00:12 #504 [Verbose] > │                 if unreachable!() { true } else { false }                    │
00:00:12 #505 [Verbose] > │             }                                                                │
00:00:12 #506 [Verbose] > │         }                                                                    │
00:00:12 #507 [Verbose] > │         impl core::fmt::Display for Spiral_eval::US1 {                       │
00:00:12 #508 [Verbose] > │             fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │
00:00:12 #509 [Verbose] > │ {                                                                            │
00:00:12 #510 [Verbose] > │                 write!(f, "{}", core::any::type_name::<Self>())              │
00:00:12 #511 [Verbose] > │             }                                                                │
00:00:12 #512 [Verbose] > │         }                                                                    │
00:00:12 #513 [Verbose] > │         #[derive(Clone, Debug, PartialEq, PartialOrd, Hash, Eq,)]            │
00:00:12 #514 [Verbose] > │         pub enum UH0 {                                                       │
00:00:12 #515 [Verbose] > │             UH0_0(i32, Spiral_eval::US0, i32, Spiral_eval::US1,              │
00:00:12 #516 [Verbose] > │                   LrcPtr<Spiral_eval::UH0>),                                 │
00:00:12 #517 [Verbose] > │             UH0_1,                                                           │
00:00:12 #518 [Verbose] > │         }                                                                    │
00:00:12 #519 [Verbose] > │         impl Spiral_eval::UH0 {                                              │
00:00:12 #520 [Verbose] > │             pub fn get_IsUH0_0(this_: LrcPtr<Spiral_eval::UH0>, unitArg: ()) │
00:00:12 #521 [Verbose] > │              -> bool {                                                       │
00:00:12 #522 [Verbose] > │                 if let Spiral_eval::UH0::UH0_0(this__0_0, this__0_1,         │
00:00:12 #523 [Verbose] > │                                                this__0_2, this__0_3,         │
00:00:12 #524 [Verbose] > │                                                this__0_4) = this_.as_ref() { │
00:00:12 #525 [Verbose] > │                     true                                                     │
00:00:12 #526 [Verbose] > │                 } else { false }                                             │
00:00:12 #527 [Verbose] > │             }                                                                │
00:00:12 #528 [Verbose] > │             pub fn get_IsUH0_1(this_: LrcPtr<Spiral_eval::UH0>, unitArg: ()) │
00:00:12 #529 [Verbose] > │              -> bool {                                                       │
00:00:12 #530 [Verbose] > │                 if let Spiral_eval::UH0::UH0_1 = this_.as_ref() {            │
00:00:12 #531 [Verbose] > │                     true                                                     │
00:00:12 #532 [Verbose] > │                 } else { false }                                             │
00:00:12 #533 [Verbose] > │             }                                                                │
00:00:12 #534 [Verbose] > │         }                                                                    │
00:00:12 #535 [Verbose] > │         impl core::fmt::Display for Spiral_eval::UH0 {                       │
00:00:12 #536 [Verbose] > │             fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │
00:00:12 #537 [Verbose] > │ {                                                                            │
00:00:12 #538 [Verbose] > │                 write!(f, "{}", core::any::type_name::<Self>())              │
00:00:12 #539 [Verbose] > │             }                                                                │
00:00:12 #540 [Verbose] > │         }                                                                    │
00:00:12 #541 [Verbose] > │         #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Hash, Eq,)]      │
00:00:12 #542 [Verbose] > │         pub enum US3 { US3_0, US3_1, }                                       │
00:00:12 #543 [Verbose] > │         impl Spiral_eval::US3 {                                              │
00:00:12 #544 [Verbose] > │             pub fn get_IsUS3_0(this_: &MutCell<Spiral_eval::US3>, unitArg:   │
00:00:12 #545 [Verbose] > │ ())                                                                          │
00:00:12 #546 [Verbose] > │              -> bool {                                                       │
00:00:12 #547 [Verbose] > │                 if unreachable!() { true } else { false }                    │
00:00:12 #548 [Verbose] > │             }                                                                │
00:00:12 #549 [Verbose] > │             pub fn get_IsUS3_1(this_: &MutCell<Spiral_eval::US3>, unitArg:   │
00:00:12 #550 [Verbose] > │ ())                                                                          │
00:00:12 #551 [Verbose] > │              -> bool {                                                       │
00:00:12 #552 [Verbose] > │                 if unreachable!() { true } else { false }                    │
00:00:12 #553 [Verbose] > │             }                                                                │
00:00:12 #554 [Verbose] > │         }                                                                    │
00:00:12 #555 [Verbose] > │         impl core::fmt::Display for Spiral_eval::US3 {                       │
00:00:12 #556 [Verbose] > │             fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │
00:00:12 #557 [Verbose] > │ {                                                                            │
00:00:12 #558 [Verbose] > │                 write!(f, "{}", core::any::type_name::<Self>())              │
00:00:12 #559 [Verbose] > │             }                                                                │
00:00:12 #560 [Verbose] > │         }                                                                    │
00:00:12 #561 [Verbose] > │         #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Hash, Eq,)]      │
00:00:12 #562 [Verbose] > │         pub enum US7 { US7_0, US7_1, US7_2, US7_3, US7_4, US7_5, US7_6, }    │
00:00:12 #563 [Verbose] > │         impl Spiral_eval::US7 {                                              │
00:00:12 #564 [Verbose] > │             pub fn get_IsUS7_0(this_: &MutCell<Spiral_eval::US7>, unitArg:   │
00:00:12 #565 [Verbose] > │ ())                                                                          │
00:00:12 #566 [Verbose] > │              -> bool {                                                       │
00:00:12 #567 [Verbose] > │                 if unreachable!() { true } else { false }                    │
00:00:12 #568 [Verbose] > │             }                                                                │
00:00:12 #569 [Verbose] > │             pub fn get_IsUS7_1(this_: &MutCell<Spiral_eval::US7>, unitArg:   │
00:00:12 #570 [Verbose] > │ ())                                                                          │
00:00:12 #571 [Verbose] > │              -> bool {                                                       │
00:00:12 #572 [Verbose] > │                 if unreachable!() { true } else { false }                    │
00:00:12 #573 [Verbose] > │             }                                                                │
00:00:12 #574 [Verbose] > │             pub fn get_IsUS7_2(this_: &MutCell<Spiral_eval::US7>, unitArg:   │
00:00:12 #575 [Verbose] > │ ())                                                                          │
00:00:12 #576 [Verbose] > │              -> bool {                                                       │
00:00:12 #577 [Verbose] > │                 if unreachable!() { true } else { false }                    │
00:00:12 #578 [Verbose] > │             }                                                                │
00:00:12 #579 [Verbose] > │             pub fn get_IsUS7_3(this_: &MutCell<Spiral_eval::US7>, unitArg:   │
00:00:12 #580 [Verbose] > │ ())                                                                          │
00:00:12 #581 [Verbose] > │              -> bool {                                                       │
00:00:12 #582 [Verbose] > │                 if unreachable!() { true } else { false }                    │
00:00:12 #583 [Verbose] > │             }                                                                │
00:00:12 #584 [Verbose] > │             pub fn get_IsUS7_4(this_: &MutCell<Spiral_eval::US7>, unitArg:   │
00:00:12 #585 [Verbose] > │ ())                                                                          │
00:00:12 #586 [Verbose] > │              -> bool {                                                       │
00:00:12 #587 [Verbose] > │                 if unreachable!() { true } else { false }                    │
00:00:12 #588 [Verbose] > │             }                                                                │
00:00:12 #589 [Verbose] > │             pub fn get_IsUS7_5(this_: &MutCell<Spiral_eval::US7>, unitArg:   │
00:00:12 #590 [Verbose] > │ ())                                                                          │
00:00:12 #591 [Verbose] > │              -> bool {                                                       │
00:00:12 #592 [Verbose] > │                 if unreachable!() { true } else { false }                    │
00:00:12 #593 [Verbose] > │             }                                                                │
00:00:12 #594 [Verbose] > │             pub fn get_IsUS7_6(this_: &MutCell<Spiral_eval::US7>, unitArg:   │
00:00:12 #595 [Verbose] > │ ())                                                                          │
00:00:12 #596 [Verbose] > │              -> bool {                                                       │
00:00:12 #597 [Verbose] > │                 if unreachable!() { true } else { false }                    │
00:00:12 #598 [Verbose] > │             }                                                                │
00:00:12 #599 [Verbose] > │         }                                                                    │
00:00:12 #600 [Verbose] > │         impl core::fmt::Display for Spiral_eval::US7 {                       │
00:00:12 #601 [Verbose] > │             fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │
00:00:12 #602 [Verbose] > │ {                                                                            │
00:00:12 #603 [Verbose] > │                 write!(f, "{}", core::any::type_name::<Self>())              │
00:00:12 #604 [Verbose] > │             }                                                                │
00:00:12 #605 [Verbose] > │         }                                                                    │
00:00:12 #606 [Verbose] > │         #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Hash, Eq,)]      │
00:00:12 #607 [Verbose] > │         pub enum US6 {                                                       │
00:00:12 #608 [Verbose] > │             US6_0(i32),                                                      │
00:00:12 #609 [Verbose] > │             US6_1(Spiral_eval::US7),                                         │
00:00:12 #610 [Verbose] > │             US6_2(i32, Spiral_eval::US0),                                    │
00:00:12 #611 [Verbose] > │         }                                                                    │
00:00:12 #612 [Verbose] > │         impl Spiral_eval::US6 {                                              │
00:00:12 #613 [Verbose] > │             pub fn get_IsUS6_0(this_: &MutCell<Spiral_eval::US6>, unitArg:   │
00:00:12 #614 [Verbose] > │ ())                                                                          │
00:00:12 #615 [Verbose] > │              -> bool {                                                       │
00:00:12 #616 [Verbose] > │                 if unreachable!() { true } else { false }                    │
00:00:12 #617 [Verbose] > │             }                                                                │
00:00:12 #618 [Verbose] > │             pub fn get_IsUS6_1(this_: &MutCell<Spiral_eval::US6>, unitArg:   │
00:00:12 #619 [Verbose] > │ ())                                                                          │
00:00:12 #620 [Verbose] > │              -> bool {                                                       │
00:00:12 #621 [Verbose] > │                 if unreachable!() { true } else { false }                    │
00:00:12 #622 [Verbose] > │             }                                                                │
00:00:12 #623 [Verbose] > │             pub fn get_IsUS6_2(this_: &MutCell<Spiral_eval::US6>, unitArg:   │
00:00:12 #624 [Verbose] > │ ())                                                                          │
00:00:12 #625 [Verbose] > │              -> bool {                                                       │
00:00:12 #626 [Verbose] > │                 if unreachable!() { true } else { false }                    │
00:00:12 #627 [Verbose] > │             }                                                                │
00:00:12 #628 [Verbose] > │         }                                                                    │
00:00:12 #629 [Verbose] > │         impl core::fmt::Display for Spiral_eval::US6 {                       │
00:00:12 #630 [Verbose] > │             fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │
00:00:12 #631 [Verbose] > │ {                                                                            │
00:00:12 #632 [Verbose] > │                 write!(f, "{}", core::any::type_name::<Self>())              │
00:00:12 #633 [Verbose] > │             }                                                                │
00:00:12 #634 [Verbose] > │         }                                                                    │
00:00:12 #635 [Verbose] > │         #[derive(Clone, Debug, PartialEq, PartialOrd, Hash, Eq,)]            │
00:00:12 #636 [Verbose] > │         pub enum UH1 {                                                       │
00:00:12 #637 [Verbose] > │             UH1_0(Spiral_eval::US6, LrcPtr<Spiral_eval::UH1>),               │
00:00:12 #638 [Verbose] > │             UH1_1,                                                           │
00:00:12 #639 [Verbose] > │         }                                                                    │
00:00:12 #640 [Verbose] > │         impl Spiral_eval::UH1 {                                              │
00:00:12 #641 [Verbose] > │             pub fn get_IsUH1_0(this_: LrcPtr<Spiral_eval::UH1>, unitArg: ()) │
00:00:12 #642 [Verbose] > │              -> bool {                                                       │
00:00:12 #643 [Verbose] > │                 if let Spiral_eval::UH1::UH1_0(this__0_0, this__0_1) =       │
00:00:12 #644 [Verbose] > │                        this_.as_ref() {                                      │
00:00:12 #645 [Verbose] > │                     true                                                     │
00:00:12 #646 [Verbose] > │                 } else { false }                                             │
00:00:12 #647 [Verbose] > │             }                                                                │
00:00:12 #648 [Verbose] > │             pub fn get_IsUH1_1(this_: LrcPtr<Spiral_eval::UH1>, unitArg: ()) │
00:00:12 #649 [Verbose] > │              -> bool {                                                       │
00:00:12 #650 [Verbose] > │                 if let Spiral_eval::UH1::UH1_1 = this_.as_ref() {            │
00:00:12 #651 [Verbose] > │                     true                                                     │
00:00:12 #652 [Verbose] > │                 } else { false }                                             │
00:00:12 #653 [Verbose] > │             }                                                                │
00:00:12 #654 [Verbose] > │         }                                                                    │
00:00:12 #655 [Verbose] > │         impl core::fmt::Display for Spiral_eval::UH1 {                       │
00:00:12 #656 [Verbose] > │             fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │
00:00:12 #657 [Verbose] > │ {                                                                            │
00:00:12 #658 [Verbose] > │                 write!(f, "{}", core::any::type_name::<Self>())              │
00:00:12 #659 [Verbose] > │             }                                                                │
00:00:12 #660 [Verbose] > │         }                                                                    │
00:00:12 #661 [Verbose] > │         #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Hash, Eq,)]      │
00:00:12 #662 [Verbose] > │         pub enum US8 { US8_0(i32), US8_1(i32), US8_2(i32), }                 │
00:00:12 #663 [Verbose] > │         impl Spiral_eval::US8 {                                              │
00:00:12 #664 [Verbose] > │             pub fn get_IsUS8_0(this_: &MutCell<Spiral_eval::US8>, unitArg:   │
00:00:12 #665 [Verbose] > │ ())                                                                          │
00:00:12 #666 [Verbose] > │              -> bool {                                                       │
00:00:12 #667 [Verbose] > │                 if unreachable!() { true } else { false }                    │
00:00:12 #668 [Verbose] > │             }                                                                │
00:00:12 #669 [Verbose] > │             pub fn get_IsUS8_1(this_: &MutCell<Spiral_eval::US8>, unitArg:   │
00:00:12 #670 [Verbose] > │ ())                                                                          │
00:00:12 #671 [Verbose] > │              -> bool {                                                       │
00:00:12 #672 [Verbose] > │                 if unreachable!() { true } else { false }                    │
00:00:12 #673 [Verbose] > │             }                                                                │
00:00:12 #674 [Verbose] > │             pub fn get_IsUS8_2(this_: &MutCell<Spiral_eval::US8>, unitArg:   │
00:00:12 #675 [Verbose] > │ ())                                                                          │
00:00:12 #676 [Verbose] > │              -> bool {                                                       │
00:00:12 #677 [Verbose] > │                 if unreachable!() { true } else { false }                    │
00:00:12 #678 [Verbose] > │             }                                                                │
00:00:12 #679 [Verbose] > │         }                                                                    │
00:00:12 #680 [Verbose] > │         impl core::fmt::Display for Spiral_eval::US8 {                       │
00:00:12 #681 [Verbose] > │             fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │
00:00:12 #682 [Verbose] > │ {                                                                            │
00:00:12 #683 [Verbose] > │                 write!(f, "{}", core::any::type_name::<Self>())              │
00:00:12 #684 [Verbose] > │             }                                                                │
00:00:12 #685 [Verbose] > │         }                                                                    │
00:00:12 #686 [Verbose] > │         #[derive(Clone, Debug, PartialEq, PartialOrd, Hash, Eq,)]            │
00:00:12 #687 [Verbose] > │         pub enum US5 {                                                       │
00:00:12 #688 [Verbose] > │             US5_0(LrcPtr<Spiral_eval::UH1>),                                 │
00:00:12 #689 [Verbose] > │             US5_1(Spiral_eval::US8),                                         │
00:00:12 #690 [Verbose] > │         }                                                                    │
00:00:12 #691 [Verbose] > │         impl Spiral_eval::US5 {                                              │
00:00:12 #692 [Verbose] > │             pub fn get_IsUS5_0(this_: &MutCell<Spiral_eval::US5>, unitArg:   │
00:00:12 #693 [Verbose] > │ ())                                                                          │
00:00:12 #694 [Verbose] > │              -> bool {                                                       │
00:00:12 #695 [Verbose] > │                 if unreachable!() { true } else { false }                    │
00:00:12 #696 [Verbose] > │             }                                                                │
00:00:12 #697 [Verbose] > │             pub fn get_IsUS5_1(this_: &MutCell<Spiral_eval::US5>, unitArg:   │
00:00:12 #698 [Verbose] > │ ())                                                                          │
00:00:12 #699 [Verbose] > │              -> bool {                                                       │
00:00:12 #700 [Verbose] > │                 if unreachable!() { true } else { false }                    │
00:00:12 #701 [Verbose] > │             }                                                                │
00:00:12 #702 [Verbose] > │         }                                                                    │
00:00:12 #703 [Verbose] > │         impl core::fmt::Display for Spiral_eval::US5 {                       │
00:00:12 #704 [Verbose] > │             fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │
00:00:12 #705 [Verbose] > │ {                                                                            │
00:00:12 #706 [Verbose] > │                 write!(f, "{}", core::any::type_name::<Self>())              │
00:00:12 #707 [Verbose] > │             }                                                                │
00:00:12 #708 [Verbose] > │         }                                                                    │
00:00:12 #709 [Verbose] > │         #[derive(Clone, Debug, PartialEq, PartialOrd, Hash, Eq,)]            │
00:00:12 #710 [Verbose] > │         pub enum US4 { US4_0(Spiral_eval::US3), US4_1(Spiral_eval::US5), }   │
00:00:12 #711 [Verbose] > │         impl Spiral_eval::US4 {                                              │
00:00:12 #712 [Verbose] > │             pub fn get_IsUS4_0(this_: &MutCell<Spiral_eval::US4>, unitArg:   │
00:00:12 #713 [Verbose] > │ ())                                                                          │
00:00:12 #714 [Verbose] > │              -> bool {                                                       │
00:00:12 #715 [Verbose] > │                 if unreachable!() { true } else { false }                    │
00:00:12 #716 [Verbose] > │             }                                                                │
00:00:12 #717 [Verbose] > │             pub fn get_IsUS4_1(this_: &MutCell<Spiral_eval::US4>, unitArg:   │
00:00:12 #718 [Verbose] > │ ())                                                                          │
00:00:12 #719 [Verbose] > │              -> bool {                                                       │
00:00:12 #720 [Verbose] > │                 if unreachable!() { true } else { false }                    │
00:00:12 #721 [Verbose] > │             }                                                                │
00:00:12 #722 [Verbose] > │         }                                                                    │
00:00:12 #723 [Verbose] > │         impl core::fmt::Display for Spiral_eval::US4 {                       │
00:00:12 #724 [Verbose] > │             fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │
00:00:12 #725 [Verbose] > │ {                                                                            │
00:00:12 #726 [Verbose] > │                 write!(f, "{}", core::any::type_name::<Self>())              │
00:00:12 #727 [Verbose] > │             }                                                                │
00:00:12 #728 [Verbose] > │         }                                                                    │
00:00:12 #729 [Verbose] > │         #[derive(Clone, Debug, PartialEq, PartialOrd, Hash, Eq,)]            │
00:00:12 #730 [Verbose] > │         pub enum UH2 {                                                       │
00:00:12 #731 [Verbose] > │             UH2_0(LrcPtr<Spiral_eval::UH0>, string, Spiral_eval::US4,        │
00:00:12 #732 [Verbose] > │                   LrcPtr<Spiral_eval::UH2>),                                 │
00:00:12 #733 [Verbose] > │             UH2_1,                                                           │
00:00:12 #734 [Verbose] > │         }                                                                    │
00:00:12 #735 [Verbose] > │         impl Spiral_eval::UH2 {                                              │
00:00:12 #736 [Verbose] > │             pub fn get_IsUH2_0(this_: LrcPtr<Spiral_eval::UH2>, unitArg: ()) │
00:00:12 #737 [Verbose] > │              -> bool {                                                       │
00:00:12 #738 [Verbose] > │                 if let Spiral_eval::UH2::UH2_0(this__0_0, this__0_1,         │
00:00:12 #739 [Verbose] > │                                                this__0_2, this__0_3) =       │
00:00:12 #740 [Verbose] > │                        this_.as_ref() {                                      │
00:00:12 #741 [Verbose] > │                     true                                                     │
00:00:12 #742 [Verbose] > │                 } else { false }                                             │
00:00:12 #743 [Verbose] > │             }                                                                │
00:00:12 #744 [Verbose] > │             pub fn get_IsUH2_1(this_: LrcPtr<Spiral_eval::UH2>, unitArg: ()) │
00:00:12 #745 [Verbose] > │              -> bool {                                                       │
00:00:12 #746 [Verbose] > │                 if let Spiral_eval::UH2::UH2_1 = this_.as_ref() {            │
00:00:12 #747 [Verbose] > │                     true                                                     │
00:00:12 #748 [Verbose] > │                 } else { false }                                             │
00:00:12 #749 [Verbose] > │             }                                                                │
00:00:12 #750 [Verbose] > │         }                                                                    │
00:00:12 #751 [Verbose] > │         impl core::fmt::Display for Spiral_eval::UH2 {                       │
00:00:12 #752 [Verbose] > │             fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │
00:00:12 #753 [Verbose] > │ {                                                                            │
00:00:12 #754 [Verbose] > │                 write!(f, "{}", core::any::type_name::<Self>())              │
00:00:12 #755 [Verbose] > │             }                                                                │
00:00:12 #756 [Verbose] > │         }                                                                    │
00:00:12 #757 [Verbose] > │         pub fn method0() {                                                   │
00:00:12 #758 [Verbose] > │             let v17: std::string::String =                                   │
00:00:12 #759 [Verbose] > │                 format!("{:#?}",                                             │
00:00:12 #760 [Verbose] > │ LrcPtr::new(Spiral_eval::UH2::UH2_0(LrcPtr::new(Spiral_eval::UH0::UH0_1),    │
00:00:12 #761 [Verbose] > │                                                                              │
00:00:12 #762 [Verbose] > │ string("01"),                                                                │
00:00:12 #763 [Verbose] > │                                                                              │
00:00:12 #764 [Verbose] > │ Spiral_eval::US4::US4_0(Spiral_eval::US3::US3_0),                            │
00:00:12 #765 [Verbose] > │                                                                              │
00:00:12 #766 [Verbose] > │ LrcPtr::new(Spiral_eval::UH2::UH2_0(LrcPtr::new(Spiral_eval::UH0::UH0_1),    │
00:00:12 #767 [Verbose] > │                                                                              │
00:00:12 #768 [Verbose] > │ string("02"),                                                                │
00:00:12 #769 [Verbose] > │                                                                              │
00:00:12 #770 [Verbose] > │ Spiral_eval::US4::US4_0(Spiral_eval::US3::US3_0),                            │
00:00:12 #771 [Verbose] > │                                                                              │
00:00:12 #772 [Verbose] > │ LrcPtr::new(Spiral_eval::UH2::UH2_0(LrcPtr::new(Spiral_eval::UH0::UH0_1),    │
00:00:12 #773 [Verbose] > │                                                                              │
00:00:12 #774 [Verbose] > │ string("03"),                                                                │
00:00:12 #775 [Verbose] > │                                                                              │
00:00:12 #776 [Verbose] > │ Spiral_eval::US4::US4_0(Spiral_eval::US3::US3_0),                            │
00:00:12 #777 [Verbose] > │                                                                              │
00:00:12 #778 [Verbose] > │ LrcPtr::new(Spiral_eval::UH2::UH2_1))))))));                                 │
00:00:12 #779 [Verbose] > │             printfn!("{0}", v17);                                            │
00:00:12 #780 [Verbose] > │             ()                                                               │
00:00:12 #781 [Verbose] > │         }                                                                    │
00:00:12 #782 [Verbose] > │         on_startup!(Spiral_eval::method0());                                 │
00:00:12 #783 [Verbose] > │     }                                                                        │
00:00:12 #784 [Verbose] > │ }                                                                            │
00:00:12 #785 [Verbose] > │ pub use module_ccfa04bf::*;                                                  │
00:00:12 #786 [Verbose] > │                                                                              │
00:00:12 #787 [Verbose] > │                                                                              │
00:00:12 #788 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:12 #789 [Verbose] >
00:00:12 #790 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:12 #791 [Verbose] > // // test
00:00:12 #792 [Verbose] > // // rust=
00:00:12 #793 [Verbose] >
00:00:12 #794 [Verbose] > get_tasks ()
00:00:12 #795 [Verbose] > |> listm'.try_item 0i32
00:00:12 #796 [Verbose] > |> fun (Some task) => task.task.name
00:00:12 #797 [Verbose] > |> _assert_eq (task_name "01")
00:00:12 #798 [Verbose] > Building /tmp/dotnet-repl/20240329-2211-3236-3627-35f462106ccb/main.spi
00:00:15 #799 [Verbose] >
00:00:15 #800 [Verbose] > ╭─[ 2.71s - return value ]─────────────────────────────────────────────────────╮
00:00:15 #801 [Verbose] > │ .rs output:                                                                  │
00:00:15 #802 [Verbose] > │ "01"                                                                         │
00:00:15 #803 [Verbose] > │                                                                              │
00:00:15 #804 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:15 #805 [Verbose] >
00:00:15 #806 [Verbose] > ╭─[ 2.71s - stdout ]───────────────────────────────────────────────────────────╮
00:00:15 #807 [Verbose] > │                                                                              │
00:00:15 #808 [Verbose] > │ .fsx:                                                                        │
00:00:15 #809 [Verbose] > │ let rec method0 () : unit =                                                  │
00:00:15 #810 [Verbose] > │     let v0 : string = "01"                                                   │
00:00:15 #811 [Verbose] > │     let v1 : string = $"%A{v0}"                                              │
00:00:15 #812 [Verbose] > │     System.Console.WriteLine v1                                              │
00:00:15 #813 [Verbose] > │     let v2 : string = $"__expect / actual: %A{v0} / expected: %A{v0}"        │
00:00:15 #814 [Verbose] > │     ()                                                                       │
00:00:15 #815 [Verbose] > │ method0()                                                                    │
00:00:15 #816 [Verbose] > │                                                                              │
00:00:15 #817 [Verbose] > │                                                                              │
00:00:15 #818 [Verbose] > │ .rs:                                                                         │
00:00:15 #819 [Verbose] > │ #![allow(dead_code,)]                                                        │
00:00:15 #820 [Verbose] > │ #![allow(non_camel_case_types,)]                                             │
00:00:15 #821 [Verbose] > │ #![allow(non_snake_case,)]                                                   │
00:00:15 #822 [Verbose] > │ #![allow(non_upper_case_globals,)]                                           │
00:00:15 #823 [Verbose] > │ #![allow(unreachable_code,)]                                                 │
00:00:15 #824 [Verbose] > │ #![allow(unused_attributes,)]                                                │
00:00:15 #825 [Verbose] > │ #![allow(unused_imports,)]                                                   │
00:00:15 #826 [Verbose] > │ #![allow(unused_macros,)]                                                    │
00:00:15 #827 [Verbose] > │ #![allow(unused_parens,)]                                                    │
00:00:15 #828 [Verbose] > │ #![allow(unused_variables,)]                                                 │
00:00:15 #829 [Verbose] > │ mod module_ccfa04bf {                                                        │
00:00:15 #830 [Verbose] > │     pub mod Spiral_eval {                                                    │
00:00:15 #831 [Verbose] > │         use super::*;                                                        │
00:00:15 #832 [Verbose] > │         use fable_library_rust::Native_::on_startup;                         │
00:00:15 #833 [Verbose] > │         use fable_library_rust::String_::printfn;                            │
00:00:15 #834 [Verbose] > │         use fable_library_rust::String_::sprintf;                            │
00:00:15 #835 [Verbose] > │         use fable_library_rust::String_::string;                             │
00:00:15 #836 [Verbose] > │         pub fn method0() {                                                   │
00:00:15 #837 [Verbose] > │             let v1: string = sprintf!("{:?}", string("01"));                 │
00:00:15 #838 [Verbose] > │             printfn!("{0}", v1);                                             │
00:00:15 #839 [Verbose] > │             {                                                                │
00:00:15 #840 [Verbose] > │                 let v2: string =                                             │
00:00:15 #841 [Verbose] > │                     sprintf!("__expect / actual: {:?} / expected: {:?}",     │
00:00:15 #842 [Verbose] > │                              string("01"), string("01"));                    │
00:00:15 #843 [Verbose] > │                 ()                                                           │
00:00:15 #844 [Verbose] > │             }                                                                │
00:00:15 #845 [Verbose] > │         }                                                                    │
00:00:15 #846 [Verbose] > │         on_startup!(Spiral_eval::method0());                                 │
00:00:15 #847 [Verbose] > │     }                                                                        │
00:00:15 #848 [Verbose] > │ }                                                                            │
00:00:15 #849 [Verbose] > │ pub use module_ccfa04bf::*;                                                  │
00:00:15 #850 [Verbose] > │                                                                              │
00:00:15 #851 [Verbose] > │                                                                              │
00:00:15 #852 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:15 #853 [Verbose] >
00:00:15 #854 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:15 #855 [Verbose] > // // test
00:00:15 #856 [Verbose] >
00:00:15 #857 [Verbose] > ()
00:00:15 #858 [Verbose] > Building /tmp/dotnet-repl/20240329-2211-3506-0696-0fced2614c82/main.spi
00:00:15 #859 [Verbose] >
00:00:15 #860 [Verbose] > ╭─[ 280.82ms - stdout ]────────────────────────────────────────────────────────╮
00:00:15 #861 [Verbose] > │ let rec method0 () : unit =                                                  │
00:00:15 #862 [Verbose] > │     ()                                                                       │
00:00:15 #863 [Verbose] > │ method0()                                                                    │
00:00:15 #864 [Verbose] > │                                                                              │
00:00:15 #865 [Verbose] > │                                                                              │
00:00:15 #866 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:16 #867 [Verbose] > [NbConvertApp] Converting notebook Tasks.dib.ipynb to html
00:00:16 #868 [Verbose] > /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:00:16 #869 [Verbose] >   validate(nb)
00:00:16 #870 [Verbose] > /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:00:16 #871 [Verbose] >   return _pygments_highlight(
00:00:16 #872 [Verbose] > [NbConvertApp] Writing 313964 bytes to Tasks.dib.html
00:00:17 #873 [Debug] executeAsync / exitCode: 0 / output.Length: 73157
00:00:17 #874 [Debug] main / executeCommand / exitCode: 0
00:00:17 #875 [Verbose] waitForPortAccess / port: 13805 / retry: 0
00:00:17 #876 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #1 [Debug] writeDibCode / output: Spi / path: Tasks.dib
00:00:00 #2 [Debug] parseDibCode / output: Spi / file: Tasks.dib
In [ ]:
{ . "$ScriptDir/../apps/chat/build.ps1" } | Invoke-Block
 Downloading crates ...
  Downloaded borsh-derive v1.4.0
  Downloaded darling v0.20.8
  Downloaded cfg-if v0.1.10
  Downloaded wee_alloc v0.4.5
  Downloaded unsigned-varint v0.8.0
  Downloaded toml_edit v0.21.1
  Downloaded syn_derive v0.1.8
  Downloaded near-gas v0.2.5
  Downloaded darling_macro v0.20.8
  Downloaded proc-macro-crate v3.1.0
  Downloaded near-token v0.2.0
  Downloaded near-sys v0.2.1
  Downloaded near-account-id v1.0.0
  Downloaded multibase v0.9.1
  Downloaded memory_units v0.4.0
  Downloaded ident_case v1.0.1
  Downloaded data-encoding-macro-internal v0.1.12
  Downloaded data-encoding-macro v0.1.14
  Downloaded darling_core v0.20.8
  Downloaded cfg_aliases v0.1.1
  Downloaded bs58 v0.5.1
  Downloaded borsh v1.4.0
  Downloaded base-x v0.2.11
  Downloaded Inflector v0.11.4
  Downloaded near-sdk-macros v5.1.0
  Downloaded near-sdk v5.1.0
   Compiling proc-macro2 v1.0.79
   Compiling unicode-ident v1.0.12
   Compiling version_check v0.9.4
   Compiling hashbrown v0.14.3
   Compiling equivalent v1.0.1
   Compiling winnow v0.5.40
   Compiling proc-macro-error-attr v1.0.4
   Compiling proc-macro-error v1.0.4
   Compiling indexmap v2.2.6
   Compiling quote v1.0.35
   Compiling syn v2.0.55
   Compiling toml_datetime v0.6.5
   Compiling serde v1.0.197
   Compiling typenum v1.17.0
   Compiling cfg_aliases v0.1.1
   Compiling borsh v1.4.0
   Compiling toml_edit v0.21.1
   Compiling generic-array v0.14.7
   Compiling once_cell v1.19.0
   Compiling serde_json v1.0.115
   Compiling syn v1.0.109
   Compiling rustversion v1.0.14
   Compiling ident_case v1.0.1
   Compiling fnv v1.0.7
   Compiling proc-macro-crate v3.1.0
   Compiling darling_core v0.20.8
   Compiling wee_alloc v0.4.5
   Compiling heck v0.4.1
   Compiling data-encoding v2.5.0
   Compiling ryu v1.0.17
   Compiling itoa v1.0.11
   Compiling near-sdk-macros v5.1.0
   Compiling block-buffer v0.10.4
   Compiling crypto-common v0.1.6
   Compiling Inflector v0.11.4
   Compiling cfg-if v0.1.10
   Compiling data-encoding-macro-internal v0.1.12
   Compiling memory_units v0.4.0
   Compiling serde_derive v1.0.197
   Compiling syn_derive v0.1.8
   Compiling strum_macros v0.26.2
   Compiling darling_macro v0.20.8
   Compiling borsh-derive v1.4.0
   Compiling darling v0.20.8
   Compiling strum v0.26.2
   Compiling data-encoding-macro v0.1.14
   Compiling digest v0.10.7
   Compiling bs58 v0.5.1
   Compiling base64 v0.21.7
   Compiling cfg-if v1.0.0
   Compiling base-x v0.2.11
   Compiling near-sys v0.2.1
   Compiling multibase v0.9.1
   Compiling sha2 v0.10.8
   Compiling unsigned-varint v0.8.0
   Compiling near-gas v0.2.5
   Compiling near-account-id v1.0.0
   Compiling near-token v0.2.0
   Compiling near-sdk v5.1.0
   Compiling chat_contract v0.0.1 (/home/runner/work/polyglot/polyglot/apps/chat/contract)
    Finished `release` profile [optimized] target(s) in 15.84s
 Downloading crates ...
  Downloaded async-stream-impl v0.3.5
  Downloaded assert_matches v1.5.0
  Downloaded actix_derive v0.6.1
  Downloaded actix-rt v2.9.0
  Downloaded base64 v0.13.1
  Downloaded async-stream v0.3.5
  Downloaded arbitrary v1.3.2
  Downloaded proc-macro-crate v0.1.5
  Downloaded rustc-hex v2.1.0
  Downloaded rustls-pki-types v1.4.1
  Downloaded reed-solomon-erasure v4.0.2
  Downloaded serde_yaml v0.9.34+deprecated
  Downloaded strum v0.24.1
  Downloaded zip v0.5.13
  Downloaded webpki-roots v0.26.1
  Downloaded xml-rs v0.8.19
  Downloaded zeropool-bn v0.5.11
  Downloaded scroll v0.11.0
  Downloaded hyper-timeout v0.4.1
  Downloaded sha3 v0.10.8
  Downloaded plain v0.2.3
  Downloaded near-parameters v0.20.1
  Downloaded env_logger v0.9.3
  Downloaded hyper-tls v0.5.0
  Downloaded pdb v0.7.0
  Downloaded curve25519-dalek-derive v0.1.1
  Downloaded platforms v3.4.0
  Downloaded pin-project-lite v0.2.13
  Downloaded os_str_bytes v6.6.1
  Downloaded prefix-sum-vec v0.1.2
  Downloaded secp256k1-sys v0.8.1
  Downloaded petgraph v0.6.4
  Downloaded gimli v0.26.2
  Downloaded opentelemetry-semantic-conventions v0.9.0
  Downloaded openssl-macros v0.1.1
  Downloaded num-bigint v0.3.3
  Downloaded nom v7.1.3
  Downloaded near-primitives-core v0.20.1
  Downloaded near-primitives v0.20.1
  Downloaded near-o11y v0.20.1
  Downloaded near-jsonrpc-primitives v0.20.1
  Downloaded near-jsonrpc-client v0.8.0
  Downloaded near-config-utils v0.20.1
  Downloaded near-chain-configs v0.20.1
  Downloaded near-abi v0.3.0
  Downloaded libloading v0.7.4
  Downloaded goblin v0.5.4
  Downloaded openssl-sys v0.9.102
  Downloaded opaque-debug v0.3.1
  Downloaded num-rational v0.3.2
  Downloaded nom-supreme v0.6.0
  Downloaded near-workspaces v0.10.0
  Downloaded near-sandbox-utils v0.7.0
  Downloaded near-fmt v0.20.1
  Downloaded minimal-lexical v0.2.1
  Downloaded memmap2 v0.5.10
  Downloaded heck v0.3.3
  Downloaded enum-map v2.7.3
  Downloaded opentelemetry v0.17.0
  Downloaded openssl v0.10.64
  Downloaded near-stdx v0.20.1
  Downloaded near-rpc-error-macro v0.20.1
  Downloaded native-tls v0.2.11
  Downloaded multimap v0.8.3
  Downloaded keccak v0.1.5
  Downloaded foreign-types-shared v0.1.1
  Downloaded prost-build v0.9.0
  Downloaded foreign-types v0.3.2
  Downloaded fallible-iterator v0.2.0
  Downloaded opentelemetry-otlp v0.10.0
  Downloaded near-vm-runner v0.20.1
  Downloaded near-rpc-error-core v0.20.1
  Downloaded near-crypto v0.20.1
  Downloaded indent_write v2.2.0
  Downloaded enum-map-derive v0.17.0
  Downloaded dmsort v1.0.2
  Downloaded cargo-near v0.3.1
  Downloaded clap_lex v0.2.4
  Downloaded c2-chacha v0.3.3
  Downloaded bytesize v1.3.0
  Downloaded ed25519 v2.2.3
  Downloaded curve25519-dalek v4.1.2
  Downloaded clap v3.2.25
  Downloaded blake2 v0.9.2
  Downloaded lazycell v1.3.0
  Downloaded joinery v2.1.0
  Downloaded fixed-hash v0.7.0
  Downloaded crypto-mac v0.8.0
  Downloaded crunchy v0.2.2
  Downloaded borsh-schema-derive-internal v0.9.3
  Downloaded digest v0.9.0
  Downloaded debugid v0.7.3
  Downloaded primitive-types v0.10.1
  Downloaded hashbrown v0.11.2
  Downloaded fixedbitset v0.4.2
  Downloaded fastrand v2.0.2
  Downloaded ed25519-dalek v2.1.1
  Downloaded dyn-clone v1.0.17
  Downloaded colored v2.1.0
  Downloaded cipher v0.2.5
  Downloaded borsh v0.9.3
  Downloaded elementtree v0.7.0
  Downloaded derive_arbitrary v1.3.2
  Downloaded borsh-derive-internal v0.9.3
  Downloaded borsh-derive v0.9.3
  Downloaded scroll v0.10.2
  Downloaded rustls-webpki v0.102.2
  Downloaded zeroize v1.7.0
  Downloaded which v4.4.2
  Downloaded wasmparser v0.83.0
  Downloaded vcpkg v0.2.15
  Downloaded uuid v0.8.2
  Downloaded ureq v2.9.6
  Downloaded unsafe-libyaml v0.2.11
  Downloaded unicode-segmentation v1.11.0
  Downloaded tracing-log v0.1.4
  Downloaded tracing-futures v0.2.5
  Downloaded tonic-build v0.6.2
  Downloaded tonic v0.6.2
  Downloaded toml v0.5.11
  Downloaded symbolic-debuginfo v8.8.0
  Downloaded static_assertions v1.1.0
  Downloaded smart-default v0.6.0
  Downloaded signature v2.2.0
  Downloaded serde_with_macros v3.7.0
  Downloaded serde_with v3.7.0
  Downloaded secp256k1 v0.27.0
  Downloaded scroll_derive v0.11.1
  Downloaded schemars_derive v0.8.16
  Downloaded json-patch v1.2.0
  Downloaded clap_derive v3.2.25
  Downloaded cargo_metadata v0.14.2
  Downloaded tracing-opentelemetry v0.17.4
  Downloaded tokio-util v0.6.10
  Downloaded tokio-retry v0.3.0
  Downloaded tokio-native-tls v0.3.1
  Downloaded tokio-io-timeout v1.2.0
  Downloaded textwrap v0.16.1
  Downloaded tempfile v3.10.1
  Downloaded serde_repr v0.1.18
  Downloaded json_comments v0.2.2
  Downloaded easy-ext v0.2.9
  Downloaded bs58 v0.4.0
  Downloaded brownstone v1.1.0
  Downloaded uint v0.9.5
  Downloaded treediff v4.0.3
  Downloaded tracing-appender v0.2.3
  Downloaded symbolic-common v8.8.0
  Downloaded strum_macros v0.24.3
  Downloaded serde_derive_internals v0.26.0
  Downloaded schemars v0.8.16
  Downloaded rustls v0.22.3
  Downloaded protobuf v2.28.0
  Downloaded prost v0.9.0
  Downloaded prost-derive v0.9.0
  Downloaded ripemd v0.1.3
  Downloaded prost-types v0.9.0
  Downloaded prometheus v0.13.3
  Downloaded actix v0.13.3
  Downloaded actix-macros v0.2.4
   Compiling cfg-if v1.0.0
   Compiling libc v0.2.153
   Compiling syn v2.0.55
   Compiling version_check v0.9.4
   Compiling generic-array v0.14.7
   Compiling serde v1.0.197
   Compiling jobserver v0.1.28
   Compiling syn v1.0.109
   Compiling once_cell v1.19.0
   Compiling cc v1.0.90
   Compiling pin-project-lite v0.2.13
   Compiling pkg-config v0.3.30
   Compiling log v0.4.21
   Compiling smallvec v1.13.2
   Compiling getrandom v0.2.12
   Compiling typenum v1.17.0
   Compiling scopeguard v1.2.0
   Compiling lock_api v0.4.11
   Compiling parking_lot_core v0.9.9
   Compiling parking_lot v0.12.1
   Compiling memchr v2.7.2
   Compiling bytes v1.6.0
   Compiling anyhow v1.0.81
   Compiling rustix v0.38.32
   Compiling subtle v2.5.0
   Compiling signal-hook-registry v1.4.1
   Compiling num_cpus v1.16.0
   Compiling socket2 v0.5.6
   Compiling mio v0.8.11
   Compiling futures-core v0.3.30
   Compiling crypto-common v0.1.6
   Compiling rand_core v0.6.4
   Compiling tracing-core v0.1.32
   Compiling thiserror v1.0.58
   Compiling serde_derive v1.0.197
   Compiling tokio-macros v2.2.0
   Compiling tracing-attributes v0.1.27
   Compiling tokio v1.37.0
   Compiling thiserror-impl v1.0.58
   Compiling block-buffer v0.10.4
   Compiling futures-sink v0.3.30
   Compiling equivalent v1.0.1
   Compiling hashbrown v0.14.3
   Compiling digest v0.10.7
   Compiling indexmap v2.2.6
   Compiling tracing v0.1.40
   Compiling slab v0.4.9
   Compiling proc-macro-error-attr v1.0.4
   Compiling ppv-lite86 v0.2.17
   Compiling bitflags v2.5.0
   Compiling linux-raw-sys v0.4.13
   Compiling futures-channel v0.3.30
   Compiling proc-macro-error v1.0.4
   Compiling futures-task v0.3.30
   Compiling futures-io v0.3.30
   Compiling cpufeatures v0.2.12
   Compiling pin-utils v0.1.0
   Compiling futures-util v0.3.30
   Compiling zstd-sys v2.0.10+zstd.1.5.6
   Compiling either v1.10.0
   Compiling crc32fast v1.4.0
   Compiling spin v0.5.2
   Compiling serde_json v1.0.115
   Compiling lazy_static v1.4.0
   Compiling ring v0.17.8
   Compiling rand_chacha v0.3.1
   Compiling percent-encoding v2.3.1
   Compiling rand v0.8.5
   Compiling sha2 v0.10.8
   Compiling num-traits v0.2.18
   Compiling toml_datetime v0.6.5
   Compiling home v0.5.9
   Compiling winnow v0.5.40
   Compiling byteorder v1.5.0
   Compiling itertools v0.10.5
   Compiling fnv v1.0.7
   Compiling zstd-safe v5.0.2+zstd.1.5.2
   Compiling base64 v0.21.7
   Compiling cfg_aliases v0.1.1
   Compiling borsh v1.4.0
   Compiling syn_derive v0.1.8
   Compiling toml_edit v0.21.1
   Compiling prost-derive v0.9.0
   Compiling tokio-util v0.7.10
   Compiling pin-project-internal v1.1.5
   Compiling bzip2-sys v0.1.11+1.0.8
   Compiling proc-macro-crate v3.1.0
   Compiling semver v1.0.22
   Compiling strsim v0.10.0
   Compiling ident_case v1.0.1
   Compiling crossbeam-utils v0.8.19
   Compiling darling_core v0.20.8
   Compiling pin-project v1.1.5
   Compiling http v0.2.12
   Compiling aho-corasick v1.1.3
   Compiling borsh-derive v1.4.0
   Compiling regex-syntax v0.8.3
   Compiling rustversion v1.0.14
   Compiling httparse v1.8.0
   Compiling darling_macro v0.20.8
   Compiling regex-automata v0.4.6
   Compiling which v4.4.2
   Compiling num-bigint v0.3.3
   Compiling indexmap v1.9.3
   Compiling tower-service v0.3.2
   Compiling crunchy v0.2.2
   Compiling try-lock v0.2.5
   Compiling getrandom v0.1.16
   Compiling async-trait v0.1.79
   Compiling rustls v0.22.3
   Compiling want v0.3.1
   Compiling prost-build v0.9.0
   Compiling rustc_version v0.4.0
   Compiling crossbeam-channel v0.5.12
   Compiling regex v1.10.4
   Compiling darling v0.20.8
   Compiling h2 v0.3.25
   Compiling http-body v0.4.6
   Compiling prost v0.9.0
   Compiling num-integer v0.1.46
   Compiling hex v0.4.3
   Compiling num-rational v0.3.2
   Compiling httpdate v1.0.3
   Compiling hashbrown v0.12.3
   Compiling platforms v3.4.0
   Compiling fixedbitset v0.4.2
   Compiling bs58 v0.4.0
   Compiling convert_case v0.4.0
   Compiling vcpkg v0.2.15
   Compiling unicode-segmentation v1.11.0
   Compiling fastrand v2.0.2
   Compiling powerfmt v0.2.0
   Compiling openssl-sys v0.9.102
   Compiling deranged v0.3.11
   Compiling tempfile v3.10.1
   Compiling heck v0.3.3
   Compiling derive_more v0.99.17
   Compiling petgraph v0.6.4
   Compiling hyper v0.14.28
   Compiling curve25519-dalek v4.1.2
   Compiling prost-types v0.9.0
   Compiling serde_with_macros v3.7.0
   Compiling strum_macros v0.24.3
   Compiling near-account-id v1.0.0
   Compiling tokio-stream v0.1.15
   Compiling enum-map-derive v0.17.0
   Compiling derive_arbitrary v1.3.2
   Compiling secp256k1-sys v0.8.1
   Compiling time-core v0.1.2
   Compiling static_assertions v1.1.0
   Compiling multimap v0.8.3
   Compiling regex-syntax v0.6.29
   Compiling num-conv v0.1.0
   Compiling enum-map v2.7.3
   Compiling time v0.3.34
   Compiling arbitrary v1.3.2
   Compiling strum v0.24.1
   Compiling regex-automata v0.1.10
   Compiling serde_with v3.7.0
   Compiling rand_core v0.5.1
   Compiling futures-executor v0.3.30
   Compiling serde_repr v0.1.18
   Compiling curve25519-dalek-derive v0.1.1
   Compiling fs2 v0.4.3
   Compiling tinyvec_macros v0.1.1
   Compiling utf8parse v0.2.1
   Compiling overload v0.1.1
   Compiling adler v1.0.2
   Compiling signature v2.2.0
   Compiling ed25519 v2.2.3
   Compiling miniz_oxide v0.7.2
   Compiling nu-ansi-term v0.46.0
   Compiling tinyvec v1.6.0
   Compiling anstyle-parse v0.2.3
   Compiling near-primitives-core v0.20.1
   Compiling opentelemetry v0.17.0
   Compiling rand_chacha v0.2.2
   Compiling matchers v0.1.0
   Compiling tonic-build v0.6.2
   Compiling uint v0.9.5
   Compiling fixed-hash v0.7.0
   Compiling sharded-slab v0.1.7
   Compiling tokio-io-timeout v1.2.0
   Compiling async-stream-impl v0.3.5
   Compiling tracing-log v0.2.0
   Compiling crypto-mac v0.8.0
   Compiling cipher v0.2.5
   Compiling digest v0.9.0
   Compiling thread_local v1.1.8
   Compiling colorchoice v1.0.0
   Compiling tower-layer v0.3.2
   Compiling rustls-pki-types v1.4.1
   Compiling anstyle v1.0.6
   Compiling opaque-debug v0.3.1
   Compiling untrusted v0.9.0
   Compiling json_comments v0.2.2
   Compiling anstyle-query v1.0.2
   Compiling protobuf v2.28.0
   Compiling spin v0.9.8
   Compiling anstream v0.6.13
   Compiling near-config-utils v0.20.1
   Compiling blake2 v0.9.2
   Compiling tower v0.4.13
   Compiling tracing-subscriber v0.3.18
   Compiling c2-chacha v0.3.3
   Compiling async-stream v0.3.5
   Compiling hyper-timeout v0.4.1
   Compiling opentelemetry-otlp v0.10.0
   Compiling primitive-types v0.10.1
   Compiling rand v0.7.3
   Compiling flate2 v1.0.28
   Compiling unicode-normalization v0.1.23
   Compiling secp256k1 v0.27.0
   Compiling ed25519-dalek v2.1.1
   Compiling tracing-futures v0.2.5
   Compiling inout v0.1.3
   Compiling form_urlencoded v1.2.1
   Compiling tokio-util v0.6.10
   Compiling memoffset v0.8.0
   Compiling openssl v0.10.64
   Compiling base64 v0.13.1
   Compiling near-stdx v0.20.1
   Compiling prometheus v0.13.3
   Compiling strsim v0.11.0
   Compiling heck v0.5.0
   Compiling unicode-bidi v0.3.15
   Compiling unsafe-libyaml v0.2.11
   Compiling base64ct v1.6.0
   Compiling clap_lex v0.7.0
   Compiling siphasher v0.3.11
   Compiling foreign-types-shared v0.1.1
   Compiling foreign-types v0.3.2
   Compiling password-hash v0.4.2
   Compiling clap_builder v4.5.2
   Compiling idna v0.5.0
   Compiling serde_yaml v0.9.34+deprecated
   Compiling clap_derive v4.5.4
   Compiling near-crypto v0.20.1
   Compiling tonic v0.6.2
   Compiling cipher v0.4.4
   Compiling rustls-webpki v0.102.2
   Compiling hmac v0.12.1
   Compiling futures v0.3.30
   Compiling actix-rt v2.9.0
   Compiling openssl-macros v0.1.1
   Compiling actix-macros v0.2.4
   Compiling actix_derive v0.6.1
   Compiling tracing-log v0.1.4
   Compiling ahash v0.7.8
   Compiling keccak v0.1.5
   Compiling zeroize v1.7.0
   Compiling reed-solomon-erasure v4.0.2
   Compiling near-sandbox-utils v0.7.0
   Compiling iana-time-zone v0.1.60
   Compiling rustc-hex v2.1.0
   Compiling assert_matches v1.5.0
   Compiling native-tls v0.2.11
   Compiling near-parameters v0.20.1
   Compiling zeropool-bn v0.5.11
   Compiling chrono v0.4.37
   Compiling sha3 v0.10.8
   Compiling actix v0.13.3
   Compiling tracing-opentelemetry v0.17.4
   Compiling pbkdf2 v0.11.0
   Compiling clap v4.5.4
   Compiling zstd v0.11.2+zstd.1.5.2
   Compiling aes v0.8.4
   Compiling bzip2 v0.4.4
   Compiling url v2.5.0
   Compiling tracing-appender v0.2.3
   Compiling webpki-roots v0.26.1
   Compiling opentelemetry-semantic-conventions v0.9.0
   Compiling near-fmt v0.20.1
   Compiling sha1 v0.10.6
   Compiling toml v0.5.11
   Compiling near-rpc-error-core v0.20.1
   Compiling xattr v1.3.1
   Compiling ripemd v0.1.3
   Compiling serde_derive_internals v0.26.0
   Compiling filetime v0.2.23
   Compiling dirs-sys-next v0.1.2
   Compiling radium v0.7.0
   Compiling openssl-probe v0.1.5
   Compiling uuid v0.8.2
   Compiling constant_time_eq v0.1.5
   Compiling prefix-sum-vec v0.1.2
   Compiling schemars v0.8.16
   Compiling camino v1.1.6
   Compiling ureq v2.9.6
   Compiling near-vm-runner v0.20.1
   Compiling zip v0.6.6
   Compiling dirs-next v2.0.0
   Compiling schemars_derive v0.8.16
   Compiling tar v0.4.40
   Compiling proc-macro-crate v0.1.5
   Compiling near-rpc-error-macro v0.20.1
   Compiling near-o11y v0.20.1
   Compiling phf_shared v0.10.0
   Compiling bytesize v1.3.0
   Compiling smart-default v0.6.0
   Compiling scroll_derive v0.11.1
   Compiling borsh-derive-internal v0.9.3
   Compiling borsh-schema-derive-internal v0.9.3
   Compiling arrayvec v0.7.4
   Compiling stable_deref_trait v1.2.0
   Compiling minimal-lexical v0.2.1
   Compiling precomputed-hash v0.1.1
   Compiling new_debug_unreachable v1.0.6
   Compiling easy-ext v0.2.9
   Compiling fallible-iterator v0.2.0
   Compiling is_executable v0.1.2
   Compiling dyn-clone v1.0.17
   Compiling tap v1.0.1
   Compiling wyz v0.5.1
   Compiling binary-install v0.2.0
   Compiling nom v7.1.3
   Compiling near-primitives v0.20.1
   Compiling string_cache v0.8.7
   Compiling brownstone v1.1.0
   Compiling scroll v0.11.0
   Compiling borsh-derive v0.9.3
   Compiling hashbrown v0.11.2
   Compiling tokio-native-tls v0.3.1
   Compiling debugid v0.7.3
   Compiling cargo-platform v0.1.8
   Compiling atty v0.2.14
   Compiling memmap2 v0.5.10
   Compiling scroll v0.10.2
   Compiling indent_write v2.2.0
   Compiling joinery v2.1.0
   Compiling termcolor v1.4.1
   Compiling os_str_bytes v6.6.1
   Compiling plain v0.2.3
   Compiling xml-rs v0.8.19
   Compiling funty v2.0.0
   Compiling bitvec v1.0.1
   Compiling elementtree v0.7.0
   Compiling goblin v0.5.4
   Compiling clap_lex v0.2.4
   Compiling nom-supreme v0.6.0
   Compiling pdb v0.7.0
   Compiling symbolic-common v8.8.0
   Compiling near-chain-configs v0.20.1
   Compiling hyper-tls v0.5.0
   Compiling borsh v0.9.3
   Compiling gimli v0.26.2
   Compiling serde_urlencoded v0.7.1
   Compiling zip v0.5.13
   Compiling clap_derive v3.2.25
   Compiling rustls-pemfile v1.0.4
   Compiling encoding_rs v0.8.33
   Compiling textwrap v0.16.1
   Compiling wasmparser v0.83.0
   Compiling bitflags v1.3.2
   Compiling humantime v2.1.0
   Compiling dmsort v1.0.2
   Compiling lazycell v1.3.0
   Compiling ipnet v2.9.0
   Compiling sync_wrapper v0.1.2
   Compiling mime v0.3.17
   Compiling reqwest v0.11.27
   Compiling symbolic-debuginfo v8.8.0
   Compiling clap v3.2.25
   Compiling env_logger v0.9.3
   Compiling near-abi v0.3.0
   Compiling near-workspaces v0.10.0
   Compiling near-jsonrpc-primitives v0.20.1
   Compiling cargo_metadata v0.14.2
   Compiling treediff v4.0.3
   Compiling colored v2.1.0
   Compiling libloading v0.7.4
   Compiling cargo-near v0.3.1
   Compiling json-patch v1.2.0
   Compiling cargo_metadata v0.18.1
   Compiling near-jsonrpc-client v0.8.0
   Compiling near-gas v0.2.5
   Compiling tokio-retry v0.3.0
   Compiling near-token v0.2.0
   Compiling bs58 v0.5.1
   Compiling chat_contract_tests v0.0.1 (/home/runner/work/polyglot/polyglot/apps/chat/contract/tests)
    Finished `release` profile [optimized] target(s) in 2m 24s
     Running `/home/runner/work/polyglot/polyglot/target/release/chat_contract_tests`
Installed near-sandbox into /home/runner/work/polyglot/polyglot/target/release/build/near-sandbox-utils-845978b5c9afa1dc/out/near-sandbox
Updated the logging layer according to `log_config.json`


new: ExecutionFinalResult {
    total_gas_burnt: NearGas {
        inner: 5283277357590,
    },
    transaction: ExecutionOutcome {
        transaction_hash: 8cikuRVGSzG8VC3LfuZk4PYJhgZRLRmoS85iiosgHdpu,
        block_hash: 2oQKmJip3DZKEV1Q62qiTLkLrxhVZ7JMayPMAomNhxUi,
        logs: [],
        receipt_ids: [
            94Fucc2ZKKSYyeHuxPsSjmdmd7XskKdaUribATbgLPR,
        ],
        gas_burnt: NearGas {
            inner: 2427927707802,
        },
        tokens_burnt: NearToken {
            inner: 242792770780200000000,
        },
        executor_id: AccountId(
            "dev-20240329221420-64220794936069",
        ),
        status: SuccessReceiptId(94Fucc2ZKKSYyeHuxPsSjmdmd7XskKdaUribATbgLPR),
    },
    receipts: [
        ExecutionOutcome {
            transaction_hash: 94Fucc2ZKKSYyeHuxPsSjmdmd7XskKdaUribATbgLPR,
            block_hash: 2oQKmJip3DZKEV1Q62qiTLkLrxhVZ7JMayPMAomNhxUi,
            logs: [],
            receipt_ids: [
                6ATeKXPkNCNaR1FSwtjejqYkEv5t55TqRYyyeQHAUcvw,
            ],
            gas_burnt: NearGas {
                inner: 2632167087288,
            },
            tokens_burnt: NearToken {
                inner: 263216708728800000000,
            },
            executor_id: AccountId(
                "dev-20240329221420-64220794936069",
            ),
            status: SuccessValue(''),
        },
        ExecutionOutcome {
            transaction_hash: 6ATeKXPkNCNaR1FSwtjejqYkEv5t55TqRYyyeQHAUcvw,
            block_hash: 4iWMA3gEcScPwMBiQTASzjnz4kLMALjFamtRzuxGpPju,
            logs: [],
            receipt_ids: [],
            gas_burnt: NearGas {
                inner: 223182562500,
            },
            tokens_burnt: NearToken {
                inner: 0,
            },
            executor_id: AccountId(
                "dev-20240329221420-64220794936069",
            ),
            status: SuccessValue(''),
        },
    ],
    status: SuccessValue(''),
}
total_gas_burnt_usd: 0.00352922927487012
outcome (success: true):
  outcome_gas_burnt_usd: 0.001621855708811736
  outcome_tokens_burnt_usd: 0.0
outcome (success: true):
  outcome_gas_burnt_usd: 0.001758287614308384
  outcome_tokens_burnt_usd: 0.0
outcome (success: true):
  outcome_gas_burnt_usd: 0.00014908595175
  outcome_tokens_burnt_usd: 0.0


claim_alias(contract, ''): ExecutionFinalResult {
    total_gas_burnt: NearGas {
        inner: 5288045928604,
    },
    transaction: ExecutionOutcome {
        transaction_hash: E6JcuQncEDJtMp1jnsnK7E3ZUf8aSZjha7yCNYheHZ1S,
        block_hash: 22mtcRUNeRc98z4NjSQBFLdpbMKDJrLzhnEUdi9vDp1z,
        logs: [],
        receipt_ids: [
            A2L33r8nuJcD4ZMTjE8Lr1mL5eSvgcVszPxZEfFgVajP,
        ],
        gas_burnt: NearGas {
            inner: 2427972426482,
        },
        tokens_burnt: NearToken {
            inner: 242797242648200000000,
        },
        executor_id: AccountId(
            "dev-20240329221420-64220794936069",
        ),
        status: SuccessReceiptId(A2L33r8nuJcD4ZMTjE8Lr1mL5eSvgcVszPxZEfFgVajP),
    },
    receipts: [
        ExecutionOutcome {
            transaction_hash: A2L33r8nuJcD4ZMTjE8Lr1mL5eSvgcVszPxZEfFgVajP,
            block_hash: 22mtcRUNeRc98z4NjSQBFLdpbMKDJrLzhnEUdi9vDp1z,
            logs: [
                "claim_alias / alias: \"\" / account_id: AccountId(\n    \"dev-20240329221420-64220794936069\",\n) / timestamp: 1711750463142684173",
            ],
            receipt_ids: [
                ELtnTTV5jnjvAxToAzmLbX6iz5B1SzmRCnXmYqWh78bj,
            ],
            gas_burnt: NearGas {
                inner: 2636890939622,
            },
            tokens_burnt: NearToken {
                inner: 263689093962200000000,
            },
            executor_id: AccountId(
                "dev-20240329221420-64220794936069",
            ),
            status: Failure(ActionError(ActionError { index: Some(0), kind: FunctionCallError(ExecutionError("Smart contract panicked: Invalid alias")) })),
        },
        ExecutionOutcome {
            transaction_hash: ELtnTTV5jnjvAxToAzmLbX6iz5B1SzmRCnXmYqWh78bj,
            block_hash: BZe1D4iVFVk8nCPbozgU55Jriz5pxvuXrVYMpbT994Y9,
            logs: [],
            receipt_ids: [],
            gas_burnt: NearGas {
                inner: 223182562500,
            },
            tokens_burnt: NearToken {
                inner: 0,
            },
            executor_id: AccountId(
                "dev-20240329221420-64220794936069",
            ),
            status: SuccessValue(''),
        },
    ],
    status: Failure(ActionError(ActionError { index: Some(0), kind: FunctionCallError(ExecutionError("Smart contract panicked: Invalid alias")) })),
}
total_gas_burnt_usd: 0.003532414680307472
outcome (success: true):
  outcome_gas_burnt_usd: 0.001621885580889976
  outcome_tokens_burnt_usd: 0.0
outcome (success: false):
  outcome_gas_burnt_usd: 0.001761443147667496
  outcome_tokens_burnt_usd: 0.0
outcome (success: true):
  outcome_gas_burnt_usd: 0.00014908595175
  outcome_tokens_burnt_usd: 0.0


dev_create_account(account1): Account {
    id: AccountId(
        "dev-20240329221423-54937630006436",
    ),
}


generate_cid_borsh(account1): ViewResultDetails {
    result: [
        59,
        0,
        0,
        0,
        98,
        97,
        102,
        107,
        114,
        101,
        105,
        104,
        100,
        119,
        100,
        99,
        101,
        102,
        103,
        104,
        52,
        100,
        113,
        107,
        106,
        118,
        54,
        55,
        117,
        122,
        99,
        109,
        119,
        55,
        111,
        106,
        101,
        101,
        54,
        120,
        101,
        100,
        122,
        100,
        101,
        116,
        111,
        106,
        117,
        122,
        106,
        101,
        118,
        116,
        101,
        110,
        120,
        113,
        117,
        118,
        121,
        107,
        117,
    ],
    logs: [],
}


claim_alias(account1, alias1): ExecutionFinalResult {
    total_gas_burnt: NearGas {
        inner: 5710108256905,
    },
    transaction: ExecutionOutcome {
        transaction_hash: 4sD2RhX2y1ut5EuyFR522DZXLnqABa8yuJnZpscheg3e,
        block_hash: CSK3xEM2PBNgxnbkVzExhWmjZFwZCCiTec5FVVk1CUn6,
        logs: [],
        receipt_ids: [
            6F6U1HGazLZGBgSCZZUy9wgNY9CWswtVQZgJKQB6hvbr,
        ],
        gas_burnt: NearGas {
            inner: 2427985842086,
        },
        tokens_burnt: NearToken {
            inner: 242798584208600000000,
        },
        executor_id: AccountId(
            "dev-20240329221423-54937630006436",
        ),
        status: SuccessReceiptId(6F6U1HGazLZGBgSCZZUy9wgNY9CWswtVQZgJKQB6hvbr),
    },
    receipts: [
        ExecutionOutcome {
            transaction_hash: 6F6U1HGazLZGBgSCZZUy9wgNY9CWswtVQZgJKQB6hvbr,
            block_hash: 7CcrXwXCBk3AvHd5QTbtLemReLuTW4h7Uq3cwxEqnthb,
            logs: [
                "claim_alias / alias: \"alias1\" / account_id: AccountId(\n    \"dev-20240329221423-54937630006436\",\n) / timestamp: 1711750465366096445",
            ],
            receipt_ids: [
                3sZTYwCKjum6tGZLj1yyWDHJH7Pz3R6YfGtYqa1t3yF7,
            ],
            gas_burnt: NearGas {
                inner: 3058939852319,
            },
            tokens_burnt: NearToken {
                inner: 305893985231900000000,
            },
            executor_id: AccountId(
                "dev-20240329221420-64220794936069",
            ),
            status: SuccessValue(''),
        },
        ExecutionOutcome {
            transaction_hash: 3sZTYwCKjum6tGZLj1yyWDHJH7Pz3R6YfGtYqa1t3yF7,
            block_hash: 8grMSyUHSSeWausbffHYnwuP66kENGjQtsn7riwFVgSh,
            logs: [],
            receipt_ids: [],
            gas_burnt: NearGas {
                inner: 223182562500,
            },
            tokens_burnt: NearToken {
                inner: 0,
            },
            executor_id: AccountId(
                "dev-20240329221423-54937630006436",
            ),
            status: SuccessValue(''),
        },
    ],
    status: SuccessValue(''),
}
total_gas_burnt_usd: 0.0038143523156125396
outcome (success: true):
  outcome_gas_burnt_usd: 0.0016218945425134478
  outcome_tokens_burnt_usd: 0.0
outcome (success: true):
  outcome_gas_burnt_usd: 0.0020433718213490916
  outcome_tokens_burnt_usd: 0.0
outcome (success: true):
  outcome_gas_burnt_usd: 0.00014908595175
  outcome_tokens_burnt_usd: 0.0


claim_alias(account1, alias1): ExecutionFinalResult {
    total_gas_burnt: NearGas {
        inner: 5534337412006,
    },
    transaction: ExecutionOutcome {
        transaction_hash: DxZEeURo1NBv7yGEPBUSu5rrm4YdaAX8mupP4DyefcCK,
        block_hash: GWuMgRGDeK4AmYoehuQSXQXd5Vo5Sb49ViVNTr4RXDr7,
        logs: [],
        receipt_ids: [
            8MMX6ywBSxTtzuoy1eJXyV3n3ACqZffk9G9LVoAY7dwM,
        ],
        gas_burnt: NearGas {
            inner: 2427985842086,
        },
        tokens_burnt: NearToken {
            inner: 242798584208600000000,
        },
        executor_id: AccountId(
            "dev-20240329221423-54937630006436",
        ),
        status: SuccessReceiptId(8MMX6ywBSxTtzuoy1eJXyV3n3ACqZffk9G9LVoAY7dwM),
    },
    receipts: [
        ExecutionOutcome {
            transaction_hash: 8MMX6ywBSxTtzuoy1eJXyV3n3ACqZffk9G9LVoAY7dwM,
            block_hash: J7CLGHM5MXFNtgy519HievgSbdTfY8Um6ZhqMJVmSkn6,
            logs: [
                "claim_alias / alias: \"alias1\" / account_id: AccountId(\n    \"dev-20240329221423-54937630006436\",\n) / timestamp: 1711750466375880533",
                "Alias already claimed",
            ],
            receipt_ids: [
                3NxxLhQUcZqnHLohWhb2UcMdQKHcjd2yzkiciuwibME9,
            ],
            gas_burnt: NearGas {
                inner: 2883169007420,
            },
            tokens_burnt: NearToken {
                inner: 288316900742000000000,
            },
            executor_id: AccountId(
                "dev-20240329221420-64220794936069",
            ),
            status: SuccessValue(''),
        },
        ExecutionOutcome {
            transaction_hash: 3NxxLhQUcZqnHLohWhb2UcMdQKHcjd2yzkiciuwibME9,
            block_hash: GjE8dXJCGAg9tSHJi3fugAQVPYkiQfcNrxi2CAaZjdoz,
            logs: [],
            receipt_ids: [],
            gas_burnt: NearGas {
                inner: 223182562500,
            },
            tokens_burnt: NearToken {
                inner: 0,
            },
            executor_id: AccountId(
                "dev-20240329221423-54937630006436",
            ),
            status: SuccessValue(''),
        },
    ],
    status: SuccessValue(''),
}
total_gas_burnt_usd: 0.0036969373912200077
outcome (success: true):
  outcome_gas_burnt_usd: 0.0016218945425134478
  outcome_tokens_burnt_usd: 0.0
outcome (success: true):
  outcome_gas_burnt_usd: 0.0019259568969565602
  outcome_tokens_burnt_usd: 0.0
outcome (success: true):
  outcome_gas_burnt_usd: 0.00014908595175
  outcome_tokens_burnt_usd: 0.0


get_account_info(account1): Some(
    (
        "alias1",
        (
            1711750465366096445,
            0,
        ),
    ),
)


get_alias_map(account1, alias1): Some(
    {
        AccountId(
            "dev-20240329221423-54937630006436",
        ): (
            1711750465366096445,
            0,
        ),
    },
)


dev_create_account(account2): Account {
    id: AccountId(
        "dev-20240329221426-95191342534620",
    ),
}


claim_alias(alias2): ExecutionFinalResult {
    total_gas_burnt: NearGas {
        inner: 5797458036535,
    },
    transaction: ExecutionOutcome {
        transaction_hash: AR9qAbTkBrnZjvKs3X3189Qa6JmBDReibu19PDorCv14,
        block_hash: 5ksf5em7iz1xcARbppC7swK3e2FmjqHtTmUJuWQ5Jku4,
        logs: [],
        receipt_ids: [
            551rSdqoMCCoe2smg8Tdq5MMifEzz8Tgp9wDERAhoWWQ,
        ],
        gas_burnt: NearGas {
            inner: 2427985842086,
        },
        tokens_burnt: NearToken {
            inner: 242798584208600000000,
        },
        executor_id: AccountId(
            "dev-20240329221426-95191342534620",
        ),
        status: SuccessReceiptId(551rSdqoMCCoe2smg8Tdq5MMifEzz8Tgp9wDERAhoWWQ),
    },
    receipts: [
        ExecutionOutcome {
            transaction_hash: 551rSdqoMCCoe2smg8Tdq5MMifEzz8Tgp9wDERAhoWWQ,
            block_hash: 34v8FbPYhi3A7BLFnJd44CXxrnnEUb1VL4kPdW3BAkAm,
            logs: [
                "claim_alias / alias: \"alias2\" / account_id: AccountId(\n    \"dev-20240329221426-95191342534620\",\n) / timestamp: 1711750468400287133",
            ],
            receipt_ids: [
                42bzv2P2yaL8fKJBbDwBF8oep8dvJYAAUVuLVBzBRnuB,
            ],
            gas_burnt: NearGas {
                inner: 3146289631949,
            },
            tokens_burnt: NearToken {
                inner: 314628963194900000000,
            },
            executor_id: AccountId(
                "dev-20240329221420-64220794936069",
            ),
            status: SuccessValue(''),
        },
        ExecutionOutcome {
            transaction_hash: 42bzv2P2yaL8fKJBbDwBF8oep8dvJYAAUVuLVBzBRnuB,
            block_hash: G1oW94HxUtEsXsc4iN5sxqySupJYvoGE8Uxt9UFaX7qw,
            logs: [],
            receipt_ids: [],
            gas_burnt: NearGas {
                inner: 223182562500,
            },
            tokens_burnt: NearToken {
                inner: 0,
            },
            executor_id: AccountId(
                "dev-20240329221426-95191342534620",
            ),
            status: SuccessValue(''),
        },
    ],
    status: SuccessValue(''),
}
total_gas_burnt_usd: 0.00387270196840538
outcome (success: true):
  outcome_gas_burnt_usd: 0.0016218945425134478
  outcome_tokens_burnt_usd: 0.0
outcome (success: true):
  outcome_gas_burnt_usd: 0.002101721474141932
  outcome_tokens_burnt_usd: 0.0
outcome (success: true):
  outcome_gas_burnt_usd: 0.00014908595175
  outcome_tokens_burnt_usd: 0.0


get_account_info(account2): Some(
    (
        "alias2",
        (
            1711750468400287133,
            0,
        ),
    ),
)


get_alias_map_borsh(alias2): Some(
    {
        AccountId(
            "dev-20240329221426-95191342534620",
        ): (
            1711750468400287133,
            0,
        ),
    },
)


claim_alias(account2, alias1): ExecutionFinalResult {
    total_gas_burnt: NearGas {
        inner: 6101719030714,
    },
    transaction: ExecutionOutcome {
        transaction_hash: G6UgsuzoWjC9wfw2K4imJoa7CyWDKZf69PnETsyRTLkN,
        block_hash: FLj3JN6sCdK9wSWWDtmMmkCjssPxvtEerzCaKrC6nzBp,
        logs: [],
        receipt_ids: [
            9xDs5yaQ3PwncCfKpuUFEF85x5EK7yYVbHQJ9PtSezkK,
        ],
        gas_burnt: NearGas {
            inner: 2427985842086,
        },
        tokens_burnt: NearToken {
            inner: 242798584208600000000,
        },
        executor_id: AccountId(
            "dev-20240329221426-95191342534620",
        ),
        status: SuccessReceiptId(9xDs5yaQ3PwncCfKpuUFEF85x5EK7yYVbHQJ9PtSezkK),
    },
    receipts: [
        ExecutionOutcome {
            transaction_hash: 9xDs5yaQ3PwncCfKpuUFEF85x5EK7yYVbHQJ9PtSezkK,
            block_hash: 8PrmBZgnnVv3RwhJjD7naaC8pF5cjZj6aL927BY5VD2J,
            logs: [
                "claim_alias / alias: \"alias1\" / account_id: AccountId(\n    \"dev-20240329221426-95191342534620\",\n) / timestamp: 1711750469411369483",
            ],
            receipt_ids: [
                3RihacUK5hmKMVE8hszxBSgpMJZHBMa6y9zj9o7ss4ic,
            ],
            gas_burnt: NearGas {
                inner: 3450550626128,
            },
            tokens_burnt: NearToken {
                inner: 345055062612800000000,
            },
            executor_id: AccountId(
                "dev-20240329221420-64220794936069",
            ),
            status: SuccessValue(''),
        },
        ExecutionOutcome {
            transaction_hash: 3RihacUK5hmKMVE8hszxBSgpMJZHBMa6y9zj9o7ss4ic,
            block_hash: EQvu1yEzWfCoMEXE69nJXzFDp2K1JD2NUPLV1AoivLaE,
            logs: [],
            receipt_ids: [],
            gas_burnt: NearGas {
                inner: 223182562500,
            },
            tokens_burnt: NearToken {
                inner: 0,
            },
            executor_id: AccountId(
                "dev-20240329221426-95191342534620",
            ),
            status: SuccessValue(''),
        },
    ],
    status: SuccessValue(''),
}
total_gas_burnt_usd: 0.004075948312516952
outcome (success: true):
  outcome_gas_burnt_usd: 0.0016218945425134478
  outcome_tokens_burnt_usd: 0.0
outcome (success: true):
  outcome_gas_burnt_usd: 0.0023049678182535042
  outcome_tokens_burnt_usd: 0.0
outcome (success: true):
  outcome_gas_burnt_usd: 0.00014908595175
  outcome_tokens_burnt_usd: 0.0


get_account_info(account2): Some(
    (
        "alias1",
        (
            1711750469411369483,
            1,
        ),
    ),
)


get_alias_map(account2, alias1): Some(
    {
        AccountId(
            "dev-20240329221426-95191342534620",
        ): (
            1711750469411369483,
            1,
        ),
        AccountId(
            "dev-20240329221423-54937630006436",
        ): (
            1711750465366096445,
            0,
        ),
    },
)


get_alias_map(account2, alias2): Some(
    {},
)


claim_alias(account1, alias2): ExecutionFinalResult {
    total_gas_burnt: NearGas {
        inner: 6096370293958,
    },
    transaction: ExecutionOutcome {
        transaction_hash: WFySSmhX8sm7okk9DWadFd2LLzGHwskTeY4WAnGonD7,
        block_hash: 34Tt8HKmYRKiVRBvpjYVQLBrr1aZULEEzSUthGsvEpFU,
        logs: [],
        receipt_ids: [
            9S4kZodE5Shd4J3zZiuF9XNrL3KrZLy9dzfD24ACRYow,
        ],
        gas_burnt: NearGas {
            inner: 2427985842086,
        },
        tokens_burnt: NearToken {
            inner: 242798584208600000000,
        },
        executor_id: AccountId(
            "dev-20240329221423-54937630006436",
        ),
        status: SuccessReceiptId(9S4kZodE5Shd4J3zZiuF9XNrL3KrZLy9dzfD24ACRYow),
    },
    receipts: [
        ExecutionOutcome {
            transaction_hash: 9S4kZodE5Shd4J3zZiuF9XNrL3KrZLy9dzfD24ACRYow,
            block_hash: GFUQPWh7i9umRAgPVZnTrNkepsZ1KDt9ksNP1m2whMAd,
            logs: [
                "claim_alias / alias: \"alias2\" / account_id: AccountId(\n    \"dev-20240329221423-54937630006436\",\n) / timestamp: 1711750470421263034",
            ],
            receipt_ids: [
                2VocmRg5cbd6domZjseoqdA1JThK1R1jdks6B1k3gVwW,
            ],
            gas_burnt: NearGas {
                inner: 3445201889372,
            },
            tokens_burnt: NearToken {
                inner: 344520188937200000000,
            },
            executor_id: AccountId(
                "dev-20240329221420-64220794936069",
            ),
            status: SuccessValue(''),
        },
        ExecutionOutcome {
            transaction_hash: 2VocmRg5cbd6domZjseoqdA1JThK1R1jdks6B1k3gVwW,
            block_hash: CkAELTFFrUCvM6vTA9DaSqRz2gunmggSpjgZgCQ7wLjG,
            logs: [],
            receipt_ids: [],
            gas_burnt: NearGas {
                inner: 223182562500,
            },
            tokens_burnt: NearToken {
                inner: 0,
            },
            executor_id: AccountId(
                "dev-20240329221423-54937630006436",
            ),
            status: SuccessValue(''),
        },
    ],
    status: SuccessValue(''),
}
total_gas_burnt_usd: 0.004072375356363944
outcome (success: true):
  outcome_gas_burnt_usd: 0.0016218945425134478
  outcome_tokens_burnt_usd: 0.0
outcome (success: true):
  outcome_gas_burnt_usd: 0.002301394862100496
  outcome_tokens_burnt_usd: 0.0
outcome (success: true):
  outcome_gas_burnt_usd: 0.00014908595175
  outcome_tokens_burnt_usd: 0.0


get_account_info(account1): Some(
    (
        "alias2",
        (
            1711750470421263034,
            0,
        ),
    ),
)


get_alias_map(account1, alias2): Some(
    {
        AccountId(
            "dev-20240329221423-54937630006436",
        ): (
            1711750470421263034,
            0,
        ),
    },
)


get_alias_map(account1, alias1): Some(
    {
        AccountId(
            "dev-20240329221426-95191342534620",
        ): (
            1711750469411369483,
            1,
        ),
    },
)


claim_alias(account1, alias1): ExecutionFinalResult {
    total_gas_burnt: NearGas {
        inner: 6101719030714,
    },
    transaction: ExecutionOutcome {
        transaction_hash: 9UWdSQKUNJFCEC5T2GH8TgjY3HANGShWm3NtGkGs6DC4,
        block_hash: GXLp5uYdXxzySrajfzSDeZYWk1ZRpU7coqNTyxqndVjx,
        logs: [],
        receipt_ids: [
            8K5daXt8RVs67xNbGWsgo1YB9LRPuHKqeYvUaSgP6SCz,
        ],
        gas_burnt: NearGas {
            inner: 2427985842086,
        },
        tokens_burnt: NearToken {
            inner: 242798584208600000000,
        },
        executor_id: AccountId(
            "dev-20240329221423-54937630006436",
        ),
        status: SuccessReceiptId(8K5daXt8RVs67xNbGWsgo1YB9LRPuHKqeYvUaSgP6SCz),
    },
    receipts: [
        ExecutionOutcome {
            transaction_hash: 8K5daXt8RVs67xNbGWsgo1YB9LRPuHKqeYvUaSgP6SCz,
            block_hash: 7KjbqU2CbMc5CaNDtYzjDuhum6Pc3QNxHCc1KrgxJt3G,
            logs: [
                "claim_alias / alias: \"alias1\" / account_id: AccountId(\n    \"dev-20240329221423-54937630006436\",\n) / timestamp: 1711750471431123483",
            ],
            receipt_ids: [
                62uNApz6x1d8SbgovgYBo5ePZKNmjpQfGE4FsmaKKyUU,
            ],
            gas_burnt: NearGas {
                inner: 3450550626128,
            },
            tokens_burnt: NearToken {
                inner: 345055062612800000000,
            },
            executor_id: AccountId(
                "dev-20240329221420-64220794936069",
            ),
            status: SuccessValue(''),
        },
        ExecutionOutcome {
            transaction_hash: 62uNApz6x1d8SbgovgYBo5ePZKNmjpQfGE4FsmaKKyUU,
            block_hash: CA8AkUQKdW2dKnLeYxqzxe6hzepLsKmCfWpSESdTw52k,
            logs: [],
            receipt_ids: [],
            gas_burnt: NearGas {
                inner: 223182562500,
            },
            tokens_burnt: NearToken {
                inner: 0,
            },
            executor_id: AccountId(
                "dev-20240329221423-54937630006436",
            ),
            status: SuccessValue(''),
        },
    ],
    status: SuccessValue(''),
}
total_gas_burnt_usd: 0.004075948312516952
outcome (success: true):
  outcome_gas_burnt_usd: 0.0016218945425134478
  outcome_tokens_burnt_usd: 0.0
outcome (success: true):
  outcome_gas_burnt_usd: 0.0023049678182535042
  outcome_tokens_burnt_usd: 0.0
outcome (success: true):
  outcome_gas_burnt_usd: 0.00014908595175
  outcome_tokens_burnt_usd: 0.0


get_account_info(account1): Some(
    (
        "alias1",
        (
            1711750471431123483,
            1,
        ),
    ),
)


get_alias_map(account1, alias1): Some(
    {
        AccountId(
            "dev-20240329221426-95191342534620",
        ): (
            1711750469411369483,
            0,
        ),
        AccountId(
            "dev-20240329221423-54937630006436",
        ): (
            1711750471431123483,
            1,
        ),
    },
)


get_alias_map(account1, alias2): Some(
    {},
)
In [ ]:
{ . "$ScriptDir/../apps/spiral/temp/extension/build.ps1" } | Invoke-Block
Lockfile is up to date, resolution step is skipped
Progress: resolved 1, reused 0, downloaded 0, added 0
Packages: +309
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Progress: resolved 309, reused 299, downloaded 10, added 309, done

dependencies:
+ buffer 6.0.3

devDependencies:
+ @playwright/test 1.42.1
+ @types/chrome 0.0.263
+ npm-check-updates 16.14.11

Done in 1.2s
[INFO]: 🎯  Checking for the Wasm target...
[INFO]: 🌀  Compiling to Wasm...
   Compiling proc-macro2 v1.0.79
   Compiling unicode-ident v1.0.12
   Compiling once_cell v1.19.0
   Compiling autocfg v1.2.0
   Compiling serde v1.0.197
   Compiling wasm-bindgen-shared v0.2.92
   Compiling cfg-if v1.0.0
   Compiling log v0.4.21
   Compiling bumpalo v3.15.4
   Compiling wasm-bindgen v0.2.92
   Compiling version_check v0.9.4
   Compiling thiserror v1.0.58
   Compiling quote v1.0.35
   Compiling syn v2.0.55
   Compiling memchr v2.7.2
   Compiling futures-core v0.3.30
   Compiling itoa v1.0.11
   Compiling futures-sink v0.3.30
   Compiling pin-project-lite v0.2.13
   Compiling futures-channel v0.3.30
   Compiling lock_api v0.4.11
   Compiling slab v0.4.9
   Compiling ryu v1.0.17
   Compiling serde_json v1.0.115
   Compiling parking_lot_core v0.9.9
   Compiling hashbrown v0.14.3
   Compiling smallvec v1.13.2
   Compiling pin-utils v0.1.0
   Compiling libc v0.2.153
   Compiling unicode-xid v0.2.4
   Compiling futures-io v0.3.30
   Compiling futures-task v0.3.30
   Compiling const_format_proc_macros v0.2.32
   Compiling proc-macro-error-attr v1.0.4
   Compiling percent-encoding v2.3.1
   Compiling equivalent v1.0.1
   Compiling tinyvec_macros v0.1.1
   Compiling tinyvec v1.6.0
   Compiling indexmap v2.2.6
   Compiling proc-macro-error v1.0.4
   Compiling unicode-segmentation v1.11.0
   Compiling fnv v1.0.7
   Compiling bytes v1.6.0
   Compiling convert_case v0.6.0
   Compiling wasm-bindgen-backend v0.2.92
   Compiling const_format v0.2.32
   Compiling unicode-normalization v0.1.23
   Compiling wasm-bindgen-macro-support v0.2.92
   Compiling form_urlencoded v1.2.1
   Compiling proc-macro-utils v0.8.0
   Compiling proc-macro2-diagnostics v0.10.1
   Compiling unicode-bidi v0.3.15
   Compiling xxhash-rust v0.8.10
   Compiling server_fn_macro v0.6.9
   Compiling idna v0.5.0
   Compiling manyhow-macros v0.8.1
   Compiling http v0.2.12
   Compiling slotmap v1.0.7
   Compiling half v2.4.0
   Compiling yansi v1.0.1
   Compiling scopeguard v1.2.0
   Compiling camino v1.1.6
   Compiling serde_derive v1.0.197
   Compiling wasm-bindgen-macro v0.2.92
   Compiling thiserror-impl v1.0.58
   Compiling futures-macro v0.3.30
   Compiling js-sys v0.3.69
   Compiling futures-util v0.3.30
   Compiling pin-project-internal v1.1.5
   Compiling futures-executor v0.3.30
   Compiling web-sys v0.3.69
   Compiling wasm-bindgen-futures v0.4.42
   Compiling pin-project v1.1.5
   Compiling derive-where v1.2.7
   Compiling tracing-attributes v0.1.27
   Compiling quote-use-macros v0.7.2
   Compiling futures v0.3.30
   Compiling anyhow v1.0.81
   Compiling paste v1.0.14
   Compiling ciborium-io v0.2.2
   Compiling ciborium-ll v0.2.2
   Compiling quote-use v0.7.2
   Compiling toml_datetime v0.6.5
   Compiling serde_spanned v0.6.5
   Compiling syn_derive v0.1.8
   Compiling manyhow v0.8.1
   Compiling url v2.5.0
   Compiling tracing-core v0.1.32
   Compiling same-file v1.0.6
   Compiling prettyplease v0.2.17
   Compiling collection_literals v1.0.1
   Compiling interpolator v0.5.0
   Compiling winnow v0.6.5
   Compiling attribute-derive-macro v0.8.1
   Compiling walkdir v2.5.0
   Compiling rstml v0.11.2
   Compiling toml_edit v0.22.9
   Compiling tracing v0.1.40
   Compiling parking_lot v0.12.1
   Compiling dashmap v5.5.3
   Compiling ciborium v0.2.2
   Compiling serde_qs v0.12.0
   Compiling serde-wasm-bindgen v0.6.5
   Compiling server_fn_macro_default v0.6.9
   Compiling http v1.1.0
   Compiling getrandom v0.2.12
   Compiling aho-corasick v1.1.3
   Compiling send_wrapper v0.6.0
   Compiling gloo-utils v0.2.0
   Compiling rustc-hash v1.1.0
   Compiling gloo-net v0.5.0
   Compiling lazy_static v1.4.0
   Compiling base64 v0.21.7
   Compiling minimal-lexical v0.2.1
   Compiling utf8-width v0.1.7
   Compiling self_cell v1.0.3
   Compiling either v1.10.0
   Compiling regex-syntax v0.8.3
   Compiling itertools v0.12.1
   Compiling nom v7.1.3
   Compiling leptos_reactive v0.6.9
   Compiling regex-automata v0.4.6
   Compiling wasm-streams v0.4.0
   Compiling html-escape v0.2.13
   Compiling server_fn v0.6.9
   Compiling uuid v1.8.0
   Compiling leptos_hot_reload v0.6.9
   Compiling toml v0.8.12
   Compiling attribute-derive v0.8.1
   Compiling typed-builder-macro v0.18.1
   Compiling pathdiff v0.2.1
   Compiling leptos_macro v0.6.9
   Compiling config v0.14.0
   Compiling regex v1.10.4
   Compiling typed-builder v0.18.1
   Compiling async-recursion v1.1.0
   Compiling pad-adapter v0.1.1
   Compiling inventory v0.3.15
   Compiling drain_filter_polyfill v0.1.3
   Compiling leptos_config v0.6.9
   Compiling num-traits v0.2.18
   Compiling cfg_aliases v0.1.1
   Compiling borsh v1.4.0
   Compiling gloo-utils v0.1.7
   Compiling serde_test v1.0.176
   Compiling gloo-net v0.2.6
   Compiling leptos_dom v0.6.9
   Compiling linear-map v1.2.0
   Compiling serde_urlencoded v0.7.1
   Compiling tokio v1.37.0
   Compiling tower-service v0.3.2
   Compiling base64 v0.13.1
   Compiling leptos_server v0.6.9
   Compiling reqwest-wasm v0.11.16
   Compiling console_log v1.0.0
   Compiling rexie v0.5.0
   Compiling console_error_panic_hook v0.1.7
   Compiling leptos v0.6.9
   Compiling leptos_router v0.6.9
   Compiling leptos_meta v0.6.9
   Compiling spiral_temp_extension v0.0.1 (/home/runner/work/polyglot/polyglot/apps/spiral/temp/extension)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 45.04s
[INFO]: ⬇️  Installing wasm-bindgen...
[INFO]: origin crate has no LICENSE
[INFO]: ✨   Done in 46.33s
[INFO]: 📦   Your wasm pkg is ready to publish at /home/runner/work/polyglot/polyglot/apps/spiral/temp/extension/pkg.
▲ [WARNING] "import.meta" is not available with the "iife" output format and will be empty [empty-import-meta]

    pkg/spiral_temp_extension.js:1496:57:
      1496 │ ...put = new URL('spiral_temp_extension_bg.wasm', import.meta.url);
           ╵                                                   ~~~~~~~~~~~

  You need to set the output format to "esm" for "import.meta" to work correctly.

1 warning

  dist/spiral_temp_extension_bg-QDWD4VKH.wasm   4.5mb ⚠️
  dist/devtools.js                             29.0kb
  dist/content_script.js                       27.2kb
  dist/service_worker.js                        2.2kb

⚡ Done in 35ms

> polyglot@ test:e2e /home/runner/work/polyglot/polyglot/apps/spiral/temp/extension
> playwright test

[WebServer] npm WARN[WebServer]  exec The following package was not found and will be installed: serve@14.2.1
[WebServer] (node:152310) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
(Use `node --trace-deprecation ...` to show where the warning was created)

Running 3 tests using 2 workers
···
  3 passed (10.1s)
In [ ]:
{ . "$ScriptDir/../apps/spiral/temp/test/build.ps1" } | Invoke-Block
── pwsh ────────────────────────────────────────────────────────────────────────
. ../../../../scripts/nbs_header.ps1
. ../../../../scripts/core.ps1

── pwsh ────────────────────────────────────────────────────────────────────────
{ . ../../../../apps/spiral/dist/Supervisor$(GetExecutableSuffix) 
--execute-command "pwsh -c `"../../../../scripts/invoke-dib.ps1 test.dib`"" } | 
Invoke-Block -Retries 5

╭─[ 11.60s - stdout ]──────────────────────────────────────────────────────────╮
│ 00:00:00 #1 [Verbose] testPortOpen / ex: System.AggregateException: One or   │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #2 [Debug] executeAsync / options: { Command =                      │
│    "dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The │
│ Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll"    │
│ --port 13805 --default-int i32 --default-float f64"                          │
│   WorkingDirectory = None                                                    │
│   CancellationToken = Some System.Threading.CancellationToken                │
│   OnLine = Some <fun:main@425-61> }                                          │
│ 00:00:00 #3 [Verbose] > pwd:                                                 │
│ /home/runner/work/polyglot/polyglot/apps/spiral/temp/test                    │
│ 00:00:00 #4 [Verbose] > dll_path:                                            │
│ /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral      │
│ Language 2/artifacts/bin/The Spiral Language 2/release                       │
│ 00:00:00 #5 [Verbose] testPortOpen / ex: System.AggregateException: One or   │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #6 [Verbose] waitForPortAccess / port: 13805 / retry: 0             │
│ 00:00:00 #7 [Verbose] testPortOpen / ex: System.AggregateException: One or   │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #8 [Verbose] testPortOpen / ex: System.AggregateException: One or   │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #9 [Verbose] testPortOpen / ex: System.AggregateException: One or   │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #10 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #11 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #12 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #13 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #14 [Verbose] > Starting the Spiral Server. It is bound to:         │
│ http://localhost:13805                                                       │
│ 00:00:00 #15 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #16 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #17 [Debug] sendJson / port: 13805 / json: {"Ping":true} /          │
│ result.Length:                                                               │
│ 00:00:00 #18 [Verbose] awaitCompiler / Ping / result: Some(null) / port:     │
│ 13805 / retry: 0                                                             │
│ 00:00:00 #19 [Verbose] > Server bound to: http://localhost:13805             │
│ 00:00:00 #20 [Debug] executeAsync / options: { Command = "pwsh -c            │
│ "../../../../scripts/invoke-dib.ps1 test.dib""                               │
│   WorkingDirectory = None                                                    │
│   CancellationToken = Some System.Threading.CancellationToken                │
│   OnLine = None }                                                            │
│ 00:00:02 #21 [Verbose] >                                                     │
│ 00:00:02 #22 [Verbose] > ── markdown                                │
│ ────────────────────────────────────────────────────────────────────       │
│ 00:00:02 #23 [Verbose] > 38;5;2m│
│ 38;5;103m╭────────────────────────────────────────────────────────────────── │
│ ────────────╮                                                              │
│ 00:00:02 #24 [Verbose] > │ # test (Polyglot)                      │
│ │                                                                 │
│ 00:00:02 #25 [Verbose] > 38;5;2m│
│ 38;5;103m╰────────────────────────────────────────────────────────────────── │
│ ────────────╯                                                              │
│ 00:00:02 #26 [Verbose] >                                                     │
│ 00:00:02 #27 [Verbose] > ── spiral                                  │
│ ──────────────────────────────────────────────────────────────────────     │
│ 00:00:02 #28 [Verbose] > // // test                                          │
│ 00:00:02 #29 [Verbose] >                                                     │
│ 00:00:02 #30 [Verbose] > open testing                                        │
│ 00:00:04 #31 [Verbose] > Building                                            │
│ /tmp/dotnet-repl/20240329-2215-3825-2559-2b6bcc02f417/main.spi               │
│ 00:00:06 #32 [Verbose] >                                                     │
│ 00:00:06 #33 [Verbose] > ╭─[ 3.61s - stdout                           │
│ ]───────────────────────────────────────────────────────────╮              │
│ 00:00:06 #34 [Verbose] > │ ()                                       │
│ │                                                                   │
│ 00:00:06 #35 [Verbose] > │                                          │
│                                                                              │
│ │                                                                   │
│ 00:00:06 #36 [Verbose] > │                                          │
│                                                                              │
│ │                                                                   │
│ 00:00:06 #37 [Verbose] > 38;5;2m│
│ 38;5;2m╰──────────────────────────────────────────────────────────────────── │
│ ──────────╯                                                                │
│ 00:00:06 #38 [Verbose] >                                                     │
│ 00:00:06 #39 [Verbose] > ── spiral                                  │
│ ──────────────────────────────────────────────────────────────────────     │
│ 00:00:06 #40 [Verbose] > nominal i = ()                                      │
│ 00:00:06 #41 [Verbose] > nominal e = ()                                      │
│ 00:00:06 #42 [Verbose] > nominal s = ()                                      │
│ 00:00:06 #43 [Verbose] > nominal n = ()                                      │
│ 00:00:06 #44 [Verbose] > nominal t = ()                                      │
│ 00:00:06 #45 [Verbose] > nominal f = ()                                      │
│ 00:00:06 #46 [Verbose] > nominal j = ()                                      │
│ 00:00:06 #47 [Verbose] > nominal p = ()                                      │
│ 00:00:06 #48 [Verbose] >                                                     │
│ 00:00:06 #49 [Verbose] > union sensing =                                     │
│ 00:00:06 #50 [Verbose] >     | Si : s * i                                    │
│ 00:00:06 #51 [Verbose] >     | Se : s * e                                    │
│ 00:00:06 #52 [Verbose] >                                                     │
│ 00:00:06 #53 [Verbose] > union intuition =                                   │
│ 00:00:06 #54 [Verbose] >     | Ni : n * i                                    │
│ 00:00:06 #55 [Verbose] >     | Ne : n * e                                    │
│ 00:00:06 #56 [Verbose] >                                                     │
│ 00:00:06 #57 [Verbose] > union thinking =                                    │
│ 00:00:06 #58 [Verbose] >     | Ti : t * i                                    │
│ 00:00:06 #59 [Verbose] >     | Te : t * e                                    │
│ 00:00:06 #60 [Verbose] >                                                     │
│ 00:00:06 #61 [Verbose] > union feeling =                                     │
│ 00:00:06 #62 [Verbose] >     | Fi : f * i                                    │
│ 00:00:06 #63 [Verbose] >     | Fe : f * e                                    │
│ 00:00:06 #64 [Verbose] >                                                     │
│ 00:00:06 #65 [Verbose] > union function_stack =                              │
│ 00:00:06 #66 [Verbose] >     | FS : sensing * intuition * thinking * feeling │
│ 00:00:06 #67 [Verbose] >                                                     │
│ 00:00:06 #68 [Verbose] > union personality_type =                            │
│ 00:00:06 #69 [Verbose] >     | ISTJ : i * s * t * j * function_stack         │
│ 00:00:06 #70 [Verbose] >     | ISFJ : i * s * f * j * function_stack         │
│ 00:00:06 #71 [Verbose] >     | INFJ : i * n * f * j * function_stack         │
│ 00:00:06 #72 [Verbose] >     | INTJ : i * n * t * j * function_stack         │
│ 00:00:06 #73 [Verbose] >     | ISTP : i * s * t * p * function_stack         │
│ 00:00:06 #74 [Verbose] >     | ISFP : i * s * f * p * function_stack         │
│ 00:00:06 #75 [Verbose] >     | INFP : i * n * f * p * function_stack         │
│ 00:00:06 #76 [Verbose] >     | INTP : i * n * t * p * function_stack         │
│ 00:00:06 #77 [Verbose] >     | ESTP : e * s * t * p * function_stack         │
│ 00:00:06 #78 [Verbose] >     | ESFP : e * s * f * p * function_stack         │
│ 00:00:06 #79 [Verbose] >     | ENFP : e * n * f * p * function_stack         │
│ 00:00:06 #80 [Verbose] >     | ENTP : e * n * t * p * function_stack         │
│ 00:00:06 #81 [Verbose] >     | ESTJ : e * s * t * j * function_stack         │
│ 00:00:06 #82 [Verbose] >     | ESFJ : e * s * f * j * function_stack         │
│ 00:00:06 #83 [Verbose] >     | ENFJ : e * n * f * j * function_stack         │
│ 00:00:06 #84 [Verbose] >     | ENTJ : e * n * t * j * function_stack         │
│ 00:00:06 #85 [Verbose] >                                                     │
│ 00:00:06 #86 [Verbose] >                                                     │
│ 00:00:06 #87 [Verbose] > inl main () =                                       │
│ 00:00:06 #88 [Verbose] >     inl istj_stack = FS ((Si (s, i)), Ne (n, e),    │
│ (Te (t, e)), (Fi (f, i)))                                                    │
│ 00:00:06 #89 [Verbose] >     inl istj_personality = ISTJ (i, s, t, j,        │
│ istj_stack)                                                                  │
│ 00:00:06 #90 [Verbose] >     // inl isfj_stack = FS ((Si (s, i)), Ne (n, e), │
│ (Fe (f, e)), (Ti (t, i)))                                                    │
│ 00:00:06 #91 [Verbose] >     // inl isfj_personality = ISFJ (i, s, f, j,     │
│ isfj_stack)                                                                  │
│ 00:00:06 #92 [Verbose] >                                                     │
│ 00:00:06 #93 [Verbose] >     ;[[                                             │
│ 00:00:06 #94 [Verbose] >         istj_personality                            │
│ 00:00:06 #95 [Verbose] >     ]]                                              │
│ 00:00:06 #96 [Verbose] >     |> fun x => $'$"%A{!x}"' : string               │
│ 00:00:06 #97 [Verbose] >     |> console.write_line                           │
│ 00:00:06 #98 [Verbose] >                                                     │
│ 00:00:06 #99 [Verbose] > inl main () =                                       │
│ 00:00:06 #100 [Verbose] >     $"!main ()" : ()                               │
│ 00:00:06 #101 [Verbose] > Building                                           │
│ /tmp/dotnet-repl/20240329-2215-4074-7416-782dbb141b31/main.spi               │
│ 00:00:07 #102 [Verbose] >                                                    │
│ 00:00:07 #103 [Verbose] > ╭─[ 1.29s - stdout                          │
│ ]───────────────────────────────────────────────────────────╮              │
│ 00:00:07 #104 [Verbose] > │ type [<Struct>] US0 =                   │
│ │                                                                   │
│ 00:00:07 #105 [Verbose] > │     | US0_0                             │
│ │                                                                   │
│ 00:00:07 #106 [Verbose] > │     | US0_1                             │
│ │                                                                   │
│ 00:00:07 #107 [Verbose] > │ and [<Struct>] US1 =                    │
│ │                                                                   │
│ 00:00:07 #108 [Verbose] > │     | US1_0                             │
│ │                                                                   │
│ 00:00:07 #109 [Verbose] > │     | US1_1                             │
│ │                                                                   │
│ 00:00:07 #110 [Verbose] > │ and [<Struct>] US2 =                    │
│ │                                                                   │
│ 00:00:07 #111 [Verbose] > │     | US2_0                             │
│ │                                                                   │
│ 00:00:07 #112 [Verbose] > │     | US2_1                             │
│ │                                                                   │
│ 00:00:07 #113 [Verbose] > │ and [<Struct>] US3 =                    │
│ │                                                                   │
│ 00:00:07 #114 [Verbose] > │     | US3_0                             │
│ │                                                                   │
│ 00:00:07 #115 [Verbose] > │     | US3_1                             │
│ │                                                                   │
│ 00:00:07 #116 [Verbose] > │ and [<Struct>] US4 =                    │
│ │                                                                   │
│ 00:00:07 #117 [Verbose] > │     | US4_0 of f0_0 : US0 * f0_1 : US1  │
│ * f0_2 : US2 * f0_3 : US3             │                             │
│ 00:00:07 #118 [Verbose] > │ and [<Struct>] US5 =                    │
│ │                                                                   │
│ 00:00:07 #119 [Verbose] > │     | US5_0 of f0_0 : US4               │
│ │                                                                   │
│ 00:00:07 #120 [Verbose] > │     | US5_1 of f1_0 : US4               │
│ │                                                                   │
│ 00:00:07 #121 [Verbose] > │     | US5_2 of f2_0 : US4               │
│ │                                                                   │
│ 00:00:07 #122 [Verbose] > │     | US5_3 of f3_0 : US4               │
│ │                                                                   │
│ 00:00:07 #123 [Verbose] > │     | US5_4 of f4_0 : US4               │
│ │                                                                   │
│ 00:00:07 #124 [Verbose] > │     | US5_5 of f5_0 : US4               │
│ │                                                                   │
│ 00:00:07 #125 [Verbose] > │     | US5_6 of f6_0 : US4               │
│ │                                                                   │
│ 00:00:07 #126 [Verbose] > │     | US5_7 of f7_0 : US4               │
│ │                                                                   │
│ 00:00:07 #127 [Verbose] > │     | US5_8 of f8_0 : US4               │
│ │                                                                   │
│ 00:00:07 #128 [Verbose] > │     | US5_9 of f9_0 : US4               │
│ │                                                                   │
│ 00:00:07 #129 [Verbose] > │     | US5_10 of f10_0 : US4             │
│ │                                                                   │
│ 00:00:07 #130 [Verbose] > │     | US5_11 of f11_0 : US4             │
│ │                                                                   │
│ 00:00:07 #131 [Verbose] > │     | US5_12 of f12_0 : US4             │
│ │                                                                   │
│ 00:00:07 #132 [Verbose] > │     | US5_13 of f13_0 : US4             │
│ │                                                                   │
│ 00:00:07 #133 [Verbose] > │     | US5_14 of f14_0 : US4             │
│ │                                                                   │
│ 00:00:07 #134 [Verbose] > │     | US5_15 of f15_0 : US4             │
│ │                                                                   │
│ 00:00:07 #135 [Verbose] > │ let rec method0 (v0 : (US5 [])) : (US5  │
│ []) =                                 │                             │
│ 00:00:07 #136 [Verbose] > │     v0                                  │
│ │                                                                   │
│ 00:00:07 #137 [Verbose] > │ and closure0 () () : unit =             │
│ │                                                                   │
│ 00:00:07 #138 [Verbose] > │     let v0 : US0 = US0_1                │
│ │                                                                   │
│ 00:00:07 #139 [Verbose] > │     let v1 : US1 = US1_0                │
│ │                                                                   │
│ 00:00:07 #140 [Verbose] > │     let v2 : US2 = US2_0                │
│ │                                                                   │
│ 00:00:07 #141 [Verbose] > │     let v3 : US3 = US3_1                │
│ │                                                                   │
│ 00:00:07 #142 [Verbose] > │     let v4 : US4 = US4_0(v0, v1, v2,    │
│ v3)                                     │                           │
│ 00:00:07 #143 [Verbose] > │     let v5 : US5 = US5_14(v4)           │
│ │                                                                   │
│ 00:00:07 #144 [Verbose] > │     let v6 : (US5 []) = [|v5|]          │
│ │                                                                   │
│ 00:00:07 #145 [Verbose] > │     let v7 : (US5 []) = method0(v6)     │
│ │                                                                   │
│ 00:00:07 #146 [Verbose] > │     let v8 : string = $"%A{v7}"         │
│ │                                                                   │
│ 00:00:07 #147 [Verbose] > │     System.Console.WriteLine v8         │
│ │                                                                   │
│ 00:00:07 #148 [Verbose] > │     ()                                  │
│ │                                                                   │
│ 00:00:07 #149 [Verbose] > │ let v0 : (unit -> unit) = closure0()    │
│ │                                                                   │
│ 00:00:07 #150 [Verbose] > │ v0 ()                                   │
│ │                                                                   │
│ 00:00:07 #151 [Verbose] > │ ()                                      │
│ │                                                                   │
│ 00:00:07 #152 [Verbose] > │                                         │
│                                                                              │
│ │                                                                   │
│ 00:00:07 #153 [Verbose] > │ [|US5_14 (US4_0 (US0_1, US1_0, US2_0,   │
│ US3_1))|]                              │                            │
│ 00:00:07 #154 [Verbose] > │                                         │
│                                                                              │
│ │                                                                   │
│ 00:00:07 #155 [Verbose] > 38;5;2m│
│ 38;5;2m╰──────────────────────────────────────────────────────────────────── │
│ ──────────╯                                                                │
│ 00:00:07 #156 [Verbose] >                                                    │
│ 00:00:07 #157 [Verbose] > ── fsharp                                 │
│ ──────────────────────────────────────────────────────────────────────     │
│ 00:00:07 #158 [Verbose] > type PhonologicalFeature =                         │
│ 00:00:07 #159 [Verbose] >     | VowelFeature of                              │
│ 00:00:07 #160 [Verbose] >         height: Height                             │
│ 00:00:07 #161 [Verbose] >         * backness: Backness                       │
│ 00:00:07 #162 [Verbose] >         * roundedness: Roundedness                 │
│ 00:00:07 #163 [Verbose] >         * tone: Option<Tone>                       │
│ 00:00:07 #164 [Verbose] >         * stress: Option<Stress>                   │
│ 00:00:07 #165 [Verbose] >         * length: Option<Length>                   │
│ 00:00:07 #166 [Verbose] >     | ConsonantFeature of                          │
│ 00:00:07 #167 [Verbose] >         place: PlaceOfArticulation                 │
│ 00:00:07 #168 [Verbose] >         * manner: MannerOfArticulation             │
│ 00:00:07 #169 [Verbose] >         * voicing: Voicing                         │
│ 00:00:07 #170 [Verbose] >         * length: Option<Length>                   │
│ 00:00:07 #171 [Verbose] >     | VowelHarmonyFeature                          │
│ 00:00:07 #172 [Verbose] >     | PitchAccentFeature                           │
│ 00:00:07 #173 [Verbose] >                                                    │
│ 00:00:07 #174 [Verbose] > and Stress = Primary | Secondary                   │
│ 00:00:07 #175 [Verbose] > and Length = Long | Short | HalfLong               │
│ 00:00:07 #176 [Verbose] >                                                    │
│ 00:00:07 #177 [Verbose] > and Height =                                       │
│ 00:00:07 #178 [Verbose] >     | High | NearHigh | HighMid                    │
│ 00:00:07 #179 [Verbose] >     | Mid | LowMid | NearLow                       │
│ 00:00:07 #180 [Verbose] >     | Low                                          │
│ 00:00:07 #181 [Verbose] >                                                    │
│ 00:00:07 #182 [Verbose] > and Backness = Front | Central | Back              │
│ 00:00:07 #183 [Verbose] >                                                    │
│ 00:00:07 #184 [Verbose] > and Roundedness = Rounded | Unrounded              │
│ 00:00:07 #185 [Verbose] >                                                    │
│ 00:00:07 #186 [Verbose] > and PlaceOfArticulation =                          │
│ 00:00:07 #187 [Verbose] >     | Bilabial | Labiodental | Dental              │
│ 00:00:07 #188 [Verbose] >     | Alveolar | Postalveolar | Retroflex          │
│ 00:00:07 #189 [Verbose] >     | Palatal | Velar | Uvular                     │
│ 00:00:07 #190 [Verbose] >     | Pharyngeal | Epiglottal | Glottal            │
│ 00:00:07 #191 [Verbose] >                                                    │
│ 00:00:07 #192 [Verbose] > and MannerOfArticulation =                         │
│ 00:00:07 #193 [Verbose] >     | Plosive | Nasal | Trill                      │
│ 00:00:07 #194 [Verbose] >     | TapOrFlap | Fricative | LateralFricative     │
│ 00:00:07 #195 [Verbose] >     | Approximant | LateralApproximant             │
│ 00:00:07 #196 [Verbose] >                                                    │
│ 00:00:07 #197 [Verbose] > and Voicing = Voiced | Voiceless                   │
│ 00:00:07 #198 [Verbose] >                                                    │
│ 00:00:07 #199 [Verbose] > and SecondaryArticulation =                        │
│ 00:00:07 #200 [Verbose] >     | Labialization | Palatalization |             │
│ Velarization                                                                 │
│ 00:00:07 #201 [Verbose] >     | Pharyngealization | Aspiration               │
│ 00:00:07 #202 [Verbose] >                                                    │
│ 00:00:07 #203 [Verbose] > and Tone =                                         │
│ 00:00:07 #204 [Verbose] >     | LevelTone of int                             │
│ 00:00:07 #205 [Verbose] >     | ContourTone of int list                      │
│ 00:00:07 #206 [Verbose] >                                                    │
│ 00:00:07 #207 [Verbose] > and MorphologicalFeature =                         │
│ 00:00:07 #208 [Verbose] >     | RootFeature of string                        │
│ 00:00:07 #209 [Verbose] >     | AffixFeature of AffixType * string           │
│ 00:00:07 #210 [Verbose] >     | IncorporationFeature of string *             │
│ MorphologicalFeature                                                         │
│ 00:00:07 #211 [Verbose] >     | NonConcatenativePattern of string * string   │
│ 00:00:07 #212 [Verbose] >     | AgglutinativeAffixFeature of                 │
│ AgglutinativeAffixType * string                                              │
│ 00:00:07 #213 [Verbose] >     | HonorificFeature of HonorificType * string   │
│ 00:00:07 #214 [Verbose] >                                                    │
│ 00:00:07 #215 [Verbose] > and AgglutinativeAffixType = Suffix | Prefix       │
│ 00:00:07 #216 [Verbose] >                                                    │
│ 00:00:07 #217 [Verbose] > and HonorificType = VerbHonorific | NounHonorific  │
│ 00:00:07 #218 [Verbose] >                                                    │
│ 00:00:07 #219 [Verbose] > and AffixType =                                    │
│ 00:00:07 #220 [Verbose] >     | Prefix | Suffix | Infix                      │
│ 00:00:07 #221 [Verbose] >     | Circumfix                                    │
│ 00:00:07 #222 [Verbose] >                                                    │
│ 00:00:07 #223 [Verbose] > type SyntacticFeature =                            │
│ 00:00:07 #224 [Verbose] >     | WordFeature of MorphologicalFeature list *   │
│ LexicalCategory                                                              │
│ 00:00:07 #225 [Verbose] >     | PhraseFeature of PhraseType *                │
│ SyntacticFeature list                                                        │
│ 00:00:07 #226 [Verbose] >     | GrammaticalRelation of                       │
│ GrammaticalRelationType * SyntacticFeature list                              │
│ 00:00:07 #227 [Verbose] >     | SOVOrderFeature                              │
│ 00:00:07 #228 [Verbose] >     | TopicCommentFeature                          │
│ 00:00:07 #229 [Verbose] >                                                    │
│ 00:00:07 #230 [Verbose] > and GrammaticalRelationType =                      │
│ 00:00:07 #231 [Verbose] >     | Ergative | Absolutive | Nominative           │
│ 00:00:07 #232 [Verbose] >     | Accusative                                   │
│ 00:00:07 #233 [Verbose] >                                                    │
│ 00:00:07 #234 [Verbose] > and LexicalCategory =                              │
│ 00:00:07 #235 [Verbose] >     | Noun | Verb | Adjective                      │
│ 00:00:07 #236 [Verbose] >     | Adverb | Pronoun | Preposition               │
│ 00:00:07 #237 [Verbose] >     | Conjunction | Determiner | Interjection      │
│ 00:00:07 #238 [Verbose] >                                                    │
│ 00:00:07 #239 [Verbose] > and PhraseType =                                   │
│ 00:00:07 #240 [Verbose] >     | NP | VP | AP                                 │
│ 00:00:07 #241 [Verbose] >     | PP | CP                                      │
│ 00:00:07 #242 [Verbose] >                                                    │
│ 00:00:07 #243 [Verbose] > and SemanticFeature =                              │
│ 00:00:07 #244 [Verbose] >     | Meaning of string                            │
│ 00:00:07 #245 [Verbose] >     | SemanticRole of SemanticRoleType *           │
│ SemanticFeature                                                              │
│ 00:00:07 #246 [Verbose] >                                                    │
│ 00:00:07 #247 [Verbose] > and SemanticRoleType =                             │
│ 00:00:07 #248 [Verbose] >     | Agent | Patient | Instrument                 │
│ 00:00:07 #249 [Verbose] >     | Location | Time | Cause                      │
│ 00:00:07 #250 [Verbose] >                                                    │
│ 00:00:07 #251 [Verbose] > and PragmaticFeature =                             │
│ 00:00:07 #252 [Verbose] >     | UseContext of string                         │
│ 00:00:07 #253 [Verbose] >     | PolitenessLevel of Politeness                │
│ 00:00:07 #254 [Verbose] >     | SpeechAct of SpeechActType                   │
│ 00:00:07 #255 [Verbose] >     | SpeechLevel of SpeechLevelType               │
│ 00:00:07 #256 [Verbose] >                                                    │
│ 00:00:07 #257 [Verbose] > and Politeness = Formal | Informal | Neutral       │
│ 00:00:07 #258 [Verbose] >                                                    │
│ 00:00:07 #259 [Verbose] > and SpeechActType =                                │
│ 00:00:07 #260 [Verbose] >     | Assertive | Directive | Commissive           │
│ 00:00:07 #261 [Verbose] >     | Expressive | Declarative                     │
│ 00:00:07 #262 [Verbose] >                                                    │
│ 00:00:07 #263 [Verbose] > and SpeechLevelType =                              │
│ 00:00:07 #264 [Verbose] >     | FormalHigh | FormalLow | InformalHigh        │
│ 00:00:07 #265 [Verbose] >     | InformalLow | Neutral                        │
│ 00:00:07 #266 [Verbose] >                                                    │
│ 00:00:07 #267 [Verbose] > type LinguisticFeature =                           │
│ 00:00:07 #268 [Verbose] >     | Phonological of PhonologicalFeature          │
│ 00:00:07 #269 [Verbose] >     | Morphological of MorphologicalFeature        │
│ 00:00:07 #270 [Verbose] >     | Syntactic of SyntacticFeature                │
│ 00:00:07 #271 [Verbose] >     | Semantic of SemanticFeature                  │
│ 00:00:07 #272 [Verbose] >     | Pragmatic of PragmaticFeature                │
│ 00:00:07 #273 [Verbose] >                                                    │
│ 00:00:07 #274 [Verbose] > type LanguageConstruct =                           │
│ 00:00:07 #275 [Verbose] >     | LanguageElement of LinguisticFeature         │
│ 00:00:07 #276 [Verbose] >     | LanguageStructure of LanguageConstruct list  │
│ 00:00:07 #277 [Verbose] >     | TranslationElement of TranslationFeature     │
│ 00:00:07 #278 [Verbose] >                                                    │
│ 00:00:07 #279 [Verbose] > and TranslationFeature =                           │
│ 00:00:07 #280 [Verbose] >     | LinkedPhonological of PhonologicalFeature *  │
│ PhonologicalFeature                                                          │
│ 00:00:07 #281 [Verbose] >     | LinkedMorphological of MorphologicalFeature  │
│ * MorphologicalFeature                                                       │
│ 00:00:07 #282 [Verbose] >     | LinkedSyntactic of SyntacticFeature *        │
│ SyntacticFeature                                                             │
│ 00:00:07 #283 [Verbose] >     | LinkedSemantic of SemanticFeature *          │
│ SemanticFeature                                                              │
│ 00:00:07 #284 [Verbose] >                                                    │
│ 00:00:07 #285 [Verbose] > type Discourse = DiscourseUnit of                  │
│ LanguageConstruct list                                                       │
│ 00:00:07 #286 [Verbose] >                                                    │
│ 00:00:07 #287 [Verbose] > type LanguageModel =                               │
│ 00:00:07 #288 [Verbose] >     | Model of discourse: Discourse                │
│ 00:00:07 #289 [Verbose] >                                                    │
│ 00:00:07 #290 [Verbose] > ── fsharp - import                        │
│ ─────────────────────────────────────────────────────────────              │
│ 00:00:07 #291 [Verbose] > #r                                                 │
│ 00:00:07 #292 [Verbose] >                                                    │
│ "/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft │
│ .Asp                                                                         │
│ 00:00:07 #293 [Verbose] > NetCore.Html.Abstractions.dll"                     │
│ 00:00:07 #294 [Verbose] > #r                                                 │
│ 00:00:07 #295 [Verbose] >                                                    │
│ "/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft │
│ .Dot                                                                         │
│ 00:00:07 #296 [Verbose] > Net.Interactive.dll"                               │
│ 00:00:07 #297 [Verbose] > #r                                                 │
│ 00:00:07 #298 [Verbose] >                                                    │
│ "/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft │
│ .Dot                                                                         │
│ 00:00:07 #299 [Verbose] > Net.Interactive.FSharp.dll"                        │
│ 00:00:07 #300 [Verbose] > #r                                                 │
│ 00:00:07 #301 [Verbose] >                                                    │
│ "/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft │
│ .Dot                                                                         │
│ 00:00:07 #302 [Verbose] > Net.Interactive.Formatting.dll"                    │
│ 00:00:07 #303 [Verbose] > open System                                        │
│ 00:00:07 #304 [Verbose] > open System.IO                                     │
│ 00:00:07 #305 [Verbose] > open System.Text                                   │
│ 00:00:07 #306 [Verbose] > open Microsoft.DotNet.Interactive.Formatting       │
│ 00:00:08 #307 [Verbose] >                                                    │
│ 00:00:08 #308 [Verbose] > ── fsharp - import                        │
│ ─────────────────────────────────────────────────────────────              │
│ 00:00:08 #309 [Verbose] > #r                                                 │
│ 00:00:08 #310 [Verbose] >                                                    │
│ "/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft │
│ .Dot                                                                         │
│ 00:00:08 #311 [Verbose] > Net.Interactive.FSharp.dll"                        │
│ 00:00:08 #312 [Verbose] > open                                               │
│ Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers                      │
│ 00:00:08 #313 [Verbose] > #r                                                 │
│ 00:00:08 #314 [Verbose] >                                                    │
│ "/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft │
│ .Dot                                                                         │
│ 00:00:08 #315 [Verbose] > Net.Interactive.dll"                               │
│ 00:00:08 #316 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel      │
│ 00:00:08 #317 [Verbose] >                                                    │
│ 00:00:08 #318 [Verbose] > ── fsharp - import                        │
│ ─────────────────────────────────────────────────────────────              │
│ 00:00:08 #319 [Verbose] > type PhonologicalFeature =                         │
│ 00:00:08 #320 [Verbose] >     | VowelFeature of                              │
│ 00:00:08 #321 [Verbose] >         height: Height                             │
│ 00:00:08 #322 [Verbose] >         * backness: Backness                       │
│ 00:00:08 #323 [Verbose] >         * roundedness: Roundedness                 │
│ 00:00:08 #324 [Verbose] >         * tone: Option<Tone>                       │
│ 00:00:08 #325 [Verbose] >         * stress: Option<Stress>                   │
│ 00:00:08 #326 [Verbose] >         * length: Option<Length>                   │
│ 00:00:08 #327 [Verbose] >     | ConsonantFeature of                          │
│ 00:00:08 #328 [Verbose] >         place: PlaceOfArticulation                 │
│ 00:00:08 #329 [Verbose] >         * manner: MannerOfArticulation             │
│ 00:00:08 #330 [Verbose] >         * voicing: Voicing                         │
│ 00:00:08 #331 [Verbose] >         * length: Option<Length>                   │
│ 00:00:08 #332 [Verbose] >     | VowelHarmonyFeature                          │
│ 00:00:08 #333 [Verbose] >     | PitchAccentFeature                           │
│ 00:00:08 #334 [Verbose] >                                                    │
│ 00:00:08 #335 [Verbose] > and Stress = Primary | Secondary                   │
│ 00:00:08 #336 [Verbose] > and Length = Long | Short | HalfLong               │
│ 00:00:08 #337 [Verbose] >                                                    │
│ 00:00:08 #338 [Verbose] > and Height =                                       │
│ 00:00:08 #339 [Verbose] >     | High | NearHigh | HighMid                    │
│ 00:00:08 #340 [Verbose] >     | Mid | LowMid | NearLow                       │
│ 00:00:08 #341 [Verbose] >     | Low                                          │
│ 00:00:08 #342 [Verbose] >                                                    │
│ 00:00:08 #343 [Verbose] > and Backness = Front | Central | Back              │
│ 00:00:08 #344 [Verbose] >                                                    │
│ 00:00:08 #345 [Verbose] > and Roundedness = Rounded | Unrounded              │
│ 00:00:08 #346 [Verbose] >                                                    │
│ 00:00:08 #347 [Verbose] > and PlaceOfArticulation =                          │
│ 00:00:08 #348 [Verbose] >     | Bilabial | Labiodental | Dental              │
│ 00:00:08 #349 [Verbose] >     | Alv...                                       │
│ 00:00:09 #350 [Verbose] >                                                    │
│ 00:00:09 #351 [Verbose] > ── fsharp                                 │
│ ──────────────────────────────────────────────────────────────────────     │
│ 00:00:09 #352 [Verbose] > let testEnglish =                                  │
│ 00:00:09 #353 [Verbose] >     Model(                                         │
│ 00:00:09 #354 [Verbose] >         DiscourseUnit [[                           │
│ 00:00:09 #355 [Verbose] >             LanguageElement (Phonological          │
│ (ConsonantFeature (Alveolar, Nasal,                                          │
│ 00:00:09 #356 [Verbose] > Voiced, Some(HalfLong))));                         │
│ 00:00:09 #357 [Verbose] >             LanguageElement (Phonological          │
│ (VowelFeature (High, Front, Unrounded,                                       │
│ 00:00:09 #358 [Verbose] > Some(LevelTone 1), Some(Primary), Some(Short))));  │
│ 00:00:09 #359 [Verbose] >             LanguageElement (Phonological          │
│ (VowelFeature (Low, Front, Unrounded,                                        │
│ 00:00:09 #360 [Verbose] > Some(LevelTone 2), Some(Secondary), Some(Long)))); │
│ 00:00:09 #361 [Verbose] >             LanguageElement (Phonological          │
│ (ConsonantFeature (Velar, Plosive,                                           │
│ 00:00:09 #362 [Verbose] > Voiceless, Some(HalfLong))));                      │
│ 00:00:09 #363 [Verbose] >             LanguageElement (Morphological         │
│ (RootFeature "I"));                                                          │
│ 00:00:09 #364 [Verbose] >             LanguageElement (Morphological         │
│ (RootFeature "see"));                                                        │
│ 00:00:09 #365 [Verbose] >             LanguageElement (Morphological         │
│ (RootFeature "a"));                                                          │
│ 00:00:09 #366 [Verbose] >             LanguageElement (Morphological         │
│ (RootFeature "cat"));                                                        │
│ 00:00:09 #367 [Verbose] >             LanguageElement (Syntactic             │
│ (PhraseFeature (NP, [[WordFeature                                            │
│ 00:00:09 #368 [Verbose] > ([[RootFeature "I"]], Pronoun)]])));               │
│ 00:00:09 #369 [Verbose] >             LanguageElement (Syntactic             │
│ (PhraseFeature (VP, [[WordFeature                                            │
│ 00:00:09 #370 [Verbose] > ([[RootFeature "see"]], Verb)]])));                │
│ 00:00:09 #371 [Verbose] >             LanguageElement (Syntactic             │
│ (PhraseFeature (NP, [[WordFeature                                            │
│ 00:00:09 #372 [Verbose] > ([[RootFeature "a"; RootFeature "cat"]],           │
│ Noun)]])));                                                                  │
│ 00:00:09 #373 [Verbose] >             LanguageElement (Semantic (Meaning     │
│ "Perception act of a feline by                                               │
│ 00:00:09 #374 [Verbose] > the speaker"));                                    │
│ 00:00:09 #375 [Verbose] >             LanguageElement (Pragmatic (UseContext │
│ "Statement of an action being                                                │
│ 00:00:09 #376 [Verbose] > observed"))                                        │
│ 00:00:09 #377 [Verbose] >         ]]                                         │
│ 00:00:09 #378 [Verbose] >     )                                              │
│ 00:00:09 #379 [Verbose] >                                                    │
│ 00:00:09 #380 [Verbose] > let testPortuguese =                               │
│ 00:00:09 #381 [Verbose] >     Model(                                         │
│ 00:00:09 #382 [Verbose] >         DiscourseUnit [[                           │
│ 00:00:09 #383 [Verbose] >             LanguageElement (Phonological          │
│ (VowelFeature (High, Front, Unrounded,                                       │
│ 00:00:09 #384 [Verbose] > Some(LevelTone 1), Some(Primary), Some(Short))));  │
│ 00:00:09 #385 [Verbose] >             LanguageElement (Phonological          │
│ (VowelFeature (Low, Front, Unrounded,                                        │
│ 00:00:09 #386 [Verbose] > Some(LevelTone 2), Some(Secondary), Some(Long)))); │
│ 00:00:09 #387 [Verbose] >             LanguageElement (Phonological          │
│ (VowelFeature (Mid, Back, Rounded,                                           │
│ 00:00:09 #388 [Verbose] > Some(LevelTone 3), Some(Primary), Some(Short))));  │
│ 00:00:09 #389 [Verbose] >             LanguageElement (Phonological          │
│ (ConsonantFeature (Velar, Plosive,                                           │
│ 00:00:09 #390 [Verbose] > Voiceless, Some(HalfLong))));                      │
│ 00:00:09 #391 [Verbose] >             LanguageElement (Morphological         │
│ (RootFeature "Eu"));                                                         │
│ 00:00:09 #392 [Verbose] >             LanguageElement (Morphological         │
│ (RootFeature "ver" |> ignore;                                                │
│ 00:00:09 #393 [Verbose] > AffixFeature (Suffix, "o")));                      │
│ 00:00:09 #394 [Verbose] >             LanguageElement (Morphological         │
│ (RootFeature "um"));                                                         │
│ 00:00:09 #395 [Verbose] >             LanguageElement (Morphological         │
│ (RootFeature "gato"));                                                       │
│ 00:00:09 #396 [Verbose] >             LanguageElement (Syntactic             │
│ (PhraseFeature (NP, [[WordFeature                                            │
│ 00:00:09 #397 [Verbose] > ([[RootFeature "Eu"]], Pronoun)]])));              │
│ 00:00:09 #398 [Verbose] >             LanguageElement (Syntactic             │
│ (PhraseFeature (VP, [[WordFeature                                            │
│ 00:00:09 #399 [Verbose] > ([[RootFeature "vejo"]], Verb)]])));               │
│ 00:00:09 #400 [Verbose] >             LanguageElement (Syntactic             │
│ (PhraseFeature (NP, [[WordFeature                                            │
│ 00:00:09 #401 [Verbose] > ([[RootFeature "um"; RootFeature "gato"]],         │
│ Noun)]])));                                                                  │
│ 00:00:09 #402 [Verbose] >             LanguageElement (Semantic (Meaning     │
│ "Ação de percepção de um felino                                              │
│ 00:00:09 #403 [Verbose] > pelo falante"));                                   │
│ 00:00:09 #404 [Verbose] >             LanguageElement (Pragmatic (UseContext │
│ "Declaração de uma ação sendo                                                │
│ 00:00:09 #405 [Verbose] > observada"))                                       │
│ 00:00:09 #406 [Verbose] >         ]]                                         │
│ 00:00:09 #407 [Verbose] >     )                                              │
│ 00:00:09 #408 [Verbose] >                                                    │
│ 00:00:09 #409 [Verbose] > let testKorean =                                   │
│ 00:00:09 #410 [Verbose] >     Model(                                         │
│ 00:00:09 #411 [Verbose] >         DiscourseUnit [[                           │
│ 00:00:09 #412 [Verbose] >             LanguageElement (Phonological          │
│ (ConsonantFeature (Alveolar, Nasal,                                          │
│ 00:00:09 #413 [Verbose] > Voiced, Some(Short))));                            │
│ 00:00:09 #414 [Verbose] >             LanguageElement (Phonological          │
│ (VowelFeature (High, Back, Rounded,                                          │
│ 00:00:09 #415 [Verbose] > None, None, Some(Short))));                        │
│ 00:00:09 #416 [Verbose] >             LanguageElement (Phonological          │
│ (VowelFeature (Mid, Front, Unrounded,                                        │
│ 00:00:09 #417 [Verbose] > None, None, Some(Long))));                         │
│ 00:00:09 #418 [Verbose] >             LanguageElement (Phonological          │
│ (ConsonantFeature (Bilabial, Plosive,                                        │
│ 00:00:09 #419 [Verbose] > Voiceless, Some(Short))));                         │
│ 00:00:09 #420 [Verbose] >             LanguageElement (Morphological         │
│ (RootFeature "나"));                                                         │
│ 00:00:09 #421 [Verbose] >             LanguageElement (Morphological         │
│ (RootFeature "보다"));                                                       │
│ 00:00:09 #422 [Verbose] >             LanguageElement (Morphological         │
│ (AffixFeature (Suffix, "아")));                                              │
│ 00:00:09 #423 [Verbose] >             LanguageElement (Morphological         │
│ (RootFeature "고양이"));                                                     │
│ 00:00:09 #424 [Verbose] >             LanguageElement (Syntactic             │
│ (PhraseFeature (NP, [[WordFeature                                            │
│ 00:00:09 #425 [Verbose] > ([[RootFeature "나"]], Pronoun)]])));              │
│ 00:00:09 #426 [Verbose] >             LanguageElement (Syntactic             │
│ (PhraseFeature (VP, [[WordFeature                                            │
│ 00:00:09 #427 [Verbose] > ([[RootFeature "보다"; AffixFeature (Suffix,       │
│ "아")]], Verb)]])));                                                         │
│ 00:00:09 #428 [Verbose] >             LanguageElement (Syntactic             │
│ (PhraseFeature (NP, [[WordFeature                                            │
│ 00:00:09 #429 [Verbose] > ([[RootFeature "고양이"]], Noun)]])));             │
│ 00:00:09 #430 [Verbose] >             LanguageElement (Semantic (Meaning     │
│ "화자에 의한 고양이의 관찰                                                   │
│ 00:00:09 #431 [Verbose] > 행위"));                                           │
│ 00:00:09 #432 [Verbose] >             LanguageElement (Pragmatic (UseContext │
│ "관찰되고 있는 행동의 진술"))                                                │
│ 00:00:09 #433 [Verbose] >         ]]                                         │
│ 00:00:09 #434 [Verbose] >     )                                              │
│ 00:00:09 #435 [Verbose] >                                                    │
│ 00:00:09 #436 [Verbose] > ── markdown                               │
│ ────────────────────────────────────────────────────────────────────       │
│ 00:00:09 #437 [Verbose] > 38;5;2m│
│ 38;5;103m╭────────────────────────────────────────────────────────────────── │
│ ────────────╮                                                              │
│ 00:00:09 #438 [Verbose] > │ ## main                               │
│ │                                                                 │
│ 00:00:09 #439 [Verbose] > 38;5;2m│
│ 38;5;103m╰────────────────────────────────────────────────────────────────── │
│ ────────────╯                                                              │
│ 00:00:09 #440 [Verbose] >                                                    │
│ 00:00:09 #441 [Verbose] > ── spiral                                 │
│ ──────────────────────────────────────────────────────────────────────     │
│ 00:00:09 #442 [Verbose] > inl main (_args : array_base string) =             │
│ 00:00:09 #443 [Verbose] >     0i32                                           │
│ 00:00:09 #444 [Verbose] >                                                    │
│ 00:00:09 #445 [Verbose] > inl main () =                                      │
│ 00:00:09 #446 [Verbose] >     $"let main args = !main args" : ()             │
│ 00:00:09 #447 [Verbose] > Building                                           │
│ /tmp/dotnet-repl/20240329-2215-4380-8083-85f4093cf872/main.spi               │
│ 00:00:09 #448 [Verbose] >                                                    │
│ 00:00:09 #449 [Verbose] > ╭─[ 182.29ms - stdout                       │
│ ]────────────────────────────────────────────────────────╮                 │
│ 00:00:09 #450 [Verbose] > │ let rec closure0 () (v0 : (string []))  │
│ : int32 =                             │                             │
│ 00:00:09 #451 [Verbose] > │     0                                   │
│ │                                                                   │
│ 00:00:09 #452 [Verbose] > │ let v0 : ((string []) -> int32) =       │
│ closure0()                                 │                        │
│ 00:00:09 #453 [Verbose] > │ let main args = v0 args                 │
│ │                                                                   │
│ 00:00:09 #454 [Verbose] > │ ()                                      │
│ │                                                                   │
│ 00:00:09 #455 [Verbose] > │                                         │
│                                                                              │
│ │                                                                   │
│ 00:00:09 #456 [Verbose] > │                                         │
│                                                                              │
│ │                                                                   │
│ 00:00:09 #457 [Verbose] > 38;5;2m│
│ 38;5;2m╰──────────────────────────────────────────────────────────────────── │
│ ──────────╯                                                                │
│ 00:00:09 #458 [Verbose] >                                                    │
│ 00:00:09 #459 [Verbose] > ── spiral                                 │
│ ──────────────────────────────────────────────────────────────────────     │
│ 00:00:09 #460 [Verbose] > inl app () =                                       │
│ 00:00:09 #461 [Verbose] >     "test" |> console.write_line                   │
│ 00:00:09 #462 [Verbose] >     0i32                                           │
│ 00:00:09 #463 [Verbose] >                                                    │
│ 00:00:09 #464 [Verbose] > inl main () =                                      │
│ 00:00:09 #465 [Verbose] >     print_static "<test>"                          │
│ 00:00:09 #466 [Verbose] >                                                    │
│ 00:00:09 #467 [Verbose] >     app                                            │
│ 00:00:09 #468 [Verbose] >     |> dyn                                         │
│ 00:00:09 #469 [Verbose] >     |> ignore                                      │
│ 00:00:09 #470 [Verbose] >                                                    │
│ 00:00:09 #471 [Verbose] >     print_static "</test>"                         │
│ 00:00:09 #472 [Verbose] > Building                                           │
│ /tmp/dotnet-repl/20240329-2215-4399-9903-9a5c50caec46/main.spi               │
│ 00:00:09 #473 [Verbose] > <test>                                             │
│ 00:00:09 #474 [Verbose] > </test>                                            │
│ 00:00:09 #475 [Verbose] >                                                    │
│ 00:00:09 #476 [Verbose] > ╭─[ 197.10ms - stdout                       │
│ ]────────────────────────────────────────────────────────╮                 │
│ 00:00:09 #477 [Verbose] > │ let rec closure0 () () : int32 =        │
│ │                                                                   │
│ 00:00:09 #478 [Verbose] > │     let v0 : string = "test"            │
│ │                                                                   │
│ 00:00:09 #479 [Verbose] > │     System.Console.WriteLine v0         │
│ │                                                                   │
│ 00:00:09 #480 [Verbose] > │     0                                   │
│ │                                                                   │
│ 00:00:09 #481 [Verbose] > │ let v0 : (unit -> int32) = closure0()   │
│ │                                                                   │
│ 00:00:09 #482 [Verbose] > │ ()                                      │
│ │                                                                   │
│ 00:00:09 #483 [Verbose] > │                                         │
│                                                                              │
│ │                                                                   │
│ 00:00:09 #484 [Verbose] > │                                         │
│                                                                              │
│ │                                                                   │
│ 00:00:09 #485 [Verbose] > 38;5;2m│
│ 38;5;2m╰──────────────────────────────────────────────────────────────────── │
│ ──────────╯                                                                │
│ 00:00:10 #486 [Verbose] > [NbConvertApp] Converting notebook test.dib.ipynb  │
│ to html                                                                      │
│ 00:00:10 #487 [Verbose] >                                                    │
│ /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbforma │
│ t/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this   │
│ will become a hard error in future nbformat versions. You may want to use    │
│ `normalize()` on your notebooks before validations (available since nbformat │
│ 5.1.4). Previous versions of nbformat are fixing this issue transparently,   │
│ and will stop doing so in the future.                                        │
│ 00:00:10 #488 [Verbose] >   validate(nb)                                     │
│ 00:00:10 #489 [Verbose] >                                                    │
│ /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbconve │
│ rt/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling │
│ back on Python 3                                                             │
│ 00:00:10 #490 [Verbose] >   return _pygments_highlight(                      │
│ 00:00:10 #491 [Verbose] > [NbConvertApp] Writing 321585 bytes to             │
│ test.dib.html                                                                │
│ 00:00:11 #492 [Debug] executeAsync / exitCode: 0 / output.Length: 21665      │
│ 00:00:11 #493 [Debug] main / executeCommand / exitCode: 0                    │
│ 00:00:11 #494 [Verbose] waitForPortAccess / port: 13805 / retry: 0           │
│ 00:00:11 #495 [Verbose] testPortOpen / ex: System.AggregateException: One or │
│ more errors occurred. (Connection refused)                                   │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── pwsh ────────────────────────────────────────────────────────────────────────
{ . ../../../../apps/parser/dist/DibParser$(GetExecutableSuffix) test.dib spi } 
| Invoke-Block

╭─[ 358.09ms - stdout ]────────────────────────────────────────────────────────╮
│ 00:00:00 #1 [Debug] writeDibCode / output: Spi / path: test.dib              │
│ 00:00:00 #2 [Debug] parseDibCode / output: Spi / file: test.dib              │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── pwsh ────────────────────────────────────────────────────────────────────────
{ . ../../../../apps/spiral/dist/Supervisor$(GetExecutableSuffix) --build-file 
test.spi test.fsx --timeout 10000 } | Invoke-Block

╭─[ 2.88s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:00:00 #1 [Verbose] testPortOpen / ex: System.AggregateException: One or   │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #2 [Debug] runWithTimeoutAsync / timeout: 60                        │
│ 00:00:00 #3 [Debug] executeAsync / options: { Command =                      │
│    "dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The │
│ Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll"    │
│ --port 13805 --default-int i32 --default-float f64"                          │
│   WorkingDirectory = None                                                    │
│   CancellationToken = Some System.Threading.CancellationToken                │
│   OnLine = Some <fun:main@425-61> }                                          │
│ 00:00:00 #4 [Verbose] > pwd:                                                 │
│ /home/runner/work/polyglot/polyglot/apps/spiral/temp/test                    │
│ 00:00:00 #5 [Verbose] > dll_path:                                            │
│ /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral      │
│ Language 2/artifacts/bin/The Spiral Language 2/release                       │
│ 00:00:00 #6 [Verbose] testPortOpen / ex: System.AggregateException: One or   │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #7 [Verbose] waitForPortAccess / port: 13805 / retry: 0             │
│ 00:00:00 #8 [Verbose] testPortOpen / ex: System.AggregateException: One or   │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #9 [Verbose] testPortOpen / ex: System.AggregateException: One or   │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #10 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #11 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #12 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #13 [Verbose] > Starting the Spiral Server. It is bound to:         │
│ http://localhost:13805                                                       │
│ 00:00:00 #14 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #15 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #16 [Debug] sendJson / port: 13805 / json: {"Ping":true} /          │
│ result.Length:                                                               │
│ 00:00:00 #17 [Verbose] awaitCompiler / Ping / result: Some(null) / port:     │
│ 13805 / retry: 0                                                             │
│ 00:00:00 #18 [Verbose] > Server bound to: http://localhost:13805             │
│ 00:00:00 #19 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│ 00:00:00 #20 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │
│ [] / typeErrorCount: 0                                                       │
│ 00:00:00 #21 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │
│ [] / typeErrorCount: 0                                                       │
│ 00:00:00 #22 [Debug] sendJson / port: 13805 / json:                          │
│ {"FileOpen":{"spiText":"// // # test (Polyglot)\n\nnominal i = ()\nnominal e │
│ = ()\nnominal s = ()\nnominal n = ()\nnominal t = ()\nnominal f =            │
│ ()\nnominal j = ()\nnominal p = ()\n\nunion sensing =\n    | Si : s * i\n    │
│ | Se : s * e\n\nunion intuition =\n    | Ni : n * i\n    | Ne : n *          │
│ e\n\nunion thinking =\n    | Ti : t * i\n    | Te : t * e\n\nunion feeling   │
│ =\n    | Fi : f * i\n    | Fe : f * e\n\nunion function_stack =\n    | FS :  │
│ sensing * intuition * thinking * feeling\n\nunion personality_type =\n    |  │
│ ISTJ : i * s * t * j * function_stack\n    | ISFJ : i * s * f * j *          │
│ function_stack\n    | INFJ : i * n * f * j * function_stack\n    | INTJ : i  │
│ * n * t * j * function_stack\n    | ISTP : i * s * t * p * function_stack\n  │
│ | ISFP : i * s * f * p * function_stack\n    | INFP : i * n * f * p *        │
│ function_stack\n    | INTP : i * n * t * p * function_stack\n    | ESTP : e  │
│ * s * t * p * function_stack\n    | ESFP : e * s * f * p * function_stack\n  │
│ | ENFP : e * n * f * p * function_stack\n    | ENTP : e * n * t * p *        │
│ function_stack\n    | ESTJ : e * s * t * j * function_stack\n    | ESFJ : e  │
│ * s * f * j * function_stack\n    | ENFJ : e * n * f * j * function_stack\n  │
│ | ENTJ : e * n * t * j * function_stack\n\n\ninl main () =\n    inl          │
│ istj_stack = FS ((Si (s, i)), Ne (n, e), (Te (t, e)), (Fi (f, i)))\n    inl  │
│ istj_personality = ISTJ (i, s, t, j, istj_stack)\n    // inl isfj_stack = FS │
│ ((Si (s, i)), Ne (n, e), (Fe (f, e)), (Ti (t, i)))\n    // inl               │
│ isfj_personality = ISFJ (i, s, f, j, isfj_stack)\n\n    ;[\n                 │
│ istj_personality\n    ]\n    |\u003E fun x =\u003E                           │
│ $\u0027$\u0022%A{!x}\u0022\u0027 : string\n    |\u003E                       │
│ console.write_line\n\ninl main () =\n    $\u0022!main ()\u0022 : ()\n\n// // │
│ ## main\n\ninl main (_args : array_base string) =\n    0i32\n\ninl main ()   │
│ =\n    $\u0022let main args = !main args\u0022 : ()\n\ninl app () =\n        │
│ \u0022test\u0022 |\u003E console.write_line\n    0i32\n\ninl main () =\n     │
│ print_static \u0022\u003Ctest\u003E\u0022\n\n    app\n    |\u003E dyn\n      │
│ |\u003E ignore\n\n    print_static                                           │
│ \u0022\u003C/test\u003E\u0022\n","uri":"file:///home/runner/work/polyglot/po │
│ lyglot/apps/spiral/temp/test/test.spi"}} / result.Length:                    │
│ 00:00:00 #23 [Debug] sendJson / port: 13805 / json:                          │
│ {"BuildFile":{"backend":"Fsharp","uri":"file:///home/runner/work/polyglot/po │
│ lyglot/apps/spiral/temp/test/test.spi"}} / result.Length:                    │
│ 00:00:01 #24 [Verbose] > Building                                            │
│ /home/runner/work/polyglot/polyglot/apps/spiral/temp/test/test.spi           │
│ 00:00:01 #25 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │
│ [] / typeErrorCount: 0                                                       │
│ 00:00:02 #26 [Verbose] > <test>                                              │
│ 00:00:02 #27 [Verbose] > </test>                                             │
│ 00:00:02 #28 [Debug] buildFile / takeWhileInclusive / fsxContent: let rec    │
│ closure0 () () : int32 =                                                     │
│     let v0 : string = "test"                                                 │
│     System.Console.WriteLine v0                                              │
│     0                                                                        │
│ let v0 : (unit -> int32) = closure0()                                        │
│ ()                                                                           │
│  / errors: [] / typeErrorCount: 0                                            │
│ 00:00:02 #29 [Debug] watchWithFilter / Disposing watch stream / filter:      │
│ FileName, LastWrite                                                          │
│ 00:00:02 #30 [Verbose] waitForPortAccess / port: 13805 / retry: 0            │
│ 00:00:02 #31 [Verbose] testPortOpen / ex: System.AggregateException: One or  │
│ more errors occurred. (Connection refused)                                   │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── pwsh ────────────────────────────────────────────────────────────────────────
dotnet fable --optimize --lang rs --extension .rs

╭─[ 6.94s - stdout ]───────────────────────────────────────────────────────────╮
│ Fable 4.14.0: F# to Rust compiler (status: alpha)                         │
│                                                                           │
│ Thanks to the contributor! @jwosty                                           │
│ Stand with Ukraine! https://standwithukraine.com.ua/                      │
│                                                                              │
│ Parsing test.fsproj...                                                    │
│ .> dotnet restore test.fable-temp.csproj -p:FABLE_COMPILER=true           │
│ -p:FABLE_COMPILER_4=true -p:FABLE_COMPILER_RUST=true                         │
│   Determining projects to restore...                                         │
│   Paket version 8.1.0-alpha001+8e77fe66ac27ddecf519e0df5a4d3327ca9250e2      │
│   The last full restore is still up to date. Nothing left to do.             │
│   Total time taken: 0 milliseconds                                           │
│   Paket version 8.1.0-alpha001+8e77fe66ac27ddecf519e0df5a4d3327ca9250e2      │
│   Restoring                                                                  │
│ /home/runner/work/polyglot/polyglot/apps/spiral/temp/test/test.fable-temp.cs │
│ proj                                                                         │
│   Starting restore process.                                                  │
│   Total time taken: 0 milliseconds                                           │
│   Restored                                                                   │
│ /home/runner/work/polyglot/polyglot/apps/spiral/temp/test/test.fable-temp.cs │
│ proj (in 335 ms).                                                            │
│ .> dotnet restore                                                         │
│ /home/runner/work/polyglot/polyglot/apps/spiral/temp/test/test.fsproj        │
│   Determining projects to restore...                                         │
│   Restored                                                                   │
│ /home/runner/work/polyglot/polyglot/apps/spiral/temp/test/test.fsproj (in    │
│ 243 ms).                                                                     │
│ Project and references (1 source files) parsed in 4913ms                  │
│                                                                              │
│ Started Fable compilation...                                              │
│                                                                           │
│ Fable compilation finished in 995ms                                          │
│                                                                              │
│ ./test.fsx(6,0): (6,2) warning FABLE: For Rust, support for F# static and │
│ module do bindings is disabled by default. It can be enabled with the        │
│ 'static_do_bindings' feature. Use at your own risk!                          │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── pwsh ────────────────────────────────────────────────────────────────────────
(Get-Content test.rs) `
    -replace [[regex]]::Escape("),);"), "));" `
| Set-Content test.rs

── pwsh ────────────────────────────────────────────────────────────────────────
cargo fmt --

── pwsh ────────────────────────────────────────────────────────────────────────
cargo build --release

╭─[ 11.42s - stdout ]──────────────────────────────────────────────────────────╮
│    Compiling linux-raw-sys v0.4.13                                    │
│    Compiling syn v2.0.55                                              │
│    Compiling num-traits v0.2.18                                       │
│    Compiling lazy_static v1.4.0                                       │
│    Compiling rand_chacha v0.3.1                                       │
│    Compiling rustix v0.38.32                                          │
│    Compiling libm v0.2.8                                              │
│    Compiling wait-timeout v0.2.0                                      │
│    Compiling bit-vec v0.6.3                                           │
│    Compiling quick-error v1.2.3                                       │
│    Compiling bit-set v0.5.3                                           │
│    Compiling rand v0.8.5                                              │
│    Compiling tempfile v3.10.1                                         │
│    Compiling sharded-slab v0.1.7                                      │
│    Compiling rusty-fork v0.3.0                                        │
│    Compiling rand_xorshift v0.3.0                                     │
│    Compiling memchr v2.7.2                                            │
│    Compiling unarray v0.1.4                                           │
│    Compiling tracing-subscriber v0.3.18                               │
│    Compiling proptest v1.4.0                                          │
│    Compiling nom v7.1.3                                               │
│    Compiling fable_library_rust v0.1.0                                  │
│ (/home/runner/work/polyglot/polyglot/lib/rust/fable/fable_modules/fable-libr │
│ ary-rust)                                                                  │
│    Compiling thiserror-impl v1.0.58                                   │
│    Compiling tracing-attributes v0.1.27                               │
│    Compiling thiserror v1.0.58                                        │
│    Compiling tracing v0.1.40                                          │
│    Compiling spiral_temp_test v0.0.1                                    │
│ (/home/runner/work/polyglot/polyglot/apps/spiral/temp/test)                │
│ warning: the item `any` is imported redundantly                       │
│   --> apps/spiral/temp/test/./main.rs:11:27                           │
│    |                                                                  │
│ 11 | use proptest::arbitrary::{any, Arbitrary};                       │
│    |                           ^^^                                    │
│ 12 | use proptest::prelude::*;                                        │
│    |     -------------------- the item `any` is already imported here │
│    |                                                                  │
│    = note: `#[warn(unused_imports)]` on by default                    │
│                                                                       │
│ warning: the item `Arbitrary` is imported redundantly                 │
│   --> apps/spiral/temp/test/./main.rs:11:32                           │
│    |                                                                  │
│ 11 | use proptest::arbitrary::{any, Arbitrary};                       │
│    |                                ^^^^^^^^^                         │
│ 12 | use proptest::prelude::*;                                        │
│    |     -------------------- the item `Arbitrary` is already imported  │
│ here                                                                       │
│                                                                       │
│ warning: unused import: `info`                                        │
│    --> apps/spiral/temp/test/./main.rs:190:15                         │
│     |                                                                 │
│ 190 | use tracing::{info, Level};                                     │
│     |               ^^^^                                              │
│                                                                       │
│ warning: associated items `new`, `add_item`, and `remove_item` are      │
│ never used                                                                 │
│   --> apps/spiral/temp/test/./main.rs:46:8                            │
│    |                                                                  │
│ 45 | impl Cart {                                                      │
│    | --------- associated items in this implementation                │
│ 46 |     fn new() -> Cart {                                           │
│    |        ^^^                                                       │
│ ...                                                                   │
│ 50 |     fn add_item(&mut self, item: Item) {                         │
│    |        ^^^^^^^^                                                  │
│ ...                                                                   │
│ 56 |     fn remove_item(&mut self, item: &Item) {                     │
│    |        ^^^^^^^^^^^                                               │
│    |                                                                  │
│    = note: `#[warn(dead_code)]` on by default                         │
│                                                                       │
│ warning: function `parse_comment` is never used                       │
│    --> apps/spiral/temp/test/./main.rs:124:4                          │
│     |                                                                 │
│ 124 | fn parse_comment(input: &str) -> IResult<&str, SpiralToken> {   │
│     |    ^^^^^^^^^^^^^                                                │
│                                                                       │
│ warning: function `parse_string` is never used                        │
│    --> apps/spiral/temp/test/./main.rs:130:4                          │
│     |                                                                 │
│ 130 | fn parse_string(input: &str) -> IResult<&str, SpiralToken> {    │
│     |    ^^^^^^^^^^^^                                                 │
│                                                                       │
│ warning: function `parse_identifier` is never used                    │
│    --> apps/spiral/temp/test/./main.rs:145:4                          │
│     |                                                                 │
│ 145 | fn parse_identifier(input: &str) -> IResult<&str, SpiralToken> {38;5;2m│
│ 0m                                                                           │
│     |    ^^^^^^^^^^^^^^^^                                             │
│                                                                       │
│ warning: function `parse_integer` is never used                       │
│    --> apps/spiral/temp/test/./main.rs:157:4                          │
│     |                                                                 │
│ 157 | fn parse_integer(input: &str) -> IResult<&str, SpiralToken> {   │
│     |    ^^^^^^^^^^^^^                                                │
│                                                                       │
│ warning: function `parse_operator` is never used                      │
│    --> apps/spiral/temp/test/./main.rs:165:4                          │
│     |                                                                 │
│ 165 | fn parse_operator(input: &str) -> IResult<&str, SpiralToken> {  │
│     |    ^^^^^^^^^^^^^^                                               │
│                                                                       │
│ warning: function `parse_token` is never used                         │
│    --> apps/spiral/temp/test/./main.rs:170:4                          │
│     |                                                                 │
│ 170 | fn parse_token(input: &str) -> IResult<&str, SpiralToken> {     │
│     |    ^^^^^^^^^^^                                                  │
│                                                                       │
│ warning: function `format_token` is never used                        │
│    --> apps/spiral/temp/test/./main.rs:180:4                          │
│     |                                                                 │
│ 180 | fn format_token(token: &SpiralToken) -> String {                │
│     |    ^^^^^^^^^^^^                                                 │
│                                                                       │
│ warning: function `parse_expression` is never used                    │
│    --> apps/spiral/temp/test/./main.rs:213:4                          │
│     |                                                                 │
│ 213 | fn parse_expression(input: &str) -> IResult<&str, SpiralToken> {38;5;2m│
│ 0m                                                                           │
│     |    ^^^^^^^^^^^^^^^^                                             │
│                                                                       │
│ warning: `spiral_temp_test` (bin "spiral_temp_test") generated 12       │
│ warnings (run `cargo fix --bin "spiral_temp_test"` to apply 1 suggestion)  │
│     Finished `release` profile [optimized] target(s) in 11.36s        │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── pwsh ────────────────────────────────────────────────────────────────────────
$env:RUST_LOG="info"
{ cargo test --release } | Invoke-Block

╭─[ 17.63s - stdout ]──────────────────────────────────────────────────────────╮
│    Compiling once_cell v1.19.0                                        │
│    Compiling bitflags v2.5.0                                          │
│    Compiling linux-raw-sys v0.4.13                                    │
│    Compiling fastrand v2.0.2                                          │
│    Compiling tracing-core v0.1.32                                     │
│    Compiling wait-timeout v0.2.0                                      │
│    Compiling fnv v1.0.7                                               │
│    Compiling rustix v0.38.32                                          │
│    Compiling overload v0.1.1                                          │
│    Compiling bit-vec v0.6.3                                           │
│    Compiling quick-error v1.2.3                                       │
│    Compiling log v0.4.21                                              │
│    Compiling bit-set v0.5.3                                           │
│    Compiling tracing-log v0.2.0                                       │
│    Compiling nu-ansi-term v0.46.0                                     │
│    Compiling num-traits v0.2.18                                       │
│    Compiling rand v0.8.5                                              │
│    Compiling sharded-slab v0.1.7                                      │
│    Compiling thread_local v1.1.8                                      │
│    Compiling rand_xorshift v0.3.0                                     │
│    Compiling memchr v2.7.2                                            │
│    Compiling minimal-lexical v0.2.1                                   │
│    Compiling pin-project-lite v0.2.13                                 │
│    Compiling unarray v0.1.4                                           │
│    Compiling regex-syntax v0.8.3                                      │
│    Compiling tracing-subscriber v0.3.18                               │
│    Compiling tempfile v3.10.1                                         │
│    Compiling nom v7.1.3                                               │
│    Compiling rusty-fork v0.3.0                                        │
│    Compiling tracing v0.1.40                                          │
│    Compiling proptest v1.4.0                                          │
│    Compiling thiserror v1.0.58                                        │
│    Compiling fable_library_rust v0.1.0                                  │
│ (/home/runner/work/polyglot/polyglot/lib/rust/fable/fable_modules/fable-libr │
│ ary-rust)                                                                  │
│    Compiling spiral_temp_test v0.0.1                                    │
│ (/home/runner/work/polyglot/polyglot/apps/spiral/temp/test)                │
│ warning: the item `any` is imported redundantly                       │
│   --> apps/spiral/temp/test/./main.rs:11:27                           │
│    |                                                                  │
│ 11 | use proptest::arbitrary::{any, Arbitrary};                       │
│    |                           ^^^                                    │
│ 12 | use proptest::prelude::*;                                        │
│    |     -------------------- the item `any` is already imported here │
│    |                                                                  │
│    = note: `#[warn(unused_imports)]` on by default                    │
│                                                                       │
│ warning: the item `Arbitrary` is imported redundantly                 │
│   --> apps/spiral/temp/test/./main.rs:11:32                           │
│    |                                                                  │
│ 11 | use proptest::arbitrary::{any, Arbitrary};                       │
│    |                                ^^^^^^^^^                         │
│ 12 | use proptest::prelude::*;                                        │
│    |     -------------------- the item `Arbitrary` is already imported  │
│ here                                                                       │
│                                                                       │
│ warning: `spiral_temp_test` (bin "spiral_temp_test" test) generated 2   │
│ warnings                                                                   │
│     Finished `release` profile [optimized] target(s) in 17.49s        │
│      Running unittests main.rs                                          │
│ (/home/runner/work/polyglot/polyglot/target/release/deps/spiral_temp_test-cf │
│ 66df9a4b9305e5)                                                            │
│                                                                              │
│ running 3 tests                                                              │
│ test test_parse_number ... ok                                                │
│ 2024-03-29T22:16:25.300252Z  INFO spiral_temp_test:         │
│ input=StringLiteral("`/-5f*+].){R_K&%T jvo*:!ce+$")                          │
│ 2024-03-29T22:16:25.300317Z  INFO spiral_temp_test:         │
│ input=Identifier("C")                                                        │
│ 2024-03-29T22:16:25.300372Z  INFO spiral_temp_test:         │
│ input=StringLiteral("{=P5q/B:(EL<& #xu>.<R4kr?ua`0")                         │
│ 2024-03-29T22:16:25.300407Z  INFO spiral_temp_test:         │
│ input=Comment("g~D-T,j`'[1[=vJX=518`%.<w")                                   │
│ 2024-03-29T22:16:25.300456Z  INFO spiral_temp_test:         │
│ input=Operator("(")                                                          │
│ 2024-03-29T22:16:25.300484Z  INFO spiral_temp_test:         │
│ input=StringLiteral("fKY=?K*8=['81")                                         │
│ 2024-03-29T22:16:25.300510Z  INFO spiral_temp_test:         │
│ input=Operator("/")                                                          │
│ 2024-03-29T22:16:25.300544Z  INFO spiral_temp_test:         │
│ input=Integer(-4626917157719359538)                                          │
│ 2024-03-29T22:16:25.300567Z  INFO spiral_temp_test:         │
│ input=StringLiteral("")                                                      │
│ 2024-03-29T22:16:25.300614Z  INFO spiral_temp_test:         │
│ input=StringLiteral("]S/Bv=l)={DK'4HcvGO,LNKwusNU0I")                        │
│ 2024-03-29T22:16:25.300663Z  INFO spiral_temp_test:         │
│ input=StringLiteral("I1JX")                                                  │
│ 2024-03-29T22:16:25.300691Z  INFO spiral_temp_test:         │
│ input=Comment(":d?bG:'qdl=")                                                 │
│ 2024-03-29T22:16:25.300723Z  INFO spiral_temp_test:         │
│ input=StringLiteral("wllq+0.<>{%y{=B3MJk/eNMX?'']A")                         │
│ 2024-03-29T22:16:25.300765Z  INFO spiral_temp_test:         │
│ input=StringLiteral("E5[|4R@.:I>e]367g")                                     │
│ 2024-03-29T22:16:25.300792Z  INFO spiral_temp_test:         │
│ input=StringLiteral("td<`y2):AV")                                            │
│ 2024-03-29T22:16:25.300828Z  INFO spiral_temp_test:         │
│ input=Integer(5231642606818845737)                                           │
│ 2024-03-29T22:16:25.300856Z  INFO spiral_temp_test:         │
│ input=StringLiteral("ZO`Pp&#3QI=&%ujG$/?6zv")                                │
│ 2024-03-29T22:16:25.300882Z  INFO spiral_temp_test:         │
│ input=Operator(")")                                                          │
│ 2024-03-29T22:16:25.300918Z  INFO spiral_temp_test:         │
│ input=Integer(8226411254168653666)                                           │
│ 2024-03-29T22:16:25.300941Z  INFO spiral_temp_test:         │
│ input=Operator("/")                                                          │
│ 2024-03-29T22:16:25.300963Z  INFO spiral_temp_test:         │
│ input=Identifier("m")                                                        │
│ 2024-03-29T22:16:25.301011Z  INFO spiral_temp_test:         │
│ input=Identifier("K3KXt8VEPxiJPc8gXTU5stxbU96mw")                            │
│ 2024-03-29T22:16:25.301035Z  INFO spiral_temp_test:         │
│ input=Integer(5558232393995120157)                                           │
│ 2024-03-29T22:16:25.301072Z  INFO spiral_temp_test:         │
│ input=Operator("-")                                                          │
│ 2024-03-29T22:16:25.301095Z  INFO spiral_temp_test:         │
│ input=Operator("/")                                                          │
│ 2024-03-29T22:16:25.301118Z  INFO spiral_temp_test:         │
│ input=Operator("/")                                                          │
│ 2024-03-29T22:16:25.301155Z  INFO spiral_temp_test:         │
│ input=StringLiteral("D%_y")                                                  │
│ 2024-03-29T22:16:25.301184Z  INFO spiral_temp_test:         │
│ input=Comment("[\\=jDn*'ZU:dV?\\f.j")                                        │
│ 2024-03-29T22:16:25.301228Z  INFO spiral_temp_test:         │
│ input=Identifier("u4cLQizeIReRV7WEY0961y49")                                 │
│ 2024-03-29T22:16:25.301254Z  INFO spiral_temp_test:         │
│ input=StringLiteral("UZI/s&<.C~")                                            │
│ 2024-03-29T22:16:25.301283Z  INFO spiral_temp_test:         │
│ input=Identifier("GvhTFd1NUdpg76AQ079OEey")                                  │
│ 2024-03-29T22:16:25.301323Z  INFO spiral_temp_test:         │
│ input=StringLiteral("{8 =:l>CtsFn")                                          │
│ 2024-03-29T22:16:25.301349Z  INFO spiral_temp_test:         │
│ input=Comment("=P''7no?*")                                                   │
│ 2024-03-29T22:16:25.301386Z  INFO spiral_temp_test:         │
│ input=Operator("-")                                                          │
│ 2024-03-29T22:16:25.301407Z  INFO spiral_temp_test:         │
│ input=Integer(822634240815930679)                                            │
│ 2024-03-29T22:16:25.301430Z  INFO spiral_temp_test:         │
│ input=Operator("-")                                                          │
│ 2024-03-29T22:16:25.301469Z  INFO spiral_temp_test:         │
│ input=Identifier("t15YTUAXaN086Pv")                                          │
│ 2024-03-29T22:16:25.301491Z  INFO spiral_temp_test:         │
│ input=Integer(3786753504121512407)                                           │
│ 2024-03-29T22:16:25.301515Z  INFO spiral_temp_test:         │
│ input=Operator("(")                                                          │
│ 2024-03-29T22:16:25.301552Z  INFO spiral_temp_test:         │
│ input=Identifier("rNUj98pw42")                                               │
│ 2024-03-29T22:16:25.301574Z  INFO spiral_temp_test:         │
│ input=Integer(-8105692039863381840)                                          │
│ 2024-03-29T22:16:25.301596Z  INFO spiral_temp_test:         │
│ input=Operator("+")                                                          │
│ 2024-03-29T22:16:25.301630Z  INFO spiral_temp_test:         │
│ input=Integer(1664650383064260608)                                           │
│ 2024-03-29T22:16:25.301652Z  INFO spiral_temp_test:         │
│ input=Operator("*")                                                          │
│ 2024-03-29T22:16:25.301675Z  INFO spiral_temp_test:         │
│ input=Operator("*")                                                          │
│ 2024-03-29T22:16:25.301718Z  INFO spiral_temp_test:         │
│ input=StringLiteral("O.Ks;$l@O*^d,_*fIP43IpqA4'")                            │
│ 2024-03-29T22:16:25.301743Z  INFO spiral_temp_test:         │
│ input=Identifier("M3")                                                       │
│ 2024-03-29T22:16:25.301765Z  INFO spiral_temp_test:         │
│ input=Operator("*")                                                          │
│ 2024-03-29T22:16:25.301800Z  INFO spiral_temp_test:         │
│ input=Comment("")                                                            │
│ 2024-03-29T22:16:25.301824Z  INFO spiral_temp_test:         │
│ input=Operator(")")                                                          │
│ 2024-03-29T22:16:25.301847Z  INFO spiral_temp_test:         │
│ input=Comment("Ixc")                                                         │
│ 2024-03-29T22:16:25.301882Z  INFO spiral_temp_test:         │
│ input=StringLiteral("S%D")                                                   │
│ 2024-03-29T22:16:25.301910Z  INFO spiral_temp_test:         │
│ input=Comment("rL:oW%=,2M &fzZk")                                            │
│ 2024-03-29T22:16:25.301934Z  INFO spiral_temp_test:         │
│ input=Identifier("CdfoE62")                                                  │
│ 2024-03-29T22:16:25.301980Z  INFO spiral_temp_test:         │
│ input=Identifier("Q05hZNzBF9Em8HFy4UxXwQ0v6o8B2iq1")                         │
│ 2024-03-29T22:16:25.302012Z  INFO spiral_temp_test:         │
│ input=StringLiteral("g.i//W%3?-.w`dI_{&ZAs=4y6,$")                           │
│ 2024-03-29T22:16:25.302052Z  INFO spiral_temp_test:         │
│ input=Comment("`Y^q9cM{ue")                                                  │
│ 2024-03-29T22:16:25.302077Z  INFO spiral_temp_test:         │
│ input=Operator("=")                                                          │
│ 2024-03-29T22:16:25.302115Z  INFO spiral_temp_test:         │
│ input=Operator(")")                                                          │
│ 2024-03-29T22:16:25.302138Z  INFO spiral_temp_test:         │
│ input=Identifier("fE")                                                       │
│ 2024-03-29T22:16:25.302164Z  INFO spiral_temp_test:         │
│ input=Identifier("Qaoia6V82Wltsg9w")                                         │
│ 2024-03-29T22:16:25.302200Z  INFO spiral_temp_test:         │
│ input=Identifier("GX")                                                       │
│ 2024-03-29T22:16:25.302221Z  INFO spiral_temp_test:         │
│ input=Integer(-8788409077273009979)                                          │
│ 2024-03-29T22:16:25.302242Z  INFO spiral_temp_test:         │
│ input=Integer(7347914275470461061)                                           │
│ 2024-03-29T22:16:25.302278Z  INFO spiral_temp_test:         │
│ input=Operator("-")                                                          │
│ 2024-03-29T22:16:25.302302Z  INFO spiral_temp_test:         │
│ input=StringLiteral("?$[f15Y")                                               │
│ 2024-03-29T22:16:25.302325Z  INFO spiral_temp_test:         │
│ input=Integer(26444578638065922)                                             │
│ 2024-03-29T22:16:25.302360Z  INFO spiral_temp_test:         │
│ input=Integer(8786024787671388468)                                           │
│ 2024-03-29T22:16:25.302381Z  INFO spiral_temp_test:         │
│ input=Integer(-2636381428748363768)                                          │
│ 2024-03-29T22:16:25.302408Z  INFO spiral_temp_test:         │
│ input=Comment("8b\\\\X/zRk2='9/<'")                                          │
│ 2024-03-29T22:16:25.302446Z  INFO spiral_temp_test:         │
│ input=StringLiteral("40[[W")                                                 │
│ 2024-03-29T22:16:25.302470Z  INFO spiral_temp_test:         │
│ input=Operator("/")                                                          │
│ 2024-03-29T22:16:25.302491Z  INFO spiral_temp_test:         │
│ input=Integer(9050300424277047660)                                           │
│ 2024-03-29T22:16:25.302528Z  INFO spiral_temp_test:         │
│ input=Comment("VE$:")                                                        │
│ 2024-03-29T22:16:25.302559Z  INFO spiral_temp_test:         │
│ input=Comment("1vh<rrN*;'&/KH-e`j29'D(&4JCs8$\"_")                           │
│ 2024-03-29T22:16:25.302605Z  INFO spiral_temp_test:         │
│ input=Identifier("vLn3f2vRAmjHJN5DMQV53v2SYb2rF")                            │
│ 2024-03-29T22:16:25.302632Z  INFO spiral_temp_test:         │
│ input=StringLiteral("M7'p<?!R4")                                             │
│ 2024-03-29T22:16:25.302657Z  INFO spiral_temp_test:         │
│ input=Operator(")")                                                          │
│ 2024-03-29T22:16:25.302690Z  INFO spiral_temp_test:         │
│ input=Integer(-4405179787789621954)                                          │
│ 2024-03-29T22:16:25.302711Z  INFO spiral_temp_test:         │
│ input=Integer(-1181064369784429162)                                          │
│ 2024-03-29T22:16:25.302731Z  INFO spiral_temp_test:         │
│ input=Integer(-5374121078399196289)                                          │
│ 2024-03-29T22:16:25.302766Z  INFO spiral_temp_test:         │
│ input=Integer(-5515697177889453990)                                          │
│ 2024-03-29T22:16:25.302795Z  INFO spiral_temp_test:         │
│ input=Comment("'.N6cc>%lT}lo1`?#m\"G-y")                                     │
│ 2024-03-29T22:16:25.302828Z  INFO spiral_temp_test:         │
│ input=Comment("&4|&kJ{=\"cel|G`*\\qG$<*\\gI'<@ 0l.")                         │
│ 2024-03-29T22:16:25.302874Z  INFO spiral_temp_test:         │
│ input=StringLiteral("oMv//h,WhQo=:e=fc_RoW")                                 │
│ 2024-03-29T22:16:25.302898Z  INFO spiral_temp_test:         │
│ input=Integer(2235287101748987647)                                           │
│ 2024-03-29T22:16:25.302928Z  INFO spiral_temp_test:         │
│ input=Comment("Z]mX?_.M;3=<w==\")'K/,%5%\"@f$4")                             │
│ 2024-03-29T22:16:25.302959Z  INFO spiral_temp_test:         │
│ input=Comment("'w8R)~<GP'v6`62Agl==*F5d4p")                                  │
│ 2024-03-29T22:16:25.303003Z  INFO spiral_temp_test:         │
│ input=StringLiteral("J;[ !^:@'}BdK{6YV..")                                   │
│ 2024-03-29T22:16:25.303031Z  INFO spiral_temp_test:         │
│ input=Identifier("R104Om57VD80")                                             │
│ 2024-03-29T22:16:25.303060Z  INFO spiral_temp_test:         │
│ input=Identifier("wrul7Mn96nLqiT299sPS98x3fS0")                              │
│ 2024-03-29T22:16:25.303090Z  INFO spiral_temp_test:         │
│ input=Comment("Z=`0e6^1\"\"=t$o<dH ")                                        │
│ 2024-03-29T22:16:25.303114Z  INFO spiral_temp_test:         │
│ input=Integer(-2546812103301196922)                                          │
│ 2024-03-29T22:16:25.303140Z  INFO spiral_temp_test:         │
│ input=Identifier("ph6M7bIfoIr")                                              │
│ 2024-03-29T22:16:25.303168Z  INFO spiral_temp_test:         │
│ input=Comment("a**S]M=cy1{&v\\r<")                                           │
│ 2024-03-29T22:16:25.303195Z  INFO spiral_temp_test:         │
│ input=StringLiteral("d1C.ZN:{<")                                             │
│ 2024-03-29T22:16:25.303232Z  INFO spiral_temp_test:         │
│ input=Identifier("a1L")                                                      │
│ 2024-03-29T22:16:25.303255Z  INFO spiral_temp_test:         │
│ input=Integer(-6950600559331775124)                                          │
│ 2024-03-29T22:16:25.303283Z  INFO spiral_temp_test:         │
│ input=Comment("2P]9<U(+]\\pF#`H[gdr")                                        │
│ 2024-03-29T22:16:25.303312Z  INFO spiral_temp_test:         │
│ input=Comment("JFF&fg4:cv`\"xtZc6f")                                         │
│ 2024-03-29T22:16:25.303338Z  INFO spiral_temp_test:         │
│ input=Operator("/")                                                          │
│ 2024-03-29T22:16:25.303363Z  INFO spiral_temp_test:         │
│ input=StringLiteral("ZjlK0^")                                                │
│ 2024-03-29T22:16:25.303395Z  INFO spiral_temp_test:         │
│ input=Identifier("KRREkPWJLB16Z09c48Yyx4HmvZQfr9s1")                         │
│ 2024-03-29T22:16:25.303418Z  INFO spiral_temp_test:         │
│ input=Integer(-363802649222728805)                                           │
│ 2024-03-29T22:16:25.303446Z  INFO spiral_temp_test:         │
│ input=Identifier("VTHok8sSyBZ8LzJ9zVqxCh35")                                 │
│ 2024-03-29T22:16:25.303470Z  INFO spiral_temp_test:         │
│ input=Identifier("N")                                                        │
│ 2024-03-29T22:16:25.303492Z  INFO spiral_temp_test:         │
│ input=Integer(4931321444363280599)                                           │
│ 2024-03-29T22:16:25.303515Z  INFO spiral_temp_test:         │
│ input=Operator("*")                                                          │
│ 2024-03-29T22:16:25.303546Z  INFO spiral_temp_test:         │
│ input=Comment("sq'd:i./c0&$?U9`z9);$`#")                                     │
│ 2024-03-29T22:16:25.303573Z  INFO spiral_temp_test:         │
│ input=Identifier("I179KE")                                                   │
│ 2024-03-29T22:16:25.303613Z  INFO spiral_temp_test:         │
│ input=Identifier("iKaU6d")                                                   │
│ 2024-03-29T22:16:25.303642Z  INFO spiral_temp_test:         │
│ input=Identifier("JENy1KZ40s2t1f2hdGFBBNVhl")                                │
│ 2024-03-29T22:16:25.303685Z  INFO spiral_temp_test:         │
│ input=Comment("f/=8X/:#{&n=<':SA")                                           │
│ 2024-03-29T22:16:25.303711Z  INFO spiral_temp_test:         │
│ input=Comment("._t3M u")                                                     │
│ 2024-03-29T22:16:25.303740Z  INFO spiral_temp_test:         │
│ input=Identifier("Y5Ki1GikogG2BxdCUi930s")                                   │
│ 2024-03-29T22:16:25.303765Z  INFO spiral_temp_test:         │
│ input=Operator("(")                                                          │
│ 2024-03-29T22:16:25.303790Z  INFO spiral_temp_test:         │
│ input=Operator(")")                                                          │
│ 2024-03-29T22:16:25.303818Z  INFO spiral_temp_test:         │
│ input=Comment("Pj=S]c\"4;0S?HX\"0a")                                         │
│ 2024-03-29T22:16:25.303843Z  INFO spiral_temp_test:         │
│ input=StringLiteral("'$w")                                                   │
│ 2024-03-29T22:16:25.303868Z  INFO spiral_temp_test:         │
│ input=Operator(")")                                                          │
│ 2024-03-29T22:16:25.303896Z  INFO spiral_temp_test:         │
│ input=Identifier("U11SLuaZo0XgP86nwV4h3VR")                                  │
│ 2024-03-29T22:16:25.303921Z  INFO spiral_temp_test:         │
│ input=Operator("=")                                                          │
│ 2024-03-29T22:16:25.303945Z  INFO spiral_temp_test:         │
│ input=Identifier("tJd4ix")                                                   │
│ 2024-03-29T22:16:25.303968Z  INFO spiral_temp_test:         │
│ input=Operator("-")                                                          │
│ 2024-03-29T22:16:25.303989Z  INFO spiral_temp_test:         │
│ input=Integer(-1457985949567673484)                                          │
│ 2024-03-29T22:16:25.304009Z  INFO spiral_temp_test:         │
│ input=Integer(-3735239451539659623)                                          │
│ 2024-03-29T22:16:25.304038Z  INFO spiral_temp_test:         │
│ input=Comment("(n>i+)5Oa/Et:JL{'1:t")                                        │
│ 2024-03-29T22:16:25.304064Z  INFO spiral_temp_test:         │
│ input=Operator("=")                                                          │
│ 2024-03-29T22:16:25.304089Z  INFO spiral_temp_test:         │
│ input=Operator("(")                                                          │
│ 2024-03-29T22:16:25.304112Z  INFO spiral_temp_test:         │
│ input=Operator("=")                                                          │
│ 2024-03-29T22:16:25.304133Z  INFO spiral_temp_test:         │
│ input=Integer(4360785862622762844)                                           │
│ 2024-03-29T22:16:25.304156Z  INFO spiral_temp_test:         │
│ input=Identifier("uS49")                                                     │
│ 2024-03-29T22:16:25.304181Z  INFO spiral_temp_test:         │
│ input=StringLiteral("Dq`Q'VZ?e/")                                            │
│ 2024-03-29T22:16:25.304204Z  INFO spiral_temp_test:         │
│ input=Integer(3173314187171544509)                                           │
│ 2024-03-29T22:16:25.304234Z  INFO spiral_temp_test:         │
│ input=Comment("^R[4sD$h?I=*=<q&($\\BVcx9.9p'V`")                             │
│ 2024-03-29T22:16:25.304265Z  INFO spiral_temp_test:         │
│ input=Comment("O8p#!I&`mXs%&`xOk=\"=$1`_06@")                                │
│ 2024-03-29T22:16:25.304290Z  INFO spiral_temp_test:         │
│ input=Identifier("pbA30yK")                                                  │
│ 2024-03-29T22:16:25.304315Z  INFO spiral_temp_test:         │
│ input=StringLiteral("XK|)/&'")                                               │
│ 2024-03-29T22:16:25.304344Z  INFO spiral_temp_test:         │
│ input=Comment("mBNY`\"MI_Ysv$\"(%\\{&.")                                     │
│ 2024-03-29T22:16:25.304370Z  INFO spiral_temp_test:         │
│ input=Operator(")")                                                          │
│ 2024-03-29T22:16:25.304394Z  INFO spiral_temp_test:         │
│ input=Operator("/")                                                          │
│ 2024-03-29T22:16:25.304422Z  INFO spiral_temp_test:         │
│ input=Comment("$d\\Fq%~]{.V$z'A*$\\;2O5")                                    │
│ 2024-03-29T22:16:25.304450Z  INFO spiral_temp_test:         │
│ input=Comment("/O?&FMo4\\<tUCN")                                             │
│ 2024-03-29T22:16:25.304476Z  INFO spiral_temp_test:         │
│ input=Comment("`^ju+?k$l")                                                   │
│ 2024-03-29T22:16:25.304499Z  INFO spiral_temp_test:         │
│ input=Operator("/")                                                          │
│ 2024-03-29T22:16:25.304522Z  INFO spiral_temp_test:         │
│ input=Operator("-")                                                          │
│ 2024-03-29T22:16:25.304551Z  INFO spiral_temp_test:         │
│ input=Identifier("TN5wQF8DHCdXCYHIWlfabuKsbi")                               │
│ 2024-03-29T22:16:25.304578Z  INFO spiral_temp_test:         │
│ input=Identifier("KNRMJ43l5v4cXn6")                                          │
│ 2024-03-29T22:16:25.304600Z  INFO spiral_temp_test:         │
│ input=Integer(7536803219146755207)                                           │
│ 2024-03-29T22:16:25.304623Z  INFO spiral_temp_test:         │
│ input=Operator("(")                                                          │
│ 2024-03-29T22:16:25.304658Z  INFO spiral_temp_test:         │
│ input=Integer(-7645989022549915375)                                          │
│ 2024-03-29T22:16:25.304689Z  INFO spiral_temp_test:         │
│ input=Comment("<=,z&<WO=4.k`MF.&\"ev97-")                                    │
│ 2024-03-29T22:16:25.304712Z  INFO spiral_temp_test:         │
│ input=Integer(-97571642128861145)                                            │
│ 2024-03-29T22:16:25.304733Z  INFO spiral_temp_test:         │
│ input=Integer(-1085755182264252342)                                          │
│ 2024-03-29T22:16:25.304754Z  INFO spiral_temp_test:         │
│ input=Integer(-134668000056549428)                                           │
│ 2024-03-29T22:16:25.304775Z  INFO spiral_temp_test:         │
│ input=Integer(7118743958242476661)                                           │
│ 2024-03-29T22:16:25.304798Z  INFO spiral_temp_test:         │
│ input=Identifier("diTqXXr")                                                  │
│ 2024-03-29T22:16:25.304830Z  INFO spiral_temp_test:         │
│ input=StringLiteral("BT,`>*=ug1+1;[Q<:K's&2{?.)fg,")                         │
│ 2024-03-29T22:16:25.304854Z  INFO spiral_temp_test:         │
│ input=Integer(-5590108837673119377)                                          │
│ 2024-03-29T22:16:25.304880Z  INFO spiral_temp_test:         │
│ input=StringLiteral("RuG`R}vuK$>&P=12")                                      │
│ 2024-03-29T22:16:25.304905Z  INFO spiral_temp_test:         │
│ input=Operator("*")                                                          │
│ 2024-03-29T22:16:25.304929Z  INFO spiral_temp_test:         │
│ input=Comment("FH.L")                                                        │
│ 2024-03-29T22:16:25.304952Z  INFO spiral_temp_test:         │
│ input=Comment("*^")                                                          │
│ 2024-03-29T22:16:25.304975Z  INFO spiral_temp_test:         │
│ input=Operator("*")                                                          │
│ 2024-03-29T22:16:25.304996Z  INFO spiral_temp_test:         │
│ input=Integer(-1377029705470758375)                                          │
│ 2024-03-29T22:16:25.305024Z  INFO spiral_temp_test:         │
│ input=StringLiteral("UkZ`` ::$?}.oX1T]*z5A.`^x")                             │
│ 2024-03-29T22:16:25.305051Z  INFO spiral_temp_test:         │
│ input=Comment("tF.7b.\\@*t")                                                 │
│ 2024-03-29T22:16:25.305075Z  INFO spiral_temp_test:         │
│ input=Operator("/")                                                          │
│ 2024-03-29T22:16:25.305100Z  INFO spiral_temp_test:         │
│ input=Comment(")-Vw.")                                                       │
│ 2024-03-29T22:16:25.305122Z  INFO spiral_temp_test:         │
│ input=Operator("+")                                                          │
│ 2024-03-29T22:16:25.305143Z  INFO spiral_temp_test:         │
│ input=Integer(-3982654217796958597)                                          │
│ 2024-03-29T22:16:25.305165Z  INFO spiral_temp_test:         │
│ input=Comment("")                                                            │
│ 2024-03-29T22:16:25.305193Z  INFO spiral_temp_test:         │
│ input=Comment("F/siy:<<\\%X< \\h{x%E.*&^@/")                                 │
│ 2024-03-29T22:16:25.305216Z  INFO spiral_temp_test:         │
│ input=Integer(679821846758212017)                                            │
│ 2024-03-29T22:16:25.305240Z  INFO spiral_temp_test:         │
│ input=Operator(")")                                                          │
│ 2024-03-29T22:16:25.305266Z  INFO spiral_temp_test:         │
│ input=StringLiteral("-%(n.uJ.KHr3N5AOq")                                     │
│ 2024-03-29T22:16:25.305291Z  INFO spiral_temp_test:         │
│ input=Operator("=")                                                          │
│ 2024-03-29T22:16:25.305312Z  INFO spiral_temp_test:         │
│ input=Integer(-7750462185911993338)                                          │
│ 2024-03-29T22:16:25.305334Z  INFO spiral_temp_test:         │
│ input=Operator("*")                                                          │
│ 2024-03-29T22:16:25.305356Z  INFO spiral_temp_test:         │
│ input=Operator("/")                                                          │
│ 2024-03-29T22:16:25.305385Z  INFO spiral_temp_test:         │
│ input=StringLiteral("`rL<8Bc*zkD${gyl%pQ&O=_")                               │
│ 2024-03-29T22:16:25.305417Z  INFO spiral_temp_test:         │
│ input=Comment("&O\\}mgHltaBr{v\\/`%8\\&|`'UDT~p")                            │
│ 2024-03-29T22:16:25.305446Z  INFO spiral_temp_test:         │
│ input=StringLiteral("~1kf$.:h/?.N1l^5vu&-")                                  │
│ 2024-03-29T22:16:25.305471Z  INFO spiral_temp_test:         │
│ input=Operator("-")                                                          │
│ 2024-03-29T22:16:25.305499Z  INFO spiral_temp_test:         │
│ input=Identifier("szAvC72szh27RHJYgbN188")                                   │
│ 2024-03-29T22:16:25.305523Z  INFO spiral_temp_test:         │
│ input=Operator("-")                                                          │
│ 2024-03-29T22:16:25.305543Z  INFO spiral_temp_test:         │
│ input=Integer(6988487612477610724)                                           │
│ 2024-03-29T22:16:25.305572Z  INFO spiral_temp_test:         │
│ input=Comment("=O%:\\]\\2&F.h=:rf::Dj:`")                                    │
│ 2024-03-29T22:16:25.305602Z  INFO spiral_temp_test:         │
│ input=Comment("=.EQ?6<\\.rs'lZ|:L=4'Iq3\"M%)BtT<%")                          │
│ 2024-03-29T22:16:25.305631Z  INFO spiral_temp_test:         │
│ input=Identifier("q30vW4HlOZ9F3A1h8y")                                       │
│ 2024-03-29T22:16:25.305654Z  INFO spiral_temp_test:         │
│ input=Integer(-7080822687308871142)                                          │
│ 2024-03-29T22:16:25.305685Z  INFO spiral_temp_test:         │
│ input=StringLiteral(":vp2-i=^m$&Vpy$QJ''1=W=$Q`T7YbO&")                      │
│ 2024-03-29T22:16:25.305709Z  INFO spiral_temp_test:         │
│ input=Integer(-6880052380604208838)                                          │
│ 2024-03-29T22:16:25.305731Z  INFO spiral_temp_test:         │
│ input=Operator("-")                                                          │
│ 2024-03-29T22:16:25.305753Z  INFO spiral_temp_test:         │
│ input=StringLiteral("")                                                      │
│ 2024-03-29T22:16:25.305777Z  INFO spiral_temp_test:         │
│ input=Identifier("hOvdioMv1FOOu")                                            │
│ 2024-03-29T22:16:25.305803Z  INFO spiral_temp_test:         │
│ input=StringLiteral("A=H'3jb%")                                              │
│ 2024-03-29T22:16:25.305832Z  INFO spiral_temp_test:         │
│ input=Comment("P`h$\\5g`%n$>GIZ(J*s;")                                       │
│ 2024-03-29T22:16:25.305859Z  INFO spiral_temp_test:         │
│ input=Identifier("wbAVNIo8bpL7CF8Y8Eh3K")                                    │
│ 2024-03-29T22:16:25.305885Z  INFO spiral_temp_test:         │
│ input=Comment("=ZfA(%`-:\\pf")                                               │
│ 2024-03-29T22:16:25.306291Z  INFO spiral_temp_test:         │
│ input=StringLiteral("u&/$H~ =:%0=cbNM$")                                     │
│ 2024-03-29T22:16:25.306321Z  INFO spiral_temp_test:         │
│ input=Integer(-482998008211089345)                                           │
│ 2024-03-29T22:16:25.306351Z  INFO spiral_temp_test:         │
│ input=StringLiteral("^s-X$KmF)=")                                            │
│ 2024-03-29T22:16:25.306377Z  INFO spiral_temp_test:         │
│ input=Identifier("P8mREtt46U1")                                              │
│ 2024-03-29T22:16:25.306401Z  INFO spiral_temp_test:         │
│ input=Operator("=")                                                          │
│ 2024-03-29T22:16:25.306426Z  INFO spiral_temp_test:         │
│ input=Operator(")")                                                          │
│ 2024-03-29T22:16:25.306447Z  INFO spiral_temp_test:         │
│ input=Integer(-8317041352866757725)                                          │
│ 2024-03-29T22:16:25.306469Z  INFO spiral_temp_test:         │
│ input=Identifier("xWPgj")                                                    │
│ 2024-03-29T22:16:25.306500Z  INFO spiral_temp_test:         │
│ input=Comment("Y+<J>JPYili\"W+&.0<.AKt5qz_X*V7I")                            │
│ 2024-03-29T22:16:25.306530Z  INFO spiral_temp_test:         │
│ input=Comment("EI^MZ.\"*n1w#LJG.u*\"t1hNg9*")                                │
│ 2024-03-29T22:16:25.306553Z  INFO spiral_temp_test:         │
│ input=Integer(7357437491905691389)                                           │
│ 2024-03-29T22:16:25.306575Z  INFO spiral_temp_test:         │
│ input=Identifier("huRD")                                                     │
│ 2024-03-29T22:16:25.306597Z  INFO spiral_temp_test:         │
│ input=Integer(-4474984197496061998)                                          │
│ 2024-03-29T22:16:25.306621Z  INFO spiral_temp_test:         │
│ input=Identifier("aHqyf9zKT70h")                                             │
│ 2024-03-29T22:16:25.306643Z  INFO spiral_temp_test:         │
│ input=Integer(7358999502327528350)                                           │
│ 2024-03-29T22:16:25.306664Z  INFO spiral_temp_test:         │
│ input=Integer(1822914901084433200)                                           │
│ 2024-03-29T22:16:25.306687Z  INFO spiral_temp_test:         │
│ input=Identifier("AuL3")                                                     │
│ 2024-03-29T22:16:25.306716Z  INFO spiral_temp_test:         │
│ input=StringLiteral("p~i'6_7zxR5.*h[19C^$f.V(<=")                            │
│ 2024-03-29T22:16:25.306742Z  INFO spiral_temp_test:         │
│ input=StringLiteral("}=O-%")                                                 │
│ 2024-03-29T22:16:25.306764Z  INFO spiral_temp_test:         │
│ input=Identifier("cQY")                                                      │
│ 2024-03-29T22:16:25.306786Z  INFO spiral_temp_test:         │
│ input=Identifier("e9hg")                                                     │
│ 2024-03-29T22:16:25.306807Z  INFO spiral_temp_test:         │
│ input=Integer(3293247619329823781)                                           │
│ 2024-03-29T22:16:25.306829Z  INFO spiral_temp_test:         │
│ input=Operator("-")                                                          │
│ 2024-03-29T22:16:25.306854Z  INFO spiral_temp_test:         │
│ input=StringLiteral("7<$q(%?h!J<<")                                          │
│ 2024-03-29T22:16:25.306881Z  INFO spiral_temp_test:         │
│ input=Comment("RtZSN??Ot&{/?{U=")                                            │
│ 2024-03-29T22:16:25.306911Z  INFO spiral_temp_test:         │
│ input=Identifier("ZWqV6h84lj68vu494ZkW92u")                                  │
│ 2024-03-29T22:16:25.306937Z  INFO spiral_temp_test:         │
│ input=Identifier("spn3WH4w82")                                               │
│ 2024-03-29T22:16:25.306959Z  INFO spiral_temp_test:         │
│ input=Integer(-2352890200652868875)                                          │
│ 2024-03-29T22:16:25.306984Z  INFO spiral_temp_test:         │
│ input=StringLiteral("8=<W&<*`#HQu")                                          │
│ 2024-03-29T22:16:25.307011Z  INFO spiral_temp_test:         │
│ input=Identifier("mbv33gUfBKMmm")                                            │
│ 2024-03-29T22:16:25.307033Z  INFO spiral_temp_test:         │
│ input=Integer(5773715825725386052)                                           │
│ 2024-03-29T22:16:25.307056Z  INFO spiral_temp_test:         │
│ input=Comment("9")                                                           │
│ 2024-03-29T22:16:25.307079Z  INFO spiral_temp_test:         │
│ input=Identifier("HV5Oj")                                                    │
│ 2024-03-29T22:16:25.307106Z  INFO spiral_temp_test:         │
│ input=Comment("SGzZa&cpH6y`/5")                                              │
│ 2024-03-29T22:16:25.307131Z  INFO spiral_temp_test:         │
│ input=StringLiteral("c/d%i}O")                                               │
│ 2024-03-29T22:16:25.307163Z  INFO spiral_temp_test:         │
│ input=Comment("M^\\${/*>e=:p:yC5lg`f{{7=}``Zu")                              │
│ 2024-03-29T22:16:25.307199Z  INFO spiral_temp_test:         │
│ input=StringLiteral("/%nXIo}_5HM02#'$=_.An:H6")                              │
│ 2024-03-29T22:16:25.307231Z  INFO spiral_temp_test:         │
│ input=Comment("O9l6yX=%r=*$I")                                               │
│ 2024-03-29T22:16:25.307263Z  INFO spiral_temp_test:         │
│ input=Identifier("jDEi50vf2IpFYc6EPrqMcv")                                   │
│ 2024-03-29T22:16:25.307292Z  INFO spiral_temp_test:         │
│ input=Integer(7857131413072277812)                                           │
│ 2024-03-29T22:16:25.307320Z  INFO spiral_temp_test:         │
│ input=Comment("nOm")                                                         │
│ 2024-03-29T22:16:25.307346Z  INFO spiral_temp_test:         │
│ input=Integer(-2570067917718519672)                                          │
│ 2024-03-29T22:16:25.307373Z  INFO spiral_temp_test:         │
│ input=Integer(-5914808161662725987)                                          │
│ 2024-03-29T22:16:25.307409Z  INFO spiral_temp_test:         │
│ input=Identifier("lxEAWm7qhusqFe9PfPpd7S72gOMnB2z")                          │
│ 2024-03-29T22:16:25.307442Z  INFO spiral_temp_test:         │
│ input=Operator("=")                                                          │
│ 2024-03-29T22:16:25.307482Z  INFO spiral_temp_test:         │
│ input=Identifier("W2PpD87prmz7px4QJBhgr03pwxU9RV")                           │
│ 2024-03-29T22:16:25.307519Z  INFO spiral_temp_test:         │
│ input=StringLiteral("U`{wTi<|Z?~:V%n,xl")                                    │
│ 2024-03-29T22:16:25.307549Z  INFO spiral_temp_test:         │
│ input=Comment("")                                                            │
│ 2024-03-29T22:16:25.307586Z  INFO spiral_temp_test:         │
│ input=Identifier("Uv1cX5sVx2YwfpQxSVEa5hhiF37Qz")                            │
│ 2024-03-29T22:16:25.307620Z  INFO spiral_temp_test:         │
│ input=Comment("Dw\"Jt>:E2F")                                                 │
│ 2024-03-29T22:16:25.307648Z  INFO spiral_temp_test:         │
│ input=Integer(1839212677056432016)                                           │
│ 2024-03-29T22:16:25.307673Z  INFO spiral_temp_test:         │
│ input=Comment("b")                                                           │
│ 2024-03-29T22:16:25.307697Z  INFO spiral_temp_test:         │
│ input=Comment("!")                                                           │
│ 2024-03-29T22:16:25.307728Z  INFO spiral_temp_test:         │
│ input=Comment(".?&7\\uei:*l\"_\"V:mhS_t*/]")                                 │
│ 2024-03-29T22:16:25.307753Z  INFO spiral_temp_test:         │
│ input=Identifier("U9M")                                                      │
│ 2024-03-29T22:16:25.307785Z  INFO spiral_temp_test:         │
│ input=StringLiteral(":<Z|2'&%*K=|{l~.%/P]_?.m")                              │
│ test prop_parse_format_idempotent ... ok                                     │
│ test                                                                         │
│ adding_and_then_removing_an_item_from_the_cart_leaves_the_cart_unchanged ... │
│ ok                                                                           │
│                                                                              │
│ test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out;  │
│ finished in 0.08s                                                            │
│                                                                              │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── pwsh ────────────────────────────────────────────────────────────────────────
{ . $ScriptDir/../../../../target/release/spiral_temp_test$(GetExecutableSuffix)
} | Invoke-Block

╭─[ 5.60ms - stdout ]──────────────────────────────────────────────────────────╮
│ app=test                                                                     │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
[NbConvertApp] Converting notebook build.dib.ipynb to html
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
  validate(nb)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
  return _pygments_highlight(
[NbConvertApp] Writing 378462 bytes to build.dib.html
In [ ]:
{ . "$ScriptDir/../apps/perf/build.ps1" } | Invoke-Block
00:00:00 #1 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #2 [Debug] executeAsync / options: { Command =
   "dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64"
  WorkingDirectory = None
  CancellationToken = Some System.Threading.CancellationToken
  OnLine = Some <fun:main@425-61> }
00:00:00 #3 [Verbose] > pwd: /home/runner/work/polyglot/polyglot/apps/perf
00:00:00 #4 [Verbose] > dll_path: /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release
00:00:00 #5 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #6 [Verbose] waitForPortAccess / port: 13805 / retry: 0
00:00:00 #7 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #8 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #9 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #10 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #11 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #12 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #13 [Verbose] > Starting the Spiral Server. It is bound to: http://localhost:13805
00:00:00 #14 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #15 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #16 [Debug] sendJson / port: 13805 / json: {"Ping":true} / result.Length:
00:00:00 #17 [Verbose] awaitCompiler / Ping / result: Some(null) / port: 13805 / retry: 0
00:00:00 #18 [Verbose] > Server bound to: http://localhost:13805
00:00:00 #19 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 Perf.dib""
  WorkingDirectory = None
  CancellationToken = Some System.Threading.CancellationToken
  OnLine = None }
00:00:02 #20 [Verbose] >
00:00:02 #21 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:02 #22 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:02 #23 [Verbose] > │ ## Perf (Polyglot)                                                           │
00:00:02 #24 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:02 #25 [Verbose] >
00:00:02 #26 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:02 #27 [Verbose] > // // test
00:00:02 #28 [Verbose] >
00:00:02 #29 [Verbose] > open testing
00:00:02 #30 [Verbose] > open benchmark
00:00:04 #31 [Verbose] > Building /tmp/dotnet-repl/20240329-2216-3065-6554-65b320fc61cc/main.spi
00:00:05 #32 [Verbose] >
00:00:05 #33 [Verbose] > ╭─[ 3.58s - stdout ]───────────────────────────────────────────────────────────╮
00:00:05 #34 [Verbose] > │ ()                                                                           │
00:00:05 #35 [Verbose] > │                                                                              │
00:00:05 #36 [Verbose] > │                                                                              │
00:00:05 #37 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:05 #38 [Verbose] >
00:00:05 #39 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:05 #40 [Verbose] > inl (/@) x = listm'.(/@) x
00:00:06 #41 [Verbose] > Building /tmp/dotnet-repl/20240329-2216-3318-1816-16ad914eee65/main.spi
00:00:06 #42 [Verbose] >
00:00:06 #43 [Verbose] > ╭─[ 247.32ms - stdout ]────────────────────────────────────────────────────────╮
00:00:06 #44 [Verbose] > │ ()                                                                           │
00:00:06 #45 [Verbose] > │                                                                              │
00:00:06 #46 [Verbose] > │                                                                              │
00:00:06 #47 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:06 #48 [Verbose] >
00:00:06 #49 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:06 #50 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:06 #51 [Verbose] > │ ## TestCaseResult                                                            │
00:00:06 #52 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:06 #53 [Verbose] >
00:00:06 #54 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:06 #55 [Verbose] > type TestCaseResult =
00:00:06 #56 [Verbose] >     {
00:00:06 #57 [Verbose] >         Input: string
00:00:06 #58 [Verbose] >         Expected: string
00:00:06 #59 [Verbose] >         Result: string
00:00:06 #60 [Verbose] >         TimeList: int64 list
00:00:06 #61 [Verbose] >     }
00:00:06 #62 [Verbose] >
00:00:06 #63 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:06 #64 [Verbose] > #r
00:00:06 #65 [Verbose] > "/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Asp
00:00:06 #66 [Verbose] > NetCore.Html.Abstractions.dll"
00:00:06 #67 [Verbose] > #r
00:00:06 #68 [Verbose] > "/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
00:00:06 #69 [Verbose] > Net.Interactive.dll"
00:00:06 #70 [Verbose] > #r
00:00:06 #71 [Verbose] > "/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
00:00:06 #72 [Verbose] > Net.Interactive.FSharp.dll"
00:00:06 #73 [Verbose] > #r
00:00:06 #74 [Verbose] > "/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
00:00:06 #75 [Verbose] > Net.Interactive.Formatting.dll"
00:00:06 #76 [Verbose] > open System
00:00:06 #77 [Verbose] > open System.IO
00:00:06 #78 [Verbose] > open System.Text
00:00:06 #79 [Verbose] > open Microsoft.DotNet.Interactive.Formatting
00:00:07 #80 [Verbose] >
00:00:07 #81 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:07 #82 [Verbose] > #r
00:00:07 #83 [Verbose] > "/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
00:00:07 #84 [Verbose] > Net.Interactive.FSharp.dll"
00:00:07 #85 [Verbose] > open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
00:00:07 #86 [Verbose] > #r
00:00:07 #87 [Verbose] > "/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
00:00:07 #88 [Verbose] > Net.Interactive.dll"
00:00:07 #89 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel
00:00:07 #90 [Verbose] >
00:00:07 #91 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:07 #92 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:07 #93 [Verbose] > │ ## run                                                                       │
00:00:07 #94 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:07 #95 [Verbose] >
00:00:07 #96 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:07 #97 [Verbose] > let run count (solutions: (string * ('TInput -> 'TExpected)) list) (input,
00:00:07 #98 [Verbose] > expected) =
00:00:07 #99 [Verbose] >     let inputStr =
00:00:07 #100 [Verbose] >         match box input with
00:00:07 #101 [Verbose] >         | :? System.Collections.ICollection as input ->
00:00:07 #102 [Verbose] >             System.Linq.Enumerable.Cast<obj> input
00:00:07 #103 [Verbose] >             |> Seq.map string
00:00:07 #104 [Verbose] >             |> String.concat ","
00:00:07 #105 [Verbose] >         | _ -> input.ToString ()
00:00:07 #106 [Verbose] >
00:00:07 #107 [Verbose] >     printfn ""
00:00:07 #108 [Verbose] >     printfn $"Solution: {inputStr}  "
00:00:07 #109 [Verbose] >
00:00:07 #110 [Verbose] >     let performanceInvoke (fn: unit -> 'T) =
00:00:07 #111 [Verbose] >         GC.Collect ()
00:00:07 #112 [Verbose] >         let stopwatch = System.Diagnostics.Stopwatch ()
00:00:07 #113 [Verbose] >         stopwatch.Start ()
00:00:07 #114 [Verbose] >         let time1 = stopwatch.ElapsedMilliseconds
00:00:07 #115 [Verbose] >
00:00:07 #116 [Verbose] >         let result =
00:00:07 #117 [Verbose] >             [[| 0 .. count |]]
00:00:07 #118 [Verbose] >             |> Array.Parallel.map (fun _ ->
00:00:07 #119 [Verbose] >                 fn ()
00:00:07 #120 [Verbose] >             )
00:00:07 #121 [Verbose] >             |> Array.last
00:00:07 #122 [Verbose] >
00:00:07 #123 [Verbose] >         let time2 = stopwatch.ElapsedMilliseconds - time1
00:00:07 #124 [Verbose] >
00:00:07 #125 [Verbose] >         result, time2
00:00:07 #126 [Verbose] >
00:00:07 #127 [Verbose] >     let resultsWithTime =
00:00:07 #128 [Verbose] >         solutions
00:00:07 #129 [Verbose] >         |> List.mapi (fun i (testName, solution) ->
00:00:07 #130 [Verbose] >             let result, time = performanceInvoke (fun () -> solution input)
00:00:07 #131 [Verbose] >             printfn $"Test case %d{i + 1}. %s{testName}. Time: %A{time}  "
00:00:07 #132 [Verbose] >             result, time
00:00:07 #133 [Verbose] >         )
00:00:07 #134 [Verbose] >
00:00:07 #135 [Verbose] >
00:00:07 #136 [Verbose] >     match resultsWithTime |> List.map fst with
00:00:07 #137 [Verbose] >     | ([[]] | [[ _ ]]) -> ()
00:00:07 #138 [Verbose] >     | (head :: tail) when tail |> List.forall ((=) head) -> ()
00:00:07 #139 [Verbose] >     | results -> failwithf $"Challenge error: %A{results}"
00:00:07 #140 [Verbose] >
00:00:07 #141 [Verbose] >     {
00:00:07 #142 [Verbose] >         Input = inputStr
00:00:07 #143 [Verbose] >         Expected = expected.ToString ()
00:00:07 #144 [Verbose] >         Result = resultsWithTime |> Seq.map fst |> Seq.head |> _.ToString()
00:00:07 #145 [Verbose] >         TimeList = resultsWithTime |> List.map snd
00:00:07 #146 [Verbose] >     }
00:00:08 #147 [Verbose] >
00:00:08 #148 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:08 #149 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:08 #150 [Verbose] > │ ## runAll                                                                    │
00:00:08 #151 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:08 #152 [Verbose] >
00:00:08 #153 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:08 #154 [Verbose] > let runAll testName count (solutions: (string * ('TInput -> 'TExpected)) list)
00:00:08 #155 [Verbose] > testCases =
00:00:08 #156 [Verbose] >     printfn ""
00:00:08 #157 [Verbose] >     printfn ""
00:00:08 #158 [Verbose] >     printfn $"Test: {testName}"
00:00:08 #159 [Verbose] >     testCases
00:00:08 #160 [Verbose] >     |> Seq.map (run count solutions)
00:00:08 #161 [Verbose] >     |> Seq.toList
00:00:08 #162 [Verbose] >
00:00:08 #163 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:08 #164 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:08 #165 [Verbose] > │ ## sortResultList                                                            │
00:00:08 #166 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:08 #167 [Verbose] >
00:00:08 #168 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:08 #169 [Verbose] > let sortResultList resultList =
00:00:08 #170 [Verbose] >     let table =
00:00:08 #171 [Verbose] >         let rows =
00:00:08 #172 [Verbose] >             resultList
00:00:08 #173 [Verbose] >             |> List.map (fun result ->
00:00:08 #174 [Verbose] >                 let best =
00:00:08 #175 [Verbose] >                     result.TimeList
00:00:08 #176 [Verbose] >                     |> List.mapi (fun i time ->
00:00:08 #177 [Verbose] >                         i + 1, time
00:00:08 #178 [Verbose] >                     )
00:00:08 #179 [Verbose] >                     |> List.sortBy snd
00:00:08 #180 [Verbose] >                     |> List.head
00:00:08 #181 [Verbose] >                     |> _.ToString()
00:00:08 #182 [Verbose] >                 let row =
00:00:08 #183 [Verbose] >                     [[
00:00:08 #184 [Verbose] >                         result.Input
00:00:08 #185 [Verbose] >                         result.Expected
00:00:08 #186 [Verbose] >                         result.Result
00:00:08 #187 [Verbose] >                         best
00:00:08 #188 [Verbose] >                     ]]
00:00:08 #189 [Verbose] >                 let color =
00:00:08 #190 [Verbose] >                     match result.Expected = result.Result with
00:00:08 #191 [Verbose] >                     | true -> Some ConsoleColor.DarkGreen
00:00:08 #192 [Verbose] >                     | false -> Some ConsoleColor.DarkRed
00:00:08 #193 [Verbose] >                 row, color
00:00:08 #194 [Verbose] >             )
00:00:08 #195 [Verbose] >         let header =
00:00:08 #196 [Verbose] >             [[
00:00:08 #197 [Verbose] >                 [[
00:00:08 #198 [Verbose] >                     "Input"
00:00:08 #199 [Verbose] >                     "Expected"
00:00:08 #200 [Verbose] >                     "Result"
00:00:08 #201 [Verbose] >                     "Best"
00:00:08 #202 [Verbose] >                 ]]
00:00:08 #203 [Verbose] >                 [[
00:00:08 #204 [Verbose] >                     "---"
00:00:08 #205 [Verbose] >                     "---"
00:00:08 #206 [Verbose] >                     "---"
00:00:08 #207 [Verbose] >                     "---"
00:00:08 #208 [Verbose] >                 ]]
00:00:08 #209 [Verbose] >             ]]
00:00:08 #210 [Verbose] >             |> List.map (fun row -> row, None)
00:00:08 #211 [Verbose] >         header @ rows
00:00:08 #212 [Verbose] >
00:00:08 #213 [Verbose] >     let formattedTable =
00:00:08 #214 [Verbose] >         let lengthMap =
00:00:08 #215 [Verbose] >             table
00:00:08 #216 [Verbose] >             |> List.map fst
00:00:08 #217 [Verbose] >             |> List.transpose
00:00:08 #218 [Verbose] >             |> List.map (fun column ->
00:00:08 #219 [Verbose] >                 column
00:00:08 #220 [Verbose] >                 |> List.map String.length
00:00:08 #221 [Verbose] >                 |> List.sortDescending
00:00:08 #222 [Verbose] >                 |> List.tryHead
00:00:08 #223 [Verbose] >                 |> Option.defaultValue 0
00:00:08 #224 [Verbose] >             )
00:00:08 #225 [Verbose] >             |> List.indexed
00:00:08 #226 [Verbose] >             |> Map.ofList
00:00:08 #227 [Verbose] >         table
00:00:08 #228 [Verbose] >         |> List.map (fun (row, color) ->
00:00:08 #229 [Verbose] >             let newRow =
00:00:08 #230 [Verbose] >                 row
00:00:08 #231 [Verbose] >                 |> List.mapi (fun i cell ->
00:00:08 #232 [Verbose] >                     cell.PadRight lengthMap.[[i]]
00:00:08 #233 [Verbose] >                 )
00:00:08 #234 [Verbose] >             newRow, color
00:00:08 #235 [Verbose] >         )
00:00:08 #236 [Verbose] >
00:00:08 #237 [Verbose] >     printfn ""
00:00:08 #238 [Verbose] >     formattedTable
00:00:08 #239 [Verbose] >     |> List.iter (fun (row, color) ->
00:00:08 #240 [Verbose] >         match color with
00:00:08 #241 [Verbose] >         | Some color -> Console.ForegroundColor <- color
00:00:08 #242 [Verbose] >         | None -> Console.ResetColor ()
00:00:08 #243 [Verbose] >
00:00:08 #244 [Verbose] >         printfn "%s" (String.Join ("\t| ", row))
00:00:08 #245 [Verbose] >
00:00:08 #246 [Verbose] >         Console.ResetColor ()
00:00:08 #247 [Verbose] >     )
00:00:08 #248 [Verbose] >
00:00:08 #249 [Verbose] >     let averages =
00:00:08 #250 [Verbose] >         resultList
00:00:08 #251 [Verbose] >         |> List.map (fun result -> result.TimeList |> List.map float)
00:00:08 #252 [Verbose] >         |> List.transpose
00:00:08 #253 [Verbose] >         |> List.map List.average
00:00:08 #254 [Verbose] >         |> List.map int64
00:00:08 #255 [Verbose] >         |> List.indexed
00:00:08 #256 [Verbose] >
00:00:08 #257 [Verbose] >     printfn ""
00:00:08 #258 [Verbose] >     printfn "Average Ranking  "
00:00:08 #259 [Verbose] >     averages
00:00:08 #260 [Verbose] >     |> List.sortBy snd
00:00:08 #261 [Verbose] >     |> List.iter (fun (i, avg) ->
00:00:08 #262 [Verbose] >         printfn $"Test case %d{i + 1}. Average Time: %A{avg}  "
00:00:08 #263 [Verbose] >     )
00:00:08 #264 [Verbose] >
00:00:08 #265 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:08 #266 [Verbose] > let mutable _count =
00:00:08 #267 [Verbose] >     if ("CI" |> System.Environment.GetEnvironmentVariable |> fun x -> $"%A{x}")
00:00:08 #268 [Verbose] > <> "<null>"
00:00:08 #269 [Verbose] >     then 2000000
00:00:08 #270 [Verbose] >     else 2000
00:00:08 #271 [Verbose] >
00:00:08 #272 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:08 #273 [Verbose] > inl is_fast () =
00:00:08 #274 [Verbose] >     false
00:00:08 #275 [Verbose] > Building /tmp/dotnet-repl/20240329-2216-3554-5422-523ce978eb53/main.spi
00:00:08 #276 [Verbose] >
00:00:08 #277 [Verbose] > ╭─[ 177.39ms - stdout ]────────────────────────────────────────────────────────╮
00:00:08 #278 [Verbose] > │ ()                                                                           │
00:00:08 #279 [Verbose] > │                                                                              │
00:00:08 #280 [Verbose] > │                                                                              │
00:00:08 #281 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:08 #282 [Verbose] >
00:00:08 #283 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:08 #284 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:08 #285 [Verbose] > │ ## empty3Tests                                                               │
00:00:08 #286 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:08 #287 [Verbose] >
00:00:08 #288 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:08 #289 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:08 #290 [Verbose] > │ Test: Empty3                                                                 │
00:00:08 #291 [Verbose] > │                                                                              │
00:00:08 #292 [Verbose] > │ Solution: (a, a)                                                             │
00:00:08 #293 [Verbose] > │ Test case 1. A. Time: 91L                                                    │
00:00:08 #294 [Verbose] > │                                                                              │
00:00:08 #295 [Verbose] > │ Solution: (a, a)                                                             │
00:00:08 #296 [Verbose] > │ Test case 1. A. Time: 56L                                                    │
00:00:08 #297 [Verbose] > │                                                                              │
00:00:08 #298 [Verbose] > │ Input  | Expected      | Result | Best                                       │
00:00:08 #299 [Verbose] > │ ---    | ---           | ---    | ---                                        │
00:00:08 #300 [Verbose] > │ (a, a) | a             | a      | (1, 91)                                    │
00:00:08 #301 [Verbose] > │ (a, a) | a             | a      | (1, 56)                                    │
00:00:08 #302 [Verbose] > │                                                                              │
00:00:08 #303 [Verbose] > │ Averages                                                                     │
00:00:08 #304 [Verbose] > │ Test case 1. Average Time: 73L                                               │
00:00:08 #305 [Verbose] > │                                                                              │
00:00:08 #306 [Verbose] > │ Ranking                                                                      │
00:00:08 #307 [Verbose] > │ Test case 1. Average Time: 73L                                               │
00:00:08 #308 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:08 #309 [Verbose] >
00:00:08 #310 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:08 #311 [Verbose] > //// test
00:00:08 #312 [Verbose] >
00:00:08 #313 [Verbose] > let solutions = [[
00:00:08 #314 [Verbose] >     "A",
00:00:08 #315 [Verbose] >     fun (a, _b) ->
00:00:08 #316 [Verbose] >         a
00:00:08 #317 [Verbose] > ]]
00:00:08 #318 [Verbose] > let testCases = seq {
00:00:08 #319 [Verbose] >     ("a", "a"), "a"
00:00:08 #320 [Verbose] >     ("a", "a"), "a"
00:00:08 #321 [Verbose] > }
00:00:08 #322 [Verbose] > let rec empty3Tests = runAll (nameof empty3Tests) _count solutions testCases
00:00:08 #323 [Verbose] > empty3Tests
00:00:08 #324 [Verbose] > |> sortResultList
00:00:08 #325 [Verbose] >
00:00:08 #326 [Verbose] > ╭─[ 291.18ms - stdout ]────────────────────────────────────────────────────────╮
00:00:08 #327 [Verbose] > │                                                                              │
00:00:08 #328 [Verbose] > │                                                                              │
00:00:08 #329 [Verbose] > │ Test: empty3Tests                                                            │
00:00:08 #330 [Verbose] > │                                                                              │
00:00:08 #331 [Verbose] > │ Solution: (a, a)                                                             │
00:00:08 #332 [Verbose] > │ Test case 1. A. Time: 31L                                                    │
00:00:08 #333 [Verbose] > │                                                                              │
00:00:08 #334 [Verbose] > │ Solution: (a, a)                                                             │
00:00:08 #335 [Verbose] > │ Test case 1. A. Time: 20L                                                    │
00:00:08 #336 [Verbose] > │                                                                              │
00:00:08 #337 [Verbose] > │ Input 	| Expected	| Result	| Best                                                  │
00:00:08 #338 [Verbose] > │ ---   	| ---     	| ---   	| ---                                                   │
00:00:08 #339 [Verbose] > │ (a, a)	| a       	| a     	| (1, 31)                                               │
00:00:08 #340 [Verbose] > │ (a, a)	| a       	| a     	| (1, 20)                                               │
00:00:08 #341 [Verbose] > │                                                                              │
00:00:08 #342 [Verbose] > │ Average Ranking                                                              │
00:00:08 #343 [Verbose] > │ Test case 1. Average Time: 25L                                               │
00:00:08 #344 [Verbose] > │                                                                              │
00:00:08 #345 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:08 #346 [Verbose] >
00:00:08 #347 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:08 #348 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:08 #349 [Verbose] > │ ## empty2Tests                                                               │
00:00:08 #350 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:08 #351 [Verbose] >
00:00:08 #352 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:08 #353 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:08 #354 [Verbose] > │ Test: Empty2                                                                 │
00:00:08 #355 [Verbose] > │                                                                              │
00:00:08 #356 [Verbose] > │ Solution: (a, a)                                                             │
00:00:08 #357 [Verbose] > │ Test case 1. A. Time: 59L                                                    │
00:00:08 #358 [Verbose] > │                                                                              │
00:00:08 #359 [Verbose] > │ Solution: (a, a)                                                             │
00:00:08 #360 [Verbose] > │ Test case 1. A. Time: 53L                                                    │
00:00:08 #361 [Verbose] > │                                                                              │
00:00:08 #362 [Verbose] > │ Input   | Expected        | Result  | Best                                   │
00:00:08 #363 [Verbose] > │ ---     | ---             | ---     | ---                                    │
00:00:08 #364 [Verbose] > │ (a, a)  | a               | a       | (1, 59)                                │
00:00:08 #365 [Verbose] > │ (a, a)  | a               | a       | (1, 53)                                │
00:00:08 #366 [Verbose] > │                                                                              │
00:00:08 #367 [Verbose] > │ Averages                                                                     │
00:00:08 #368 [Verbose] > │ Test case 1. Average Time: 56L                                               │
00:00:08 #369 [Verbose] > │                                                                              │
00:00:08 #370 [Verbose] > │ Ranking                                                                      │
00:00:08 #371 [Verbose] > │ Test case 1. Average Time: 56L                                               │
00:00:08 #372 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:08 #373 [Verbose] >
00:00:08 #374 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:08 #375 [Verbose] > //// test
00:00:08 #376 [Verbose] >
00:00:08 #377 [Verbose] > let solutions = [[
00:00:08 #378 [Verbose] >     "A",
00:00:08 #379 [Verbose] >     fun (a, _b) ->
00:00:08 #380 [Verbose] >         a
00:00:08 #381 [Verbose] > ]]
00:00:08 #382 [Verbose] > let testCases = seq {
00:00:08 #383 [Verbose] >     ("a", "a"), "a"
00:00:08 #384 [Verbose] >     ("a", "a"), "a"
00:00:08 #385 [Verbose] > }
00:00:08 #386 [Verbose] > let rec empty2Tests = runAll (nameof empty2Tests) _count solutions testCases
00:00:08 #387 [Verbose] > empty2Tests
00:00:08 #388 [Verbose] > |> sortResultList
00:00:09 #389 [Verbose] >
00:00:09 #390 [Verbose] > ╭─[ 229.33ms - stdout ]────────────────────────────────────────────────────────╮
00:00:09 #391 [Verbose] > │                                                                              │
00:00:09 #392 [Verbose] > │                                                                              │
00:00:09 #393 [Verbose] > │ Test: empty2Tests                                                            │
00:00:09 #394 [Verbose] > │                                                                              │
00:00:09 #395 [Verbose] > │ Solution: (a, a)                                                             │
00:00:09 #396 [Verbose] > │ Test case 1. A. Time: 20L                                                    │
00:00:09 #397 [Verbose] > │                                                                              │
00:00:09 #398 [Verbose] > │ Solution: (a, a)                                                             │
00:00:09 #399 [Verbose] > │ Test case 1. A. Time: 20L                                                    │
00:00:09 #400 [Verbose] > │                                                                              │
00:00:09 #401 [Verbose] > │ Input 	| Expected	| Result	| Best                                                  │
00:00:09 #402 [Verbose] > │ ---   	| ---     	| ---   	| ---                                                   │
00:00:09 #403 [Verbose] > │ (a, a)	| a       	| a     	| (1, 20)                                               │
00:00:09 #404 [Verbose] > │ (a, a)	| a       	| a     	| (1, 20)                                               │
00:00:09 #405 [Verbose] > │                                                                              │
00:00:09 #406 [Verbose] > │ Average Ranking                                                              │
00:00:09 #407 [Verbose] > │ Test case 1. Average Time: 20L                                               │
00:00:09 #408 [Verbose] > │                                                                              │
00:00:09 #409 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:09 #410 [Verbose] >
00:00:09 #411 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:09 #412 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:09 #413 [Verbose] > │ ## emptyTests                                                                │
00:00:09 #414 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:09 #415 [Verbose] >
00:00:09 #416 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:09 #417 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:09 #418 [Verbose] > │ Test: Empty                                                                  │
00:00:09 #419 [Verbose] > │                                                                              │
00:00:09 #420 [Verbose] > │ Solution: 0                                                                  │
00:00:09 #421 [Verbose] > │ Test case 1. A. Time: 61L                                                    │
00:00:09 #422 [Verbose] > │                                                                              │
00:00:09 #423 [Verbose] > │ Solution: 2                                                                  │
00:00:09 #424 [Verbose] > │ Test case 1. A. Time: 62L                                                    │
00:00:09 #425 [Verbose] > │                                                                              │
00:00:09 #426 [Verbose] > │ Solution: 5                                                                  │
00:00:09 #427 [Verbose] > │ Test case 1. A. Time: 70L                                                    │
00:00:09 #428 [Verbose] > │                                                                              │
00:00:09 #429 [Verbose] > │ Input   | Expected        | Result  | Best                                   │
00:00:09 #430 [Verbose] > │ ---     | ---             | ---     | ---                                    │
00:00:09 #431 [Verbose] > │ 0       | 0               | 0       | (1, 61)                                │
00:00:09 #432 [Verbose] > │ 2       | 2               | 2       | (1, 62)                                │
00:00:09 #433 [Verbose] > │ 5       | 5               | 5       | (1, 70)                                │
00:00:09 #434 [Verbose] > │                                                                              │
00:00:09 #435 [Verbose] > │ Averages                                                                     │
00:00:09 #436 [Verbose] > │ Test case 1. Average Time: 64L                                               │
00:00:09 #437 [Verbose] > │                                                                              │
00:00:09 #438 [Verbose] > │ Ranking                                                                      │
00:00:09 #439 [Verbose] > │ Test case 1. Average Time: 64L                                               │
00:00:09 #440 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:09 #441 [Verbose] >
00:00:09 #442 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:09 #443 [Verbose] > //// test
00:00:09 #444 [Verbose] >
00:00:09 #445 [Verbose] > let solutions = [[
00:00:09 #446 [Verbose] >     "A",
00:00:09 #447 [Verbose] >     fun n ->
00:00:09 #448 [Verbose] >         n + 0
00:00:09 #449 [Verbose] > ]]
00:00:09 #450 [Verbose] > let testCases = seq {
00:00:09 #451 [Verbose] >     0, 0
00:00:09 #452 [Verbose] >     2, 2
00:00:09 #453 [Verbose] >     5, 5
00:00:09 #454 [Verbose] > }
00:00:09 #455 [Verbose] > let rec emptyTests = runAll (nameof emptyTests) _count solutions testCases
00:00:09 #456 [Verbose] > emptyTests
00:00:09 #457 [Verbose] > |> sortResultList
00:00:09 #458 [Verbose] >
00:00:09 #459 [Verbose] > ╭─[ 348.33ms - stdout ]────────────────────────────────────────────────────────╮
00:00:09 #460 [Verbose] > │                                                                              │
00:00:09 #461 [Verbose] > │                                                                              │
00:00:09 #462 [Verbose] > │ Test: emptyTests                                                             │
00:00:09 #463 [Verbose] > │                                                                              │
00:00:09 #464 [Verbose] > │ Solution: 0                                                                  │
00:00:09 #465 [Verbose] > │ Test case 1. A. Time: 22L                                                    │
00:00:09 #466 [Verbose] > │                                                                              │
00:00:09 #467 [Verbose] > │ Solution: 2                                                                  │
00:00:09 #468 [Verbose] > │ Test case 1. A. Time: 19L                                                    │
00:00:09 #469 [Verbose] > │                                                                              │
00:00:09 #470 [Verbose] > │ Solution: 5                                                                  │
00:00:09 #471 [Verbose] > │ Test case 1. A. Time: 22L                                                    │
00:00:09 #472 [Verbose] > │                                                                              │
00:00:09 #473 [Verbose] > │ Input	| Expected	| Result	| Best                                                   │
00:00:09 #474 [Verbose] > │ ---  	| ---     	| ---   	| ---                                                    │
00:00:09 #475 [Verbose] > │ 0    	| 0       	| 0     	| (1, 22)                                                │
00:00:09 #476 [Verbose] > │ 2    	| 2       	| 2     	| (1, 19)                                                │
00:00:09 #477 [Verbose] > │ 5    	| 5       	| 5     	| (1, 22)                                                │
00:00:09 #478 [Verbose] > │                                                                              │
00:00:09 #479 [Verbose] > │ Average Ranking                                                              │
00:00:09 #480 [Verbose] > │ Test case 1. Average Time: 21L                                               │
00:00:09 #481 [Verbose] > │                                                                              │
00:00:09 #482 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:09 #483 [Verbose] >
00:00:09 #484 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:09 #485 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:09 #486 [Verbose] > │ ## uniqueLettersTests                                                        │
00:00:09 #487 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:09 #488 [Verbose] >
00:00:09 #489 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:09 #490 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:09 #491 [Verbose] > │ Test: UniqueLetters                                                          │
00:00:09 #492 [Verbose] > │                                                                              │
00:00:09 #493 [Verbose] > │ Solution: abc                                                                │
00:00:09 #494 [Verbose] > │ Test case 1. A. Time: 1512L                                                  │
00:00:09 #495 [Verbose] > │ Test case 2. B. Time: 1947L                                                  │
00:00:09 #496 [Verbose] > │ Test case 3. C. Time: 2023L                                                  │
00:00:09 #497 [Verbose] > │ Test case 4. D. Time: 1358L                                                  │
00:00:09 #498 [Verbose] > │ Test case 5. E. Time: 1321L                                                  │
00:00:09 #499 [Verbose] > │ Test case 6. F. Time: 1346L                                                  │
00:00:09 #500 [Verbose] > │ Test case 7. G. Time: 1304L                                                  │
00:00:09 #501 [Verbose] > │ Test case 8. H. Time: 1383L                                                  │
00:00:09 #502 [Verbose] > │ Test case 9. I. Time: 1495L                                                  │
00:00:09 #503 [Verbose] > │ Test case 10. J. Time: 1245L                                                 │
00:00:09 #504 [Verbose] > │ Test case 11. K. Time: 1219L                                                 │
00:00:09 #505 [Verbose] > │                                                                              │
00:00:09 #506 [Verbose] > │ Solution: accabb                                                             │
00:00:09 #507 [Verbose] > │ Test case 1. A. Time: 1648L                                                  │
00:00:09 #508 [Verbose] > │ Test case 2. B. Time: 2061L                                                  │
00:00:09 #509 [Verbose] > │ Test case 3. C. Time: 2413L                                                  │
00:00:09 #510 [Verbose] > │ Test case 4. D. Time: 1561L                                                  │
00:00:09 #511 [Verbose] > │ Test case 5. E. Time: 1593L                                                  │
00:00:09 #512 [Verbose] > │ Test case 6. F. Time: 1518L                                                  │
00:00:09 #513 [Verbose] > │ Test case 7. G. Time: 1415L                                                  │
00:00:09 #514 [Verbose] > │ Test case 8. H. Time: 1510L                                                  │
00:00:09 #515 [Verbose] > │ Test case 9. I. Time: 1445L                                                  │
00:00:09 #516 [Verbose] > │ Test case 10. J. Time: 1636L                                                 │
00:00:09 #517 [Verbose] > │ Test case 11. K. Time: 1317L                                                 │
00:00:09 #518 [Verbose] > │                                                                              │
00:00:09 #519 [Verbose] > │ Solution: pprrqqpp                                                           │
00:00:09 #520 [Verbose] > │ Test case 1. A. Time: 2255L                                                  │
00:00:09 #521 [Verbose] > │ Test case 2. B. Time: 2408L                                                  │
00:00:09 #522 [Verbose] > │ Test case 3. C. Time: 2393L                                                  │
00:00:09 #523 [Verbose] > │ Test case 4. D. Time: 1675L                                                  │
00:00:09 #524 [Verbose] > │ Test case 5. E. Time: 1911L                                                  │
00:00:09 #525 [Verbose] > │ Test case 6. F. Time: 2126L                                                  │
00:00:09 #526 [Verbose] > │ Test case 7. G. Time: 1504L                                                  │
00:00:09 #527 [Verbose] > │ Test case 8. H. Time: 1715L                                                  │
00:00:09 #528 [Verbose] > │ Test case 9. I. Time: 1537L                                                  │
00:00:09 #529 [Verbose] > │ Test case 10. J. Time: 1522L                                                 │
00:00:09 #530 [Verbose] > │ Test case 11. K. Time: 1322L                                                 │
00:00:09 #531 [Verbose] > │                                                                              │
00:00:09 #532 [Verbose] > │ Solution:                                                                    │
00:00:09 #533 [Verbose] > │ aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbb │
00:00:09 #534 [Verbose] > │ bbb                                                                          │
00:00:09 #535 [Verbose] > │ Test case 1. A. Time: 13073L                                                 │
00:00:09 #536 [Verbose] > │ Test case 2. B. Time: 11519L                                                 │
00:00:09 #537 [Verbose] > │ Test case 3. C. Time: 8373L                                                  │
00:00:09 #538 [Verbose] > │ Test case 4. D. Time: 5860L                                                  │
00:00:09 #539 [Verbose] > │ Test case 5. E. Time: 6490L                                                  │
00:00:09 #540 [Verbose] > │ Test case 6. F. Time: 6325L                                                  │
00:00:09 #541 [Verbose] > │ Test case 7. G. Time: 5799L                                                  │
00:00:09 #542 [Verbose] > │ Test case 8. H. Time: 7099L                                                  │
00:00:09 #543 [Verbose] > │ Test case 9. I. Time: 6133L                                                  │
00:00:09 #544 [Verbose] > │ Test case 10. J. Time: 5993L                                                 │
00:00:09 #545 [Verbose] > │ Test case 11. K. Time: 2040L                                                 │
00:00:09 #546 [Verbose] > │                                                                              │
00:00:09 #547 [Verbose] > │ Input                                                                        │
00:00:09 #548 [Verbose] > │ | Expected        | Result  | Best                                           │
00:00:09 #549 [Verbose] > │ ---                                                                          │
00:00:09 #550 [Verbose] > │                                                                              │
00:00:09 #551 [Verbose] > │ | ---             | ---     | ---                                            │
00:00:09 #552 [Verbose] > │ abc                                                                          │
00:00:09 #553 [Verbose] > │                                                                              │
00:00:09 #554 [Verbose] > │ | abc             | abc     | (11, 1219)                                     │
00:00:09 #555 [Verbose] > │ accabb                                                                       │
00:00:09 #556 [Verbose] > │ | acb             | acb     | (11, 1317)                                     │
00:00:09 #557 [Verbose] > │ pprrqqpp                                                                     │
00:00:09 #558 [Verbose] > │ | prq             | prq     | (11, 1322)                                     │
00:00:09 #559 [Verbose] > │ aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbb │
00:00:09 #560 [Verbose] > │ bbb | acb             | acb     | (11, 2040)                                 │
00:00:09 #561 [Verbose] > │                                                                              │
00:00:09 #562 [Verbose] > │ Averages                                                                     │
00:00:09 #563 [Verbose] > │ Test case 1. Average Time: 4622L                                             │
00:00:09 #564 [Verbose] > │ Test case 2. Average Time: 4483L                                             │
00:00:09 #565 [Verbose] > │ Test case 3. Average Time: 3800L                                             │
00:00:09 #566 [Verbose] > │ Test case 4. Average Time: 2613L                                             │
00:00:09 #567 [Verbose] > │ Test case 5. Average Time: 2828L                                             │
00:00:09 #568 [Verbose] > │ Test case 6. Average Time: 2828L                                             │
00:00:09 #569 [Verbose] > │ Test case 7. Average Time: 2505L                                             │
00:00:09 #570 [Verbose] > │ Test case 8. Average Time: 2926L                                             │
00:00:09 #571 [Verbose] > │ Test case 9. Average Time: 2652L                                             │
00:00:09 #572 [Verbose] > │ Test case 10. Average Time: 2599L                                            │
00:00:09 #573 [Verbose] > │ Test case 11. Average Time: 1474L                                            │
00:00:09 #574 [Verbose] > │                                                                              │
00:00:09 #575 [Verbose] > │ Ranking                                                                      │
00:00:09 #576 [Verbose] > │ Test case 1. Average Time: 4622L                                             │
00:00:09 #577 [Verbose] > │ Test case 2. Average Time: 4483L                                             │
00:00:09 #578 [Verbose] > │ Test case 3. Average Time: 3800L                                             │
00:00:09 #579 [Verbose] > │ Test case 8. Average Time: 2926L                                             │
00:00:09 #580 [Verbose] > │ Test case 5. Average Time: 2828L                                             │
00:00:09 #581 [Verbose] > │ Test case 6. Average Time: 2828L                                             │
00:00:09 #582 [Verbose] > │ Test case 9. Average Time: 2652L                                             │
00:00:09 #583 [Verbose] > │ Test case 4. Average Time: 2613L                                             │
00:00:09 #584 [Verbose] > │ Test case 10. Average Time: 2599L                                            │
00:00:09 #585 [Verbose] > │ Test case 7. Average Time: 2505L                                             │
00:00:09 #586 [Verbose] > │ Test case 11. Average Time: 1474L                                            │
00:00:09 #587 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:09 #588 [Verbose] >
00:00:09 #589 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:09 #590 [Verbose] > //// test
00:00:09 #591 [Verbose] >
00:00:09 #592 [Verbose] > let solutions = [[
00:00:09 #593 [Verbose] >     "A",
00:00:09 #594 [Verbose] >     fun input ->
00:00:09 #595 [Verbose] >         input
00:00:09 #596 [Verbose] >         |> Seq.toList
00:00:09 #597 [Verbose] >         |> List.fold (fun acc x -> if List.contains x acc then acc else acc @ [[
00:00:09 #598 [Verbose] > x ]]) [[]]
00:00:09 #599 [Verbose] >         |> Seq.toArray
00:00:09 #600 [Verbose] >         |> String
00:00:09 #601 [Verbose] >
00:00:09 #602 [Verbose] >     "B",
00:00:09 #603 [Verbose] >     fun input ->
00:00:09 #604 [Verbose] >         input
00:00:09 #605 [Verbose] >         |> Seq.rev
00:00:09 #606 [Verbose] >         |> fun list -> Seq.foldBack (fun x acc -> if List.contains x acc then
00:00:09 #607 [Verbose] > acc else x :: acc) list [[]]
00:00:09 #608 [Verbose] >         |> Seq.rev
00:00:09 #609 [Verbose] >         |> Seq.toArray
00:00:09 #610 [Verbose] >         |> String
00:00:09 #611 [Verbose] >
00:00:09 #612 [Verbose] >     "C",
00:00:09 #613 [Verbose] >     fun input ->
00:00:09 #614 [Verbose] >         input
00:00:09 #615 [Verbose] >         |> Seq.rev
00:00:09 #616 [Verbose] >         |> fun list -> Seq.foldBack (fun x (set, acc) -> if Set.contains x set
00:00:09 #617 [Verbose] > then set, acc else set.Add x, x :: acc) list (Set.empty, [[]])
00:00:09 #618 [Verbose] >         |> snd
00:00:09 #619 [Verbose] >         |> Seq.rev
00:00:09 #620 [Verbose] >         |> Seq.toArray
00:00:09 #621 [Verbose] >         |> String
00:00:09 #622 [Verbose] >
00:00:09 #623 [Verbose] >     "D",
00:00:09 #624 [Verbose] >     fun input ->
00:00:09 #625 [Verbose] >         input
00:00:09 #626 [Verbose] >         |> Seq.fold (fun (set, acc) x -> if Set.contains x set then set, acc
00:00:09 #627 [Verbose] > else set.Add x, Array.append acc [[| x |]]) (Set.empty, [[||]])
00:00:09 #628 [Verbose] >         |> snd
00:00:09 #629 [Verbose] >         |> String
00:00:09 #630 [Verbose] >
00:00:09 #631 [Verbose] >     "E",
00:00:09 #632 [Verbose] >     fun input ->
00:00:09 #633 [Verbose] >         input
00:00:09 #634 [Verbose] >         |> Seq.fold (fun (set, acc) x -> if Set.contains x set then set, acc
00:00:09 #635 [Verbose] > else set.Add x, x :: acc) (Set.empty, [[]])
00:00:09 #636 [Verbose] >         |> snd
00:00:09 #637 [Verbose] >         |> List.rev
00:00:09 #638 [Verbose] >         |> List.toArray
00:00:09 #639 [Verbose] >         |> String
00:00:09 #640 [Verbose] >
00:00:09 #641 [Verbose] >     "F",
00:00:09 #642 [Verbose] >     fun input ->
00:00:09 #643 [Verbose] >         input
00:00:09 #644 [Verbose] >         |> Seq.fold (fun (set, acc) x -> if Set.contains x set then set, acc
00:00:09 #645 [Verbose] > else set.Add x, acc @ [[ x ]]) (Set.empty, [[]])
00:00:09 #646 [Verbose] >         |> snd
00:00:09 #647 [Verbose] >         |> List.toArray
00:00:09 #648 [Verbose] >         |> String
00:00:09 #649 [Verbose] >
00:00:09 #650 [Verbose] >     "G",
00:00:09 #651 [Verbose] >     fun input ->
00:00:09 #652 [Verbose] >         input
00:00:09 #653 [Verbose] >         |> Seq.fold (fun (set, acc) x -> if Set.contains x set then set, acc
00:00:09 #654 [Verbose] > else set.Add x, x :: acc) (Set.empty, [[]])
00:00:09 #655 [Verbose] >         |> snd
00:00:09 #656 [Verbose] >         |> List.toArray
00:00:09 #657 [Verbose] >         |> Array.rev
00:00:09 #658 [Verbose] >         |> String
00:00:09 #659 [Verbose] >
00:00:09 #660 [Verbose] >     "H",
00:00:09 #661 [Verbose] >     fun input ->
00:00:09 #662 [Verbose] >         input
00:00:09 #663 [Verbose] >         |> Seq.toList
00:00:09 #664 [Verbose] >         |> fun list ->
00:00:09 #665 [Verbose] >             let rec loop set = function
00:00:09 #666 [Verbose] >                 | head :: tail when Set.contains head set -> loop set tail
00:00:09 #667 [Verbose] >                 | head :: tail -> (loop (set.Add head) tail) @ [[ head ]]
00:00:09 #668 [Verbose] >                 | [[]] -> [[]]
00:00:09 #669 [Verbose] >             loop Set.empty list
00:00:09 #670 [Verbose] >             |> List.rev
00:00:09 #671 [Verbose] >         |> List.toArray
00:00:09 #672 [Verbose] >         |> String
00:00:09 #673 [Verbose] >
00:00:09 #674 [Verbose] >     "I",
00:00:09 #675 [Verbose] >     fun input ->
00:00:09 #676 [Verbose] >         input
00:00:09 #677 [Verbose] >         |> Seq.toList
00:00:09 #678 [Verbose] >         |> fun list ->
00:00:09 #679 [Verbose] >             let rec loop set = function
00:00:09 #680 [Verbose] >                 | head :: tail when Set.contains head set -> loop set tail
00:00:09 #681 [Verbose] >                 | head :: tail -> loop (set.Add head) tail |> Array.append [[|
00:00:09 #682 [Verbose] > head |]]
00:00:09 #683 [Verbose] >                 | [[]] -> [[||]]
00:00:09 #684 [Verbose] >             loop Set.empty list
00:00:09 #685 [Verbose] >         |> String
00:00:09 #686 [Verbose] >
00:00:09 #687 [Verbose] >     "J",
00:00:09 #688 [Verbose] >     fun input ->
00:00:09 #689 [Verbose] >         input
00:00:09 #690 [Verbose] >         |> Seq.toList
00:00:09 #691 [Verbose] >         |> fun list ->
00:00:09 #692 [Verbose] >             let rec loop set = function
00:00:09 #693 [Verbose] >                 | head :: tail when Set.contains head set -> loop set tail
00:00:09 #694 [Verbose] >                 | head :: tail -> head :: loop (set.Add head) tail
00:00:09 #695 [Verbose] >                 | [[]] -> [[]]
00:00:09 #696 [Verbose] >             loop Set.empty list
00:00:09 #697 [Verbose] >         |> List.toArray
00:00:09 #698 [Verbose] >         |> String
00:00:09 #699 [Verbose] >
00:00:09 #700 [Verbose] >     "K",
00:00:09 #701 [Verbose] >     fun input ->
00:00:09 #702 [Verbose] >         input
00:00:09 #703 [Verbose] >         |> Seq.distinct
00:00:09 #704 [Verbose] >         |> Seq.toArray
00:00:09 #705 [Verbose] >         |> String
00:00:09 #706 [Verbose] > ]]
00:00:09 #707 [Verbose] > let testCases = seq {
00:00:09 #708 [Verbose] >     "abc", "abc"
00:00:09 #709 [Verbose] >     "accabb", "acb"
00:00:09 #710 [Verbose] >     "pprrqqpp", "prq"
00:00:09 #711 [Verbose] >
00:00:09 #712 [Verbose] > "aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbbbbb
00:00:09 #713 [Verbose] > ", "acb"
00:00:09 #714 [Verbose] > }
00:00:09 #715 [Verbose] > let rec uniqueLettersTests = runAll (nameof uniqueLettersTests) _count solutions
00:00:09 #716 [Verbose] > testCases
00:00:09 #717 [Verbose] > uniqueLettersTests
00:00:09 #718 [Verbose] > |> sortResultList
00:01:17 #719 [Verbose] >
00:01:17 #720 [Verbose] > ╭─[ 1.13m - stdout ]───────────────────────────────────────────────────────────╮
00:01:17 #721 [Verbose] > │                                                                              │
00:01:17 #722 [Verbose] > │                                                                              │
00:01:17 #723 [Verbose] > │ Test: uniqueLettersTests                                                     │
00:01:17 #724 [Verbose] > │                                                                              │
00:01:17 #725 [Verbose] > │ Solution: abc                                                                │
00:01:17 #726 [Verbose] > │ Test case 1. A. Time: 1164L                                                  │
00:01:17 #727 [Verbose] > │ Test case 2. B. Time: 1637L                                                  │
00:01:17 #728 [Verbose] > │ Test case 3. C. Time: 2074L                                                  │
00:01:17 #729 [Verbose] > │ Test case 4. D. Time: 1321L                                                  │
00:01:17 #730 [Verbose] > │ Test case 5. E. Time: 892L                                                   │
00:01:17 #731 [Verbose] > │ Test case 6. F. Time: 843L                                                   │
00:01:17 #732 [Verbose] > │ Test case 7. G. Time: 815L                                                   │
00:01:17 #733 [Verbose] > │ Test case 8. H. Time: 923L                                                   │
00:01:17 #734 [Verbose] > │ Test case 9. I. Time: 815L                                                   │
00:01:17 #735 [Verbose] > │ Test case 10. J. Time: 818L                                                  │
00:01:17 #736 [Verbose] > │ Test case 11. K. Time: 840L                                                  │
00:01:17 #737 [Verbose] > │                                                                              │
00:01:17 #738 [Verbose] > │ Solution: accabb                                                             │
00:01:17 #739 [Verbose] > │ Test case 1. A. Time: 858L                                                   │
00:01:17 #740 [Verbose] > │ Test case 2. B. Time: 1079L                                                  │
00:01:17 #741 [Verbose] > │ Test case 3. C. Time: 1365L                                                  │
00:01:17 #742 [Verbose] > │ Test case 4. D. Time: 888L                                                   │
00:01:17 #743 [Verbose] > │ Test case 5. E. Time: 931L                                                   │
00:01:17 #744 [Verbose] > │ Test case 6. F. Time: 974L                                                   │
00:01:17 #745 [Verbose] > │ Test case 7. G. Time: 981L                                                   │
00:01:17 #746 [Verbose] > │ Test case 8. H. Time: 1048L                                                  │
00:01:17 #747 [Verbose] > │ Test case 9. I. Time: 976L                                                   │
00:01:17 #748 [Verbose] > │ Test case 10. J. Time: 847L                                                  │
00:01:17 #749 [Verbose] > │ Test case 11. K. Time: 728L                                                  │
00:01:17 #750 [Verbose] > │                                                                              │
00:01:17 #751 [Verbose] > │ Solution: pprrqqpp                                                           │
00:01:17 #752 [Verbose] > │ Test case 1. A. Time: 851L                                                   │
00:01:17 #753 [Verbose] > │ Test case 2. B. Time: 997L                                                   │
00:01:17 #754 [Verbose] > │ Test case 3. C. Time: 1425L                                                  │
00:01:17 #755 [Verbose] > │ Test case 4. D. Time: 962L                                                   │
00:01:17 #756 [Verbose] > │ Test case 5. E. Time: 969L                                                   │
00:01:17 #757 [Verbose] > │ Test case 6. F. Time: 963L                                                   │
00:01:17 #758 [Verbose] > │ Test case 7. G. Time: 911L                                                   │
00:01:17 #759 [Verbose] > │ Test case 8. H. Time: 1017L                                                  │
00:01:17 #760 [Verbose] > │ Test case 9. I. Time: 954L                                                   │
00:01:17 #761 [Verbose] > │ Test case 10. J. Time: 895L                                                  │
00:01:17 #762 [Verbose] > │ Test case 11. K. Time: 719L                                                  │
00:01:17 #763 [Verbose] > │                                                                              │
00:01:17 #764 [Verbose] > │ Solution:                                                                    │
00:01:17 #765 [Verbose] > │ aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbb │
00:01:17 #766 [Verbose] > │ bbb                                                                          │
00:01:17 #767 [Verbose] > │ Test case 1. A. Time: 2308L                                                  │
00:01:17 #768 [Verbose] > │ Test case 2. B. Time: 2536L                                                  │
00:01:17 #769 [Verbose] > │ Test case 3. C. Time: 4164L                                                  │
00:01:17 #770 [Verbose] > │ Test case 4. D. Time: 2586L                                                  │
00:01:17 #771 [Verbose] > │ Test case 5. E. Time: 2699L                                                  │
00:01:17 #772 [Verbose] > │ Test case 6. F. Time: 2712L                                                  │
00:01:17 #773 [Verbose] > │ Test case 7. G. Time: 2758L                                                  │
00:01:17 #774 [Verbose] > │ Test case 8. H. Time: 2601L                                                  │
00:01:17 #775 [Verbose] > │ Test case 9. I. Time: 2570L                                                  │
00:01:17 #776 [Verbose] > │ Test case 10. J. Time: 2374L                                                 │
00:01:17 #777 [Verbose] > │ Test case 11. K. Time: 1340L                                                 │
00:01:17 #778 [Verbose] > │                                                                              │
00:01:17 #779 [Verbose] > │ Input                                                                        │
00:01:17 #780 [Verbose] > │ | Expected	| Result	| Best                                                       │
00:01:17 #781 [Verbose] > │ ---                                                                          │
00:01:17 #782 [Verbose] > │ | ---     	| ---   	| ---                                                        │
00:01:17 #783 [Verbose] > │ abc                                                                          │
00:01:17 #784 [Verbose] > │ | abc     	| abc   	| (7, 815)                                                   │
00:01:17 #785 [Verbose] > │ accabb                                                                       │
00:01:17 #786 [Verbose] > │ | acb     	| acb   	| (11, 728)                                                  │
00:01:17 #787 [Verbose] > │ pprrqqpp                                                                     │
00:01:17 #788 [Verbose] > │ | prq     	| prq   	| (11, 719)                                                  │
00:01:17 #789 [Verbose] > │ aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbb │
00:01:17 #790 [Verbose] > │ bbb	| acb     	| acb   	| (11, 1340)                                               │
00:01:17 #791 [Verbose] > │                                                                              │
00:01:17 #792 [Verbose] > │ Average Ranking                                                              │
00:01:17 #793 [Verbose] > │ Test case 11. Average Time: 906L                                             │
00:01:17 #794 [Verbose] > │ Test case 10. Average Time: 1233L                                            │
00:01:17 #795 [Verbose] > │ Test case 1. Average Time: 1295L                                             │
00:01:17 #796 [Verbose] > │ Test case 9. Average Time: 1328L                                             │
00:01:17 #797 [Verbose] > │ Test case 7. Average Time: 1366L                                             │
00:01:17 #798 [Verbose] > │ Test case 5. Average Time: 1372L                                             │
00:01:17 #799 [Verbose] > │ Test case 6. Average Time: 1373L                                             │
00:01:17 #800 [Verbose] > │ Test case 8. Average Time: 1397L                                             │
00:01:17 #801 [Verbose] > │ Test case 4. Average Time: 1439L                                             │
00:01:17 #802 [Verbose] > │ Test case 2. Average Time: 1562L                                             │
00:01:17 #803 [Verbose] > │ Test case 3. Average Time: 2257L                                             │
00:01:17 #804 [Verbose] > │                                                                              │
00:01:17 #805 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:17 #806 [Verbose] >
00:01:17 #807 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:17 #808 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:17 #809 [Verbose] > │ ## rotateStringsTests                                                        │
00:01:17 #810 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:17 #811 [Verbose] >
00:01:17 #812 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:17 #813 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:17 #814 [Verbose] > │ https://www.hackerrank.com/challenges/rotate-string/forum                    │
00:01:17 #815 [Verbose] > │                                                                              │
00:01:17 #816 [Verbose] > │ Test: RotateStrings                                                          │
00:01:17 #817 [Verbose] > │                                                                              │
00:01:17 #818 [Verbose] > │ Solution: abc                                                                │
00:01:17 #819 [Verbose] > │ Test case 1. A. Time: 1842L                                                  │
00:01:17 #820 [Verbose] > │ Test case 2. B. Time: 1846L                                                  │
00:01:17 #821 [Verbose] > │ Test case 3. C. Time: 1936L                                                  │
00:01:17 #822 [Verbose] > │ Test case 4. CA. Time: 2224L                                                 │
00:01:17 #823 [Verbose] > │ Test case 5. CB. Time: 2329L                                                 │
00:01:17 #824 [Verbose] > │ Test case 6. D. Time: 2474L                                                  │
00:01:17 #825 [Verbose] > │ Test case 7. E. Time: 1664L                                                  │
00:01:17 #826 [Verbose] > │ Test case 8. F. Time: 1517L                                                  │
00:01:17 #827 [Verbose] > │ Test case 9. FA. Time: 1651L                                                 │
00:01:17 #828 [Verbose] > │ Test case 10. FB. Time: 3764L                                                │
00:01:17 #829 [Verbose] > │ Test case 11. FC. Time: 5415L                                                │
00:01:17 #830 [Verbose] > │                                                                              │
00:01:17 #831 [Verbose] > │ Solution: abcde                                                              │
00:01:17 #832 [Verbose] > │ Test case 1. A. Time: 3356L                                                  │
00:01:17 #833 [Verbose] > │ Test case 2. B. Time: 2592L                                                  │
00:01:17 #834 [Verbose] > │ Test case 3. C. Time: 2346L                                                  │
00:01:17 #835 [Verbose] > │ Test case 4. CA. Time: 2997L                                                 │
00:01:17 #836 [Verbose] > │ Test case 5. CB. Time: 3061L                                                 │
00:01:17 #837 [Verbose] > │ Test case 6. D. Time: 4051L                                                  │
00:01:17 #838 [Verbose] > │ Test case 7. E. Time: 1905L                                                  │
00:01:17 #839 [Verbose] > │ Test case 8. F. Time: 1771L                                                  │
00:01:17 #840 [Verbose] > │ Test case 9. FA. Time: 2175L                                                 │
00:01:17 #841 [Verbose] > │ Test case 10. FB. Time: 3275L                                                │
00:01:17 #842 [Verbose] > │ Test case 11. FC. Time: 5266L                                                │
00:01:17 #843 [Verbose] > │                                                                              │
00:01:17 #844 [Verbose] > │ Solution: abcdefghi                                                          │
00:01:17 #845 [Verbose] > │ Test case 1. A. Time: 4492L                                                  │
00:01:17 #846 [Verbose] > │ Test case 2. B. Time: 3526L                                                  │
00:01:17 #847 [Verbose] > │ Test case 3. C. Time: 3583L                                                  │
00:01:17 #848 [Verbose] > │ Test case 4. CA. Time: 3711L                                                 │
00:01:17 #849 [Verbose] > │ Test case 5. CB. Time: 4783L                                                 │
00:01:17 #850 [Verbose] > │ Test case 6. D. Time: 7557L                                                  │
00:01:17 #851 [Verbose] > │ Test case 7. E. Time: 3452L                                                  │
00:01:17 #852 [Verbose] > │ Test case 8. F. Time: 3050L                                                  │
00:01:17 #853 [Verbose] > │ Test case 9. FA. Time: 3275L                                                 │
00:01:17 #854 [Verbose] > │ Test case 10. FB. Time: 4635L                                                │
00:01:17 #855 [Verbose] > │ Test case 11. FC. Time: 5616L                                                │
00:01:17 #856 [Verbose] > │                                                                              │
00:01:17 #857 [Verbose] > │ Solution: abab                                                               │
00:01:17 #858 [Verbose] > │ Test case 1. A. Time: 2093L                                                  │
00:01:17 #859 [Verbose] > │ Test case 2. B. Time: 1843L                                                  │
00:01:17 #860 [Verbose] > │ Test case 3. C. Time: 1746L                                                  │
00:01:17 #861 [Verbose] > │ Test case 4. CA. Time: 2085L                                                 │
00:01:17 #862 [Verbose] > │ Test case 5. CB. Time: 2139L                                                 │
00:01:17 #863 [Verbose] > │ Test case 6. D. Time: 2095L                                                  │
00:01:17 #864 [Verbose] > │ Test case 7. E. Time: 1723L                                                  │
00:01:17 #865 [Verbose] > │ Test case 8. F. Time: 1558L                                                  │
00:01:17 #866 [Verbose] > │ Test case 9. FA. Time: 1620L                                                 │
00:01:17 #867 [Verbose] > │ Test case 10. FB. Time: 2319L                                                │
00:01:17 #868 [Verbose] > │ Test case 11. FC. Time: 3918L                                                │
00:01:17 #869 [Verbose] > │                                                                              │
00:01:17 #870 [Verbose] > │ Solution: aa                                                                 │
00:01:17 #871 [Verbose] > │ Test case 1. A. Time: 1107L                                                  │
00:01:17 #872 [Verbose] > │ Test case 2. B. Time: 1241L                                                  │
00:01:17 #873 [Verbose] > │ Test case 3. C. Time: 1183L                                                  │
00:01:17 #874 [Verbose] > │ Test case 4. CA. Time: 1563L                                                 │
00:01:17 #875 [Verbose] > │ Test case 5. CB. Time: 1525L                                                 │
00:01:17 #876 [Verbose] > │ Test case 6. D. Time: 1591L                                                  │
00:01:17 #877 [Verbose] > │ Test case 7. E. Time: 1327L                                                  │
00:01:17 #878 [Verbose] > │ Test case 8. F. Time: 1151L                                                  │
00:01:17 #879 [Verbose] > │ Test case 9. FA. Time: 1180L                                                 │
00:01:17 #880 [Verbose] > │ Test case 10. FB. Time: 1733L                                                │
00:01:17 #881 [Verbose] > │ Test case 11. FC. Time: 2817L                                                │
00:01:17 #882 [Verbose] > │                                                                              │
00:01:17 #883 [Verbose] > │ Solution: z                                                                  │
00:01:17 #884 [Verbose] > │ Test case 1. A. Time: 816L                                                   │
00:01:17 #885 [Verbose] > │ Test case 2. B. Time: 745L                                                   │
00:01:17 #886 [Verbose] > │ Test case 3. C. Time: 928L                                                   │
00:01:17 #887 [Verbose] > │ Test case 4. CA. Time: 1375L                                                 │
00:01:17 #888 [Verbose] > │ Test case 5. CB. Time: 1029L                                                 │
00:01:17 #889 [Verbose] > │ Test case 6. D. Time: 852L                                                   │
00:01:17 #890 [Verbose] > │ Test case 7. E. Time: 712L                                                   │
00:01:17 #891 [Verbose] > │ Test case 8. F. Time: 263L                                                   │
00:01:17 #892 [Verbose] > │ Test case 9. FA. Time: 232L                                                  │
00:01:17 #893 [Verbose] > │ Test case 10. FB. Time: 773L                                                 │
00:01:17 #894 [Verbose] > │ Test case 11. FC. Time: 1789L                                                │
00:01:17 #895 [Verbose] > │                                                                              │
00:01:17 #896 [Verbose] > │ Input           | Expected                                                   │
00:01:17 #897 [Verbose] > │                                                                              │
00:01:17 #898 [Verbose] > │ | Result                                                                     │
00:01:17 #899 [Verbose] > │                                                                              │
00:01:17 #900 [Verbose] > │ | Best                                                                       │
00:01:17 #901 [Verbose] > │ ---             | ---                                                        │
00:01:17 #902 [Verbose] > │                                                                              │
00:01:17 #903 [Verbose] > │ | ---                                                                        │
00:01:17 #904 [Verbose] > │                                                                              │
00:01:17 #905 [Verbose] > │ | ---                                                                        │
00:01:17 #906 [Verbose] > │ abc             | bca cab abc                                                │
00:01:17 #907 [Verbose] > │                                                                              │
00:01:17 #908 [Verbose] > │ | bca cab abc                                                                │
00:01:17 #909 [Verbose] > │                                                                              │
00:01:17 #910 [Verbose] > │ | (8, 1517)                                                                  │
00:01:17 #911 [Verbose] > │ abcde           | bcdea cdeab deabc eabcd abcde                              │
00:01:17 #912 [Verbose] > │ | bcdea cdeab deabc eabcd abcde                                              │
00:01:17 #913 [Verbose] > │ | (8, 1771)                                                                  │
00:01:17 #914 [Verbose] > │ abcdefghi       | bcdefghia cdefghiab defghiabc efghiabcd fghiabcde          │
00:01:17 #915 [Verbose] > │ ghiabcdef hiabcdefg iabcdefgh abcdefghi       | bcdefghia cdefghiab          │
00:01:17 #916 [Verbose] > │ defghiabc efghiabcd fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi        │
00:01:17 #917 [Verbose] > │ | (8, 3050)                                                                  │
00:01:17 #918 [Verbose] > │ abab            | baba abab baba abab                                        │
00:01:17 #919 [Verbose] > │                                                                              │
00:01:17 #920 [Verbose] > │ | baba abab baba abab                                                        │
00:01:17 #921 [Verbose] > │                                                                              │
00:01:17 #922 [Verbose] > │ | (8, 1558)                                                                  │
00:01:17 #923 [Verbose] > │ aa              | aa aa                                                      │
00:01:17 #924 [Verbose] > │                                                                              │
00:01:17 #925 [Verbose] > │ | aa aa                                                                      │
00:01:17 #926 [Verbose] > │                                                                              │
00:01:17 #927 [Verbose] > │ | (1, 1107)                                                                  │
00:01:17 #928 [Verbose] > │ z               | z                                                          │
00:01:17 #929 [Verbose] > │                                                                              │
00:01:17 #930 [Verbose] > │ | z                                                                          │
00:01:17 #931 [Verbose] > │                                                                              │
00:01:17 #932 [Verbose] > │ | (9, 232)                                                                   │
00:01:17 #933 [Verbose] > │                                                                              │
00:01:17 #934 [Verbose] > │ Averages                                                                     │
00:01:17 #935 [Verbose] > │ Test case 1. Average Time: 2284L                                             │
00:01:17 #936 [Verbose] > │ Test case 2. Average Time: 1965L                                             │
00:01:17 #937 [Verbose] > │ Test case 3. Average Time: 1953L                                             │
00:01:17 #938 [Verbose] > │ Test case 4. Average Time: 2325L                                             │
00:01:17 #939 [Verbose] > │ Test case 5. Average Time: 2477L                                             │
00:01:17 #940 [Verbose] > │ Test case 6. Average Time: 3103L                                             │
00:01:17 #941 [Verbose] > │ Test case 7. Average Time: 1797L                                             │
00:01:17 #942 [Verbose] > │ Test case 8. Average Time: 1551L                                             │
00:01:17 #943 [Verbose] > │ Test case 9. Average Time: 1688L                                             │
00:01:17 #944 [Verbose] > │ Test case 10. Average Time: 2749L                                            │
00:01:17 #945 [Verbose] > │ Test case 11. Average Time: 4136L                                            │
00:01:17 #946 [Verbose] > │                                                                              │
00:01:17 #947 [Verbose] > │ Ranking                                                                      │
00:01:17 #948 [Verbose] > │ Test case 11. Average Time: 4136L                                            │
00:01:17 #949 [Verbose] > │ Test case 6. Average Time: 3103L                                             │
00:01:17 #950 [Verbose] > │ Test case 10. Average Time: 2749L                                            │
00:01:17 #951 [Verbose] > │ Test case 5. Average Time: 2477L                                             │
00:01:17 #952 [Verbose] > │ Test case 4. Average Time: 2325L                                             │
00:01:17 #953 [Verbose] > │ Test case 1. Average Time: 2284L                                             │
00:01:17 #954 [Verbose] > │ Test case 2. Average Time: 1965L                                             │
00:01:17 #955 [Verbose] > │ Test case 3. Average Time: 1953L                                             │
00:01:17 #956 [Verbose] > │ Test case 7. Average Time: 1797L                                             │
00:01:17 #957 [Verbose] > │ Test case 9. Average Time: 1688L                                             │
00:01:17 #958 [Verbose] > │ Test case 8. Average Time: 1551L                                             │
00:01:17 #959 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:17 #960 [Verbose] >
00:01:17 #961 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:17 #962 [Verbose] > //// test
00:01:17 #963 [Verbose] >
00:01:17 #964 [Verbose] > let solutions = [[
00:01:17 #965 [Verbose] >     "A",
00:01:17 #966 [Verbose] >     fun (input: string) ->
00:01:17 #967 [Verbose] >         let resultList =
00:01:17 #968 [Verbose] >             List.fold (fun acc x ->
00:01:17 #969 [Verbose] >                 let rotate (text: string) (letter: string) = text.Substring (1,
00:01:17 #970 [Verbose] > input.Length - 1) + letter
00:01:17 #971 [Verbose] >                 [[ rotate (if acc.IsEmpty then input else acc.Head) (string x)
00:01:17 #972 [Verbose] > ]] @ acc
00:01:17 #973 [Verbose] >             ) [[]] (Seq.toList input)
00:01:17 #974 [Verbose] >
00:01:17 #975 [Verbose] >         (resultList, "")
00:01:17 #976 [Verbose] >         ||> List.foldBack (fun acc x -> x + acc + " ")
00:01:17 #977 [Verbose] >         |> _.TrimEnd()
00:01:17 #978 [Verbose] >
00:01:17 #979 [Verbose] >     "B",
00:01:17 #980 [Verbose] >     fun input ->
00:01:17 #981 [Verbose] >         input
00:01:17 #982 [Verbose] >         |> Seq.toList
00:01:17 #983 [Verbose] >         |> List.fold (fun (acc: string list) letter ->
00:01:17 #984 [Verbose] >             let last =
00:01:17 #985 [Verbose] >                 if acc.IsEmpty
00:01:17 #986 [Verbose] >                 then input
00:01:17 #987 [Verbose] >                 else acc.Head
00:01:17 #988 [Verbose] >
00:01:17 #989 [Verbose] >             let item = last.[[1 .. input.Length - 1]] + string letter
00:01:17 #990 [Verbose] >
00:01:17 #991 [Verbose] >             item :: acc
00:01:17 #992 [Verbose] >         ) [[]]
00:01:17 #993 [Verbose] >         |> List.rev
00:01:17 #994 [Verbose] >         |> String.concat " "
00:01:17 #995 [Verbose] >
00:01:17 #996 [Verbose] >     "C",
00:01:17 #997 [Verbose] >     fun input ->
00:01:17 #998 [Verbose] >         input
00:01:17 #999 [Verbose] >         |> Seq.toList
00:01:17 #1000 [Verbose] >         |> List.fold (fun (acc: string list) letter -> acc.Head.[[ 1 ..
00:01:17 #1001 [Verbose] > input.Length - 1 ]] + string letter :: acc) [[ input ]]
00:01:17 #1002 [Verbose] >         |> List.rev
00:01:17 #1003 [Verbose] >         |> List.skip 1
00:01:17 #1004 [Verbose] >         |> String.concat " "
00:01:17 #1005 [Verbose] >
00:01:17 #1006 [Verbose] >     "CA",
00:01:17 #1007 [Verbose] >     fun input ->
00:01:17 #1008 [Verbose] >         input
00:01:17 #1009 [Verbose] >         |> Seq.fold (fun (acc: string list) letter -> acc.Head.[[ 1 ..
00:01:17 #1010 [Verbose] > input.Length - 1 ]] + string letter :: acc) [[ input ]]
00:01:17 #1011 [Verbose] >         |> Seq.rev
00:01:17 #1012 [Verbose] >         |> Seq.skip 1
00:01:17 #1013 [Verbose] >         |> String.concat " "
00:01:17 #1014 [Verbose] >
00:01:17 #1015 [Verbose] >     "CB",
00:01:17 #1016 [Verbose] >     fun input ->
00:01:17 #1017 [Verbose] >         input
00:01:17 #1018 [Verbose] >         |> Seq.toArray
00:01:17 #1019 [Verbose] >         |> Array.fold (fun (acc: string[[]]) letter -> acc |> Array.append [[|
00:01:17 #1020 [Verbose] > acc.[[0]].[[ 1 .. input.Length - 1 ]] + string letter |]]) [[| input |]]
00:01:17 #1021 [Verbose] >         |> Array.rev
00:01:17 #1022 [Verbose] >         |> Array.skip 1
00:01:17 #1023 [Verbose] >         |> String.concat " "
00:01:17 #1024 [Verbose] >
00:01:17 #1025 [Verbose] >     "D",
00:01:17 #1026 [Verbose] >     fun input ->
00:01:17 #1027 [Verbose] >         input
00:01:17 #1028 [Verbose] >         |> Seq.toList
00:01:17 #1029 [Verbose] >         |> fun list ->
00:01:17 #1030 [Verbose] >             let rec loop (acc: char list list) = function
00:01:17 #1031 [Verbose] >                 | _ when acc.Length = list.Length -> acc
00:01:17 #1032 [Verbose] >                 | head :: tail ->
00:01:17 #1033 [Verbose] >                     let item = tail @ [[ head ]]
00:01:17 #1034 [Verbose] >                     loop (item :: acc) item
00:01:17 #1035 [Verbose] >                 | [[]] -> [[]]
00:01:17 #1036 [Verbose] >             loop [[]] list
00:01:17 #1037 [Verbose] >         |> List.rev
00:01:17 #1038 [Verbose] >         |> List.map (List.toArray >> String)
00:01:17 #1039 [Verbose] >         |> String.concat " "
00:01:17 #1040 [Verbose] >
00:01:17 #1041 [Verbose] >     "E",
00:01:17 #1042 [Verbose] >     fun input ->
00:01:17 #1043 [Verbose] >         input
00:01:17 #1044 [Verbose] >         |> Seq.toList
00:01:17 #1045 [Verbose] >         |> fun list ->
00:01:17 #1046 [Verbose] >             let rec loop (last: string) = function
00:01:17 #1047 [Verbose] >                 | head :: tail ->
00:01:17 #1048 [Verbose] >                     let item = last.[[1 .. input.Length - 1]] + string head
00:01:17 #1049 [Verbose] >                     item :: loop item tail
00:01:17 #1050 [Verbose] >                 | [[]] -> [[]]
00:01:17 #1051 [Verbose] >             loop input list
00:01:17 #1052 [Verbose] >         |> String.concat " "
00:01:17 #1053 [Verbose] >
00:01:17 #1054 [Verbose] >     "F",
00:01:17 #1055 [Verbose] >     fun input ->
00:01:17 #1056 [Verbose] >         Array.singleton 0
00:01:17 #1057 [Verbose] >         |> Array.append [[| 1 .. input.Length - 1 |]]
00:01:17 #1058 [Verbose] >         |> Array.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]])
00:01:17 #1059 [Verbose] >         |> String.concat " "
00:01:17 #1060 [Verbose] >
00:01:17 #1061 [Verbose] >     "FA",
00:01:17 #1062 [Verbose] >     fun input ->
00:01:17 #1063 [Verbose] >         List.singleton 0
00:01:17 #1064 [Verbose] >         |> List.append [[ 1 .. input.Length - 1 ]]
00:01:17 #1065 [Verbose] >         |> List.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]])
00:01:17 #1066 [Verbose] >         |> String.concat " "
00:01:17 #1067 [Verbose] >
00:01:17 #1068 [Verbose] >     "FB",
00:01:17 #1069 [Verbose] >     fun input ->
00:01:17 #1070 [Verbose] >         Seq.singleton 0
00:01:17 #1071 [Verbose] >         |> Seq.append (seq { 1 .. input.Length - 1 })
00:01:17 #1072 [Verbose] >         |> Seq.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]])
00:01:17 #1073 [Verbose] >         |> String.concat " "
00:01:17 #1074 [Verbose] >
00:01:17 #1075 [Verbose] >     "FC",
00:01:17 #1076 [Verbose] >     fun input ->
00:01:17 #1077 [Verbose] >         Array.singleton 0
00:01:17 #1078 [Verbose] >         |> Array.append [[| 1 .. input.Length - 1 |]]
00:01:17 #1079 [Verbose] >         |> Array.Parallel.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]])
00:01:17 #1080 [Verbose] >         |> String.concat " "
00:01:17 #1081 [Verbose] > ]]
00:01:17 #1082 [Verbose] > let testCases = seq {
00:01:17 #1083 [Verbose] >     "abc", "bca cab abc"
00:01:17 #1084 [Verbose] >     "abcde", "bcdea cdeab deabc eabcd abcde"
00:01:17 #1085 [Verbose] >     "abcdefghi", "bcdefghia cdefghiab defghiabc efghiabcd fghiabcde ghiabcdef
00:01:17 #1086 [Verbose] > hiabcdefg iabcdefgh abcdefghi"
00:01:17 #1087 [Verbose] >     "abab", "baba abab baba abab"
00:01:17 #1088 [Verbose] >     "aa", "aa aa"
00:01:17 #1089 [Verbose] >     "z", "z"
00:01:17 #1090 [Verbose] > }
00:01:17 #1091 [Verbose] > let rec rotateStringsTests = runAll (nameof rotateStringsTests) _count solutions
00:01:17 #1092 [Verbose] > testCases
00:01:17 #1093 [Verbose] > rotateStringsTests
00:01:17 #1094 [Verbose] > |> sortResultList
00:02:57 #1095 [Verbose] >
00:02:57 #1096 [Verbose] > ╭─[ 1.68m - stdout ]───────────────────────────────────────────────────────────╮
00:02:57 #1097 [Verbose] > │                                                                              │
00:02:57 #1098 [Verbose] > │                                                                              │
00:02:57 #1099 [Verbose] > │ Test: rotateStringsTests                                                     │
00:02:57 #1100 [Verbose] > │                                                                              │
00:02:57 #1101 [Verbose] > │ Solution: abc                                                                │
00:02:57 #1102 [Verbose] > │ Test case 1. A. Time: 1041L                                                  │
00:02:57 #1103 [Verbose] > │ Test case 2. B. Time: 1038L                                                  │
00:02:57 #1104 [Verbose] > │ Test case 3. C. Time: 1079L                                                  │
00:02:57 #1105 [Verbose] > │ Test case 4. CA. Time: 1499L                                                 │
00:02:57 #1106 [Verbose] > │ Test case 5. CB. Time: 1237L                                                 │
00:02:57 #1107 [Verbose] > │ Test case 6. D. Time: 1286L                                                  │
00:02:57 #1108 [Verbose] > │ Test case 7. E. Time: 986L                                                   │
00:02:57 #1109 [Verbose] > │ Test case 8. F. Time: 960L                                                   │
00:02:57 #1110 [Verbose] > │ Test case 9. FA. Time: 1051L                                                 │
00:02:57 #1111 [Verbose] > │ Test case 10. FB. Time: 1868L                                                │
00:02:57 #1112 [Verbose] > │ Test case 11. FC. Time: 2559L                                                │
00:02:57 #1113 [Verbose] > │                                                                              │
00:02:57 #1114 [Verbose] > │ Solution: abcde                                                              │
00:02:57 #1115 [Verbose] > │ Test case 1. A. Time: 1538L                                                  │
00:02:57 #1116 [Verbose] > │ Test case 2. B. Time: 1401L                                                  │
00:02:57 #1117 [Verbose] > │ Test case 3. C. Time: 1324L                                                  │
00:02:57 #1118 [Verbose] > │ Test case 4. CA. Time: 1492L                                                 │
00:02:57 #1119 [Verbose] > │ Test case 5. CB. Time: 1647L                                                 │
00:02:57 #1120 [Verbose] > │ Test case 6. D. Time: 1902L                                                  │
00:02:57 #1121 [Verbose] > │ Test case 7. E. Time: 1214L                                                  │
00:02:57 #1122 [Verbose] > │ Test case 8. F. Time: 1080L                                                  │
00:02:57 #1123 [Verbose] > │ Test case 9. FA. Time: 1331L                                                 │
00:02:57 #1124 [Verbose] > │ Test case 10. FB. Time: 1942L                                                │
00:02:57 #1125 [Verbose] > │ Test case 11. FC. Time: 2497L                                                │
00:02:57 #1126 [Verbose] > │                                                                              │
00:02:57 #1127 [Verbose] > │ Solution: abcdefghi                                                          │
00:02:57 #1128 [Verbose] > │ Test case 1. A. Time: 2450L                                                  │
00:02:57 #1129 [Verbose] > │ Test case 2. B. Time: 2156L                                                  │
00:02:57 #1130 [Verbose] > │ Test case 3. C. Time: 2135L                                                  │
00:02:57 #1131 [Verbose] > │ Test case 4. CA. Time: 2219L                                                 │
00:02:57 #1132 [Verbose] > │ Test case 5. CB. Time: 2462L                                                 │
00:02:57 #1133 [Verbose] > │ Test case 6. D. Time: 3812L                                                  │
00:02:57 #1134 [Verbose] > │ Test case 7. E. Time: 2120L                                                  │
00:02:57 #1135 [Verbose] > │ Test case 8. F. Time: 1728L                                                  │
00:02:57 #1136 [Verbose] > │ Test case 9. FA. Time: 1960L                                                 │
00:02:57 #1137 [Verbose] > │ Test case 10. FB. Time: 2845L                                                │
00:02:57 #1138 [Verbose] > │ Test case 11. FC. Time: 3250L                                                │
00:02:57 #1139 [Verbose] > │                                                                              │
00:02:57 #1140 [Verbose] > │ Solution: abab                                                               │
00:02:57 #1141 [Verbose] > │ Test case 1. A. Time: 1189L                                                  │
00:02:57 #1142 [Verbose] > │ Test case 2. B. Time: 1164L                                                  │
00:02:57 #1143 [Verbose] > │ Test case 3. C. Time: 1269L                                                  │
00:02:57 #1144 [Verbose] > │ Test case 4. CA. Time: 1372L                                                 │
00:02:57 #1145 [Verbose] > │ Test case 5. CB. Time: 1359L                                                 │
00:02:57 #1146 [Verbose] > │ Test case 6. D. Time: 1517L                                                  │
00:02:57 #1147 [Verbose] > │ Test case 7. E. Time: 1145L                                                  │
00:02:57 #1148 [Verbose] > │ Test case 8. F. Time: 931L                                                   │
00:02:57 #1149 [Verbose] > │ Test case 9. FA. Time: 1153L                                                 │
00:02:57 #1150 [Verbose] > │ Test case 10. FB. Time: 1708L                                                │
00:02:57 #1151 [Verbose] > │ Test case 11. FC. Time: 2429L                                                │
00:02:57 #1152 [Verbose] > │                                                                              │
00:02:57 #1153 [Verbose] > │ Solution: aa                                                                 │
00:02:57 #1154 [Verbose] > │ Test case 1. A. Time: 759L                                                   │
00:02:57 #1155 [Verbose] > │ Test case 2. B. Time: 834L                                                   │
00:02:57 #1156 [Verbose] > │ Test case 3. C. Time: 842L                                                   │
00:02:57 #1157 [Verbose] > │ Test case 4. CA. Time: 1049L                                                 │
00:02:57 #1158 [Verbose] > │ Test case 5. CB. Time: 947L                                                  │
00:02:57 #1159 [Verbose] > │ Test case 6. D. Time: 893L                                                   │
00:02:57 #1160 [Verbose] > │ Test case 7. E. Time: 733L                                                   │
00:02:57 #1161 [Verbose] > │ Test case 8. F. Time: 588L                                                   │
00:02:57 #1162 [Verbose] > │ Test case 9. FA. Time: 741L                                                  │
00:02:57 #1163 [Verbose] > │ Test case 10. FB. Time: 1286L                                                │
00:02:57 #1164 [Verbose] > │ Test case 11. FC. Time: 1974L                                                │
00:02:57 #1165 [Verbose] > │                                                                              │
00:02:57 #1166 [Verbose] > │ Solution: z                                                                  │
00:02:57 #1167 [Verbose] > │ Test case 1. A. Time: 398L                                                   │
00:02:57 #1168 [Verbose] > │ Test case 2. B. Time: 397L                                                   │
00:02:57 #1169 [Verbose] > │ Test case 3. C. Time: 561L                                                   │
00:02:57 #1170 [Verbose] > │ Test case 4. CA. Time: 885L                                                  │
00:02:57 #1171 [Verbose] > │ Test case 5. CB. Time: 617L                                                  │
00:02:57 #1172 [Verbose] > │ Test case 6. D. Time: 499L                                                   │
00:02:57 #1173 [Verbose] > │ Test case 7. E. Time: 392L                                                   │
00:02:57 #1174 [Verbose] > │ Test case 8. F. Time: 125L                                                   │
00:02:57 #1175 [Verbose] > │ Test case 9. FA. Time: 122L                                                  │
00:02:57 #1176 [Verbose] > │ Test case 10. FB. Time: 380L                                                 │
00:02:57 #1177 [Verbose] > │ Test case 11. FC. Time: 841L                                                 │
00:02:57 #1178 [Verbose] > │                                                                              │
00:02:57 #1179 [Verbose] > │ Input    	| Expected                                                           │
00:02:57 #1180 [Verbose] > │                                                                              │
00:02:57 #1181 [Verbose] > │ | Result                                                                     │
00:02:57 #1182 [Verbose] > │                                                                              │
00:02:57 #1183 [Verbose] > │ | Best                                                                       │
00:02:57 #1184 [Verbose] > │ ---      	| ---                                                                │
00:02:57 #1185 [Verbose] > │                                                                              │
00:02:57 #1186 [Verbose] > │ | ---                                                                        │
00:02:57 #1187 [Verbose] > │                                                                              │
00:02:57 #1188 [Verbose] > │ | ---                                                                        │
00:02:57 #1189 [Verbose] > │ abc      	| bca cab abc                                                        │
00:02:57 #1190 [Verbose] > │                                                                              │
00:02:57 #1191 [Verbose] > │ | bca cab abc                                                                │
00:02:57 #1192 [Verbose] > │                                                                              │
00:02:57 #1193 [Verbose] > │ | (8, 960)                                                                   │
00:02:57 #1194 [Verbose] > │ abcde    	| bcdea cdeab deabc eabcd abcde                                      │
00:02:57 #1195 [Verbose] > │ | bcdea cdeab deabc eabcd abcde                                              │
00:02:57 #1196 [Verbose] > │ | (8, 1080)                                                                  │
00:02:57 #1197 [Verbose] > │ abcdefghi	| bcdefghia cdefghiab defghiabc efghiabcd fghiabcde ghiabcdef        │
00:02:57 #1198 [Verbose] > │ hiabcdefg iabcdefgh abcdefghi	| bcdefghia cdefghiab defghiabc efghiabcd        │
00:02:57 #1199 [Verbose] > │ fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi	| (8, 1728)                  │
00:02:57 #1200 [Verbose] > │ abab     	| baba abab baba abab                                                │
00:02:57 #1201 [Verbose] > │ | baba abab baba abab                                                        │
00:02:57 #1202 [Verbose] > │ | (8, 931)                                                                   │
00:02:57 #1203 [Verbose] > │ aa       	| aa aa                                                              │
00:02:57 #1204 [Verbose] > │                                                                              │
00:02:57 #1205 [Verbose] > │ | aa aa                                                                      │
00:02:57 #1206 [Verbose] > │                                                                              │
00:02:57 #1207 [Verbose] > │ | (8, 588)                                                                   │
00:02:57 #1208 [Verbose] > │ z        	| z                                                                  │
00:02:57 #1209 [Verbose] > │                                                                              │
00:02:57 #1210 [Verbose] > │ | z                                                                          │
00:02:57 #1211 [Verbose] > │                                                                              │
00:02:57 #1212 [Verbose] > │ | (9, 122)                                                                   │
00:02:57 #1213 [Verbose] > │                                                                              │
00:02:57 #1214 [Verbose] > │ Average Ranking                                                              │
00:02:57 #1215 [Verbose] > │ Test case 8. Average Time: 902L                                              │
00:02:57 #1216 [Verbose] > │ Test case 9. Average Time: 1059L                                             │
00:02:57 #1217 [Verbose] > │ Test case 7. Average Time: 1098L                                             │
00:02:57 #1218 [Verbose] > │ Test case 2. Average Time: 1165L                                             │
00:02:57 #1219 [Verbose] > │ Test case 3. Average Time: 1201L                                             │
00:02:57 #1220 [Verbose] > │ Test case 1. Average Time: 1229L                                             │
00:02:57 #1221 [Verbose] > │ Test case 5. Average Time: 1378L                                             │
00:02:57 #1222 [Verbose] > │ Test case 4. Average Time: 1419L                                             │
00:02:57 #1223 [Verbose] > │ Test case 6. Average Time: 1651L                                             │
00:02:57 #1224 [Verbose] > │ Test case 10. Average Time: 1671L                                            │
00:02:57 #1225 [Verbose] > │ Test case 11. Average Time: 2258L                                            │
00:02:57 #1226 [Verbose] > │                                                                              │
00:02:57 #1227 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:57 #1228 [Verbose] >
00:02:57 #1229 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:57 #1230 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:57 #1231 [Verbose] > │ ## rotate_strings_tests                                                      │
00:02:57 #1232 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:57 #1233 [Verbose] >
00:02:57 #1234 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:57 #1235 [Verbose] > // // test
00:02:57 #1236 [Verbose] > // // timeout=60000
00:02:57 #1237 [Verbose] > // // print_code=true
00:02:57 #1238 [Verbose] >
00:02:57 #1239 [Verbose] > inl get_solutions () =
00:02:57 #1240 [Verbose] >     [[
00:02:57 #1241 [Verbose] >         // "A",
00:02:57 #1242 [Verbose] >         // fun (input : string) =>
00:02:57 #1243 [Verbose] >         //     let resultList =
00:02:57 #1244 [Verbose] >         //         List.fold (fun acc x =>
00:02:57 #1245 [Verbose] >         //             let rotate (text : string) (letter : string) =
00:02:57 #1246 [Verbose] > text.Substring (1, input.Length - 1) + letter
00:02:57 #1247 [Verbose] >         //             [[ rotate (if acc.IsEmpty then input else acc.Head)
00:02:57 #1248 [Verbose] > (string x) ]] /@ acc
00:02:57 #1249 [Verbose] >         //         ) [[]] (Seq.toList input)
00:02:57 #1250 [Verbose] >
00:02:57 #1251 [Verbose] >         //     List.foldBack (fun acc x => x + acc + " ") resultList ""
00:02:57 #1252 [Verbose] >         //     |> fun x => x.TrimEnd ()
00:02:57 #1253 [Verbose] >
00:02:57 #1254 [Verbose] >         // "B",
00:02:57 #1255 [Verbose] >         // fun input =>
00:02:57 #1256 [Verbose] >         //     input
00:02:57 #1257 [Verbose] >         //     |> Seq.toList
00:02:57 #1258 [Verbose] >         //     |> List.fold (fun (acc : string list) letter =>
00:02:57 #1259 [Verbose] >         //         let last =
00:02:57 #1260 [Verbose] >         //             if acc.IsEmpty
00:02:57 #1261 [Verbose] >         //             then input
00:02:57 #1262 [Verbose] >         //             else acc.Head
00:02:57 #1263 [Verbose] >
00:02:57 #1264 [Verbose] >         //         let item = last.[[1 .. input.Length - 1]] + string letter
00:02:57 #1265 [Verbose] >
00:02:57 #1266 [Verbose] >         //         item :: acc
00:02:57 #1267 [Verbose] >         //     ) [[]]
00:02:57 #1268 [Verbose] >         //     |> List.rev
00:02:57 #1269 [Verbose] >         //     |> String.concat " "
00:02:57 #1270 [Verbose] >
00:02:57 #1271 [Verbose] >         // "C",
00:02:57 #1272 [Verbose] >         // fun input =>
00:02:57 #1273 [Verbose] >         //     input
00:02:57 #1274 [Verbose] >         //     |> Seq.toList
00:02:57 #1275 [Verbose] >         //     |> List.fold (fun (acc : list string) letter => acc.Head.[[ 1 ..
00:02:57 #1276 [Verbose] > input.Length - 1 ]] + string letter :: acc) [[ input ]]
00:02:57 #1277 [Verbose] >         //     |> List.rev
00:02:57 #1278 [Verbose] >         //     |> List.skip 1
00:02:57 #1279 [Verbose] >         //     |> String.concat " "
00:02:57 #1280 [Verbose] >
00:02:57 #1281 [Verbose] >         // "CA",
00:02:57 #1282 [Verbose] >         // fun input =>
00:02:57 #1283 [Verbose] >         //     input
00:02:57 #1284 [Verbose] >         //     |> Seq.fold (fun (acc : list string) letter => acc.Head.[[ 1 ..
00:02:57 #1285 [Verbose] > input.Length - 1 ]] + string letter :: acc) [[ input ]]
00:02:57 #1286 [Verbose] >         //     |> Seq.rev
00:02:57 #1287 [Verbose] >         //     |> Seq.skip 1
00:02:57 #1288 [Verbose] >         //     |> String.concat " "
00:02:57 #1289 [Verbose] >
00:02:57 #1290 [Verbose] >         // "CB",
00:02:57 #1291 [Verbose] >         // fun input =>
00:02:57 #1292 [Verbose] >         //     input
00:02:57 #1293 [Verbose] >         //     |> Seq.toArray
00:02:57 #1294 [Verbose] >         //     |> Array.fold (fun (acc : a _ string) letter => acc |>
00:02:57 #1295 [Verbose] > Array.append (a ;[[ acc.[[0]].[[ 1 .. input.Length - 1 ]] + string letter ]]))
00:02:57 #1296 [Verbose] > (a ;[[ input ]])
00:02:57 #1297 [Verbose] >         //     |> Array.rev
00:02:57 #1298 [Verbose] >         //     |> Array.skip 1
00:02:57 #1299 [Verbose] >         //     |> String.concat " "
00:02:57 #1300 [Verbose] >
00:02:57 #1301 [Verbose] >         // "D",
00:02:57 #1302 [Verbose] >         // fun input =>
00:02:57 #1303 [Verbose] >         //     input
00:02:57 #1304 [Verbose] >         //     |> Seq.toList
00:02:57 #1305 [Verbose] >         //     |> fun list =>
00:02:57 #1306 [Verbose] >         //         let rec loop (acc : list (list char)) = function
00:02:57 #1307 [Verbose] >         //             | _ when acc.Length = list.Length => acc
00:02:57 #1308 [Verbose] >         //             | head :: tail =>
00:02:57 #1309 [Verbose] >         //                 let item = tail /@ [[ head ]]
00:02:57 #1310 [Verbose] >         //                 loop (item :: acc) item
00:02:57 #1311 [Verbose] >         //             | [[]] => [[]]
00:02:57 #1312 [Verbose] >         //         loop [[]] list
00:02:57 #1313 [Verbose] >         //     |> List.rev
00:02:57 #1314 [Verbose] >         //     |> List.map (List.toArray >> String)
00:02:57 #1315 [Verbose] >         //     |> String.concat " "
00:02:57 #1316 [Verbose] >
00:02:57 #1317 [Verbose] >         // "E",
00:02:57 #1318 [Verbose] >         // fun input =>
00:02:57 #1319 [Verbose] >         //     input
00:02:57 #1320 [Verbose] >         //     |> Seq.toList
00:02:57 #1321 [Verbose] >         //     |> fun list =>
00:02:57 #1322 [Verbose] >         //         let rec loop (last : string) = function
00:02:57 #1323 [Verbose] >         //             | head :: tail =>
00:02:57 #1324 [Verbose] >         //                 let item = last.[[1 .. input.Length - 1]] + string
00:02:57 #1325 [Verbose] > head
00:02:57 #1326 [Verbose] >         //                 item :: loop item tail
00:02:57 #1327 [Verbose] >         //             | [[]] => [[]]
00:02:57 #1328 [Verbose] >         //         loop input list
00:02:57 #1329 [Verbose] >         //     |> String.concat " "
00:02:57 #1330 [Verbose] >
00:02:57 #1331 [Verbose] >         "F",
00:02:57 #1332 [Verbose] >         fun input =>
00:02:57 #1333 [Verbose] >         // Array.singleton 0
00:02:57 #1334 [Verbose] >         // |> Array.append [[| 1 .. input.Length - 1 |]]
00:02:57 #1335 [Verbose] >         // |> Array.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]])
00:02:57 #1336 [Verbose] >         // |> String.concat " "
00:02:57 #1337 [Verbose] >             inl input_length = input |> sm.length
00:02:57 #1338 [Verbose] >             am.singleton 0i32
00:02:57 #1339 [Verbose] >             |> am.append (am'.init_series 1 (input_length - 1) 1)
00:02:57 #1340 [Verbose] >             |> am.map (fun i =>
00:02:57 #1341 [Verbose] >                 inl a = sm.slice input { from = i; to = input_length - 1 } :
00:02:57 #1342 [Verbose] > string
00:02:57 #1343 [Verbose] >                 inl b = sm.slice input { from = 0; to = i - 1 } : string
00:02:57 #1344 [Verbose] >                 $"!a + !b" : string
00:02:57 #1345 [Verbose] >             )
00:02:57 #1346 [Verbose] >             |> sm'.concat " "
00:02:57 #1347 [Verbose] >
00:02:57 #1348 [Verbose] >         "FA",
00:02:57 #1349 [Verbose] >         fun input =>
00:02:57 #1350 [Verbose] >         //     List.singleton 0
00:02:57 #1351 [Verbose] >         //     |> List.append [[ 1 .. input.Length - 1 ]]
00:02:57 #1352 [Verbose] >         //   //  |> List.map (fun i => input.[[ i .. ]] + input.[[ .. i - 1 ]])
00:02:57 #1353 [Verbose] >         //     |> String.concat " "
00:02:57 #1354 [Verbose] >             inl input_length = input |> sm.length
00:02:57 #1355 [Verbose] >             listm.singleton 0i32
00:02:57 #1356 [Verbose] >             |> listm.append (listm'.init_series 1 (input_length - 1) 1)
00:02:57 #1357 [Verbose] >             |> listm.map (fun i =>
00:02:57 #1358 [Verbose] >                 inl a = sm.slice input { from = i; to = input_length - 1 } :
00:02:57 #1359 [Verbose] > string
00:02:57 #1360 [Verbose] >                 inl b = if i = 0 then "" else sm.slice input { from = 0; to = i
00:02:57 #1361 [Verbose] > - 1 } : string
00:02:57 #1362 [Verbose] >                 $"!a + !b" : string
00:02:57 #1363 [Verbose] >             )
00:02:57 #1364 [Verbose] >             |> listm.toArray
00:02:57 #1365 [Verbose] >             |> fun x => x : a i32 _
00:02:57 #1366 [Verbose] >             |> sm'.concat " "
00:02:57 #1367 [Verbose] >
00:02:57 #1368 [Verbose] >         // "FB",
00:02:57 #1369 [Verbose] >         // fun input =>
00:02:57 #1370 [Verbose] >         //     Seq.singleton 0
00:02:57 #1371 [Verbose] >         //   //  |> Seq.append (seq { 1 .. input.Length - 1 })
00:02:57 #1372 [Verbose] >         //   //  |> Seq.map (fun i => input.[[ i .. ]] + input.[[ .. i - 1 ]])
00:02:57 #1373 [Verbose] >         //     |> String.concat " "
00:02:57 #1374 [Verbose] >
00:02:57 #1375 [Verbose] >         // "FC",
00:02:57 #1376 [Verbose] >         // fun input =>
00:02:57 #1377 [Verbose] >         //     Array.singleton 0
00:02:57 #1378 [Verbose] >         //     |> Array.append (a ;[[ 1 .. input.Length - 1 ]])
00:02:57 #1379 [Verbose] >         // //    |> Array.Parallel.map (fun i => input.[[ i .. ]] + input.[[ ..
00:02:57 #1380 [Verbose] > i - 1 ]])
00:02:57 #1381 [Verbose] >         //     |> String.concat " "
00:02:57 #1382 [Verbose] >     ]]
00:02:57 #1383 [Verbose] >
00:02:57 #1384 [Verbose] > inl rec rotate_strings_tests () =
00:02:57 #1385 [Verbose] >     inl test_cases = [[
00:02:57 #1386 [Verbose] >         "abc", "bca cab abc"
00:02:57 #1387 [Verbose] >         "abcde", "bcdea cdeab deabc eabcd abcde"
00:02:57 #1388 [Verbose] >         "abcdefghi", "bcdefghia cdefghiab defghiabc efghiabcd fghiabcde
00:02:57 #1389 [Verbose] > ghiabcdef hiabcdefg iabcdefgh abcdefghi"
00:02:57 #1390 [Verbose] >         "abab", "baba abab baba abab"
00:02:57 #1391 [Verbose] >         "aa", "aa aa"
00:02:57 #1392 [Verbose] >         "z", "z"
00:02:57 #1393 [Verbose] >     ]]
00:02:57 #1394 [Verbose] >
00:02:57 #1395 [Verbose] >     inl solutions = get_solutions ()
00:02:57 #1396 [Verbose] >
00:02:57 #1397 [Verbose] >     // inl is_fast () = true
00:02:57 #1398 [Verbose] >
00:02:57 #1399 [Verbose] >     inl count =
00:02:57 #1400 [Verbose] >         if is_fast ()
00:02:57 #1401 [Verbose] >         then 1000i32
00:02:57 #1402 [Verbose] >         else 2000000i32
00:02:57 #1403 [Verbose] >
00:02:57 #1404 [Verbose] >     run_all (nameof rotate_strings_tests) count solutions test_cases
00:02:57 #1405 [Verbose] >     |> sort_result_list
00:02:57 #1406 [Verbose] >
00:02:57 #1407 [Verbose] > rotate_strings_tests ()
00:02:58 #1408 [Verbose] > Building /tmp/dotnet-repl/20240329-2219-2514-1450-171aa8a840d2/main.spi
00:03:14 #1409 [Verbose] >
00:03:14 #1410 [Verbose] > ╭─[ 16.63s - stdout ]──────────────────────────────────────────────────────────╮
00:03:14 #1411 [Verbose] > │ type UH0 =                                                                   │
00:03:14 #1412 [Verbose] > │     | UH0_0 of string * string * UH0                                         │
00:03:14 #1413 [Verbose] > │     | UH0_1                                                                  │
00:03:14 #1414 [Verbose] > │ and Mut0 = {mutable l0 : uint64}                                             │
00:03:14 #1415 [Verbose] > │ and Mut1 = {mutable l0 : int32}                                              │
00:03:14 #1416 [Verbose] > │ and UH1 =                                                                    │
00:03:14 #1417 [Verbose] > │     | UH1_0 of int32 * UH1                                                   │
00:03:14 #1418 [Verbose] > │     | UH1_1                                                                  │
00:03:14 #1419 [Verbose] > │ and UH2 =                                                                    │
00:03:14 #1420 [Verbose] > │     | UH2_0 of string * UH2                                                  │
00:03:14 #1421 [Verbose] > │     | UH2_1                                                                  │
00:03:14 #1422 [Verbose] > │ and UH3 =                                                                    │
00:03:14 #1423 [Verbose] > │     | UH3_0 of int32 * string * (string -> string) * UH3                     │
00:03:14 #1424 [Verbose] > │     | UH3_1                                                                  │
00:03:14 #1425 [Verbose] > │ and [<Struct>] US0 =                                                         │
00:03:14 #1426 [Verbose] > │     | US0_0                                                                  │
00:03:14 #1427 [Verbose] > │     | US0_1 of f1_0 : System.ConsoleColor                                    │
00:03:14 #1428 [Verbose] > │ and UH4 =                                                                    │
00:03:14 #1429 [Verbose] > │     | UH4_0 of int64 * int64 * UH4                                           │
00:03:14 #1430 [Verbose] > │     | UH4_1                                                                  │
00:03:14 #1431 [Verbose] > │ and Mut2 = {mutable l0 : uint64; mutable l1 : UH4; mutable l2 : int64}       │
00:03:14 #1432 [Verbose] > │ and UH5 =                                                                    │
00:03:14 #1433 [Verbose] > │     | UH5_0 of UH2 * US0 * UH5                                               │
00:03:14 #1434 [Verbose] > │     | UH5_1                                                                  │
00:03:14 #1435 [Verbose] > │ and [<Struct>] US1 =                                                         │
00:03:14 #1436 [Verbose] > │     | US1_0                                                                  │
00:03:14 #1437 [Verbose] > │     | US1_1 of f1_0 : int64                                                  │
00:03:14 #1438 [Verbose] > │ and UH6 =                                                                    │
00:03:14 #1439 [Verbose] > │     | UH6_0 of int32 * int64 * UH6                                           │
00:03:14 #1440 [Verbose] > │     | UH6_1                                                                  │
00:03:14 #1441 [Verbose] > │ and Mut3 = {mutable l0 : uint64; mutable l1 : UH6; mutable l2 : int32}       │
00:03:14 #1442 [Verbose] > │ and UH7 =                                                                    │
00:03:14 #1443 [Verbose] > │     | UH7_0 of int32 * string * UH7                                          │
00:03:14 #1444 [Verbose] > │     | UH7_1                                                                  │
00:03:14 #1445 [Verbose] > │ let rec method2 (v0 : UH0, v1 : uint64) : uint64 =                           │
00:03:14 #1446 [Verbose] > │     match v0 with                                                            │
00:03:14 #1447 [Verbose] > │     | UH0_0(v2, v3, v4) -> (* Cons *)                                        │
00:03:14 #1448 [Verbose] > │         let v5 : uint64 = v1 + 1UL                                           │
00:03:14 #1449 [Verbose] > │         method2(v4, v5)                                                      │
00:03:14 #1450 [Verbose] > │     | UH0_1 -> (* Nil *)                                                     │
00:03:14 #1451 [Verbose] > │         v1                                                                   │
00:03:14 #1452 [Verbose] > │ and method3 (v0 : (struct (string * string) []), v1 : UH0, v2 : uint64) :    │
00:03:14 #1453 [Verbose] > │ uint64 =                                                                     │
00:03:14 #1454 [Verbose] > │     match v1 with                                                            │
00:03:14 #1455 [Verbose] > │     | UH0_0(v3, v4, v5) -> (* Cons *)                                        │
00:03:14 #1456 [Verbose] > │         v0.[int v2] <- struct (v3, v4)                                       │
00:03:14 #1457 [Verbose] > │         let v6 : uint64 = v2 + 1UL                                           │
00:03:14 #1458 [Verbose] > │         method3(v0, v5, v6)                                                  │
00:03:14 #1459 [Verbose] > │     | UH0_1 -> (* Nil *)                                                     │
00:03:14 #1460 [Verbose] > │         v2                                                                   │
00:03:14 #1461 [Verbose] > │ and method1 (v0 : UH0) : (struct (string * string) []) =                     │
00:03:14 #1462 [Verbose] > │     let v1 : uint64 = 0UL                                                    │
00:03:14 #1463 [Verbose] > │     let v2 : uint64 = method2(v0, v1)                                        │
00:03:14 #1464 [Verbose] > │     let v3 : (struct (string * string) []) = Array.zeroCreate<struct (string │
00:03:14 #1465 [Verbose] > │ * string)> (System.Convert.ToInt32(v2))                                      │
00:03:14 #1466 [Verbose] > │     let v4 : uint64 = 0UL                                                    │
00:03:14 #1467 [Verbose] > │     let v5 : uint64 = method3(v3, v0, v4)                                    │
00:03:14 #1468 [Verbose] > │     v3                                                                       │
00:03:14 #1469 [Verbose] > │ and method4 (v0 : uint64, v1 : Mut0) : bool =                                │
00:03:14 #1470 [Verbose] > │     let v2 : uint64 = v1.l0                                                  │
00:03:14 #1471 [Verbose] > │     let v3 : bool = v2 < v0                                                  │
00:03:14 #1472 [Verbose] > │     v3                                                                       │
00:03:14 #1473 [Verbose] > │ and method5 (v0 : int32, v1 : Mut1) : bool =                                 │
00:03:14 #1474 [Verbose] > │     let v2 : int32 = v1.l0                                                   │
00:03:14 #1475 [Verbose] > │     let v3 : bool = v2 < v0                                                  │
00:03:14 #1476 [Verbose] > │     v3                                                                       │
00:03:14 #1477 [Verbose] > │ and closure1 () (v0 : string) : string =                                     │
00:03:14 #1478 [Verbose] > │     let v1 : int32 = v0.Length                                               │
00:03:14 #1479 [Verbose] > │     let v2 : (int32 []) = Array.zeroCreate<int32> (1)                        │
00:03:14 #1480 [Verbose] > │     v2.[int 0] <- 0                                                          │
00:03:14 #1481 [Verbose] > │     let v3 : int32 = v1 - 1                                                  │
00:03:14 #1482 [Verbose] > │     let v4 : int32 = v3 - 1                                                  │
00:03:14 #1483 [Verbose] > │     let v5 : int32 = v4 + 1                                                  │
00:03:14 #1484 [Verbose] > │     let v6 : (int32 []) = Array.zeroCreate<int32> (v5)                       │
00:03:14 #1485 [Verbose] > │     let v7 : Mut1 = {l0 = 0} : Mut1                                          │
00:03:14 #1486 [Verbose] > │     while method5(v5, v7) do                                                 │
00:03:14 #1487 [Verbose] > │         let v9 : int32 = v7.l0                                               │
00:03:14 #1488 [Verbose] > │         let v10 : int32 = 1 + v9                                             │
00:03:14 #1489 [Verbose] > │         v6.[int v9] <- v10                                                   │
00:03:14 #1490 [Verbose] > │         let v11 : int32 = v9 + 1                                             │
00:03:14 #1491 [Verbose] > │         v7.l0 <- v11                                                         │
00:03:14 #1492 [Verbose] > │         ()                                                                   │
00:03:14 #1493 [Verbose] > │     let v12 : int32 = v6.Length                                              │
00:03:14 #1494 [Verbose] > │     let v13 : int32 = v2.Length                                              │
00:03:14 #1495 [Verbose] > │     let v14 : int32 = v12 + v13                                              │
00:03:14 #1496 [Verbose] > │     let v15 : (int32 []) = Array.zeroCreate<int32> (v14)                     │
00:03:14 #1497 [Verbose] > │     let v16 : Mut1 = {l0 = 0} : Mut1                                         │
00:03:14 #1498 [Verbose] > │     while method5(v14, v16) do                                               │
00:03:14 #1499 [Verbose] > │         let v18 : int32 = v16.l0                                             │
00:03:14 #1500 [Verbose] > │         let v19 : bool = v18 < v12                                           │
00:03:14 #1501 [Verbose] > │         let v23 : int32 =                                                    │
00:03:14 #1502 [Verbose] > │             if v19 then                                                      │
00:03:14 #1503 [Verbose] > │                 let v20 : int32 = v6.[int v18]                               │
00:03:14 #1504 [Verbose] > │                 v20                                                          │
00:03:14 #1505 [Verbose] > │             else                                                             │
00:03:14 #1506 [Verbose] > │                 let v21 : int32 = v18 - v12                                  │
00:03:14 #1507 [Verbose] > │                 let v22 : int32 = v2.[int v21]                               │
00:03:14 #1508 [Verbose] > │                 v22                                                          │
00:03:14 #1509 [Verbose] > │         v15.[int v18] <- v23                                                 │
00:03:14 #1510 [Verbose] > │         let v24 : int32 = v18 + 1                                            │
00:03:14 #1511 [Verbose] > │         v16.l0 <- v24                                                        │
00:03:14 #1512 [Verbose] > │         ()                                                                   │
00:03:14 #1513 [Verbose] > │     let v25 : int32 = v15.Length                                             │
00:03:14 #1514 [Verbose] > │     let v26 : (string []) = Array.zeroCreate<string> (v25)                   │
00:03:14 #1515 [Verbose] > │     let v27 : Mut1 = {l0 = 0} : Mut1                                         │
00:03:14 #1516 [Verbose] > │     while method5(v25, v27) do                                               │
00:03:14 #1517 [Verbose] > │         let v29 : int32 = v27.l0                                             │
00:03:14 #1518 [Verbose] > │         let v30 : int32 = v15.[int v29]                                      │
00:03:14 #1519 [Verbose] > │         let v31 : string = v0.[int v30..int v3]                              │
00:03:14 #1520 [Verbose] > │         let v32 : int32 = v30 - 1                                            │
00:03:14 #1521 [Verbose] > │         let v33 : string = v0.[int 0..int v32]                               │
00:03:14 #1522 [Verbose] > │         let v34 : string = v31 + v33                                         │
00:03:14 #1523 [Verbose] > │         v26.[int v29] <- v34                                                 │
00:03:14 #1524 [Verbose] > │         let v35 : int32 = v29 + 1                                            │
00:03:14 #1525 [Verbose] > │         v27.l0 <- v35                                                        │
00:03:14 #1526 [Verbose] > │         ()                                                                   │
00:03:14 #1527 [Verbose] > │     let v36 : string = " "                                                   │
00:03:14 #1528 [Verbose] > │     let v37 : string = v26 |> String.concat v36                              │
00:03:14 #1529 [Verbose] > │     v37                                                                      │
00:03:14 #1530 [Verbose] > │ and method6 (v0 : float, v1 : float) : UH1 =                                 │
00:03:14 #1531 [Verbose] > │     let v2 : bool = v1 < v0                                                  │
00:03:14 #1532 [Verbose] > │     if v2 then                                                               │
00:03:14 #1533 [Verbose] > │         let v3 : int32 = int32 v1                                            │
00:03:14 #1534 [Verbose] > │         let v4 : int32 = 1 + v3                                              │
00:03:14 #1535 [Verbose] > │         let v5 : float = v1 + 1.0                                            │
00:03:14 #1536 [Verbose] > │         let v6 : UH1 = method6(v0, v5)                                       │
00:03:14 #1537 [Verbose] > │         UH1_0(v4, v6)                                                        │
00:03:14 #1538 [Verbose] > │     else                                                                     │
00:03:14 #1539 [Verbose] > │         UH1_1                                                                │
00:03:14 #1540 [Verbose] > │ and method7 (v0 : UH1, v1 : UH1) : UH1 =                                     │
00:03:14 #1541 [Verbose] > │     match v0 with                                                            │
00:03:14 #1542 [Verbose] > │     | UH1_0(v2, v3) -> (* Cons *)                                            │
00:03:14 #1543 [Verbose] > │         let v4 : UH1 = method7(v3, v1)                                       │
00:03:14 #1544 [Verbose] > │         UH1_0(v2, v4)                                                        │
00:03:14 #1545 [Verbose] > │     | UH1_1 -> (* Nil *)                                                     │
00:03:14 #1546 [Verbose] > │         v1                                                                   │
00:03:14 #1547 [Verbose] > │ and method8 (v0 : string, v1 : int32, v2 : UH1, v3 : UH2) : UH2 =            │
00:03:14 #1548 [Verbose] > │     match v2 with                                                            │
00:03:14 #1549 [Verbose] > │     | UH1_0(v4, v5) -> (* Cons *)                                            │
00:03:14 #1550 [Verbose] > │         let v6 : UH2 = method8(v0, v1, v5, v3)                               │
00:03:14 #1551 [Verbose] > │         let v7 : int32 = v1 - 1                                              │
00:03:14 #1552 [Verbose] > │         let v8 : string = v0.[int v4..int v7]                                │
00:03:14 #1553 [Verbose] > │         let v9 : bool = v4 = 0                                               │
00:03:14 #1554 [Verbose] > │         let v13 : string =                                                   │
00:03:14 #1555 [Verbose] > │             if v9 then                                                       │
00:03:14 #1556 [Verbose] > │                 let v10 : string = ""                                        │
00:03:14 #1557 [Verbose] > │                 v10                                                          │
00:03:14 #1558 [Verbose] > │             else                                                             │
00:03:14 #1559 [Verbose] > │                 let v11 : int32 = v4 - 1                                     │
00:03:14 #1560 [Verbose] > │                 let v12 : string = v0.[int 0..int v11]                       │
00:03:14 #1561 [Verbose] > │                 v12                                                          │
00:03:14 #1562 [Verbose] > │         let v14 : string = v8 + v13                                          │
00:03:14 #1563 [Verbose] > │         UH2_0(v14, v6)                                                       │
00:03:14 #1564 [Verbose] > │     | UH1_1 -> (* Nil *)                                                     │
00:03:14 #1565 [Verbose] > │         v3                                                                   │
00:03:14 #1566 [Verbose] > │ and method10 (v0 : UH2, v1 : int32) : int32 =                                │
00:03:14 #1567 [Verbose] > │     match v0 with                                                            │
00:03:14 #1568 [Verbose] > │     | UH2_0(v2, v3) -> (* Cons *)                                            │
00:03:14 #1569 [Verbose] > │         let v4 : int32 = v1 + 1                                              │
00:03:14 #1570 [Verbose] > │         method10(v3, v4)                                                     │
00:03:14 #1571 [Verbose] > │     | UH2_1 -> (* Nil *)                                                     │
00:03:14 #1572 [Verbose] > │         v1                                                                   │
00:03:14 #1573 [Verbose] > │ and method11 (v0 : (string []), v1 : UH2, v2 : int32) : int32 =              │
00:03:14 #1574 [Verbose] > │     match v1 with                                                            │
00:03:14 #1575 [Verbose] > │     | UH2_0(v3, v4) -> (* Cons *)                                            │
00:03:14 #1576 [Verbose] > │         v0.[int v2] <- v3                                                    │
00:03:14 #1577 [Verbose] > │         let v5 : int32 = v2 + 1                                              │
00:03:14 #1578 [Verbose] > │         method11(v0, v4, v5)                                                 │
00:03:14 #1579 [Verbose] > │     | UH2_1 -> (* Nil *)                                                     │
00:03:14 #1580 [Verbose] > │         v2                                                                   │
00:03:14 #1581 [Verbose] > │ and method9 (v0 : UH2) : (string []) =                                       │
00:03:14 #1582 [Verbose] > │     let v1 : int32 = 0                                                       │
00:03:14 #1583 [Verbose] > │     let v2 : int32 = method10(v0, v1)                                        │
00:03:14 #1584 [Verbose] > │     let v3 : (string []) = Array.zeroCreate<string> (v2)                     │
00:03:14 #1585 [Verbose] > │     let v4 : int32 = 0                                                       │
00:03:14 #1586 [Verbose] > │     let v5 : int32 = method11(v3, v0, v4)                                    │
00:03:14 #1587 [Verbose] > │     v3                                                                       │
00:03:14 #1588 [Verbose] > │ and closure2 () (v0 : string) : string =                                     │
00:03:14 #1589 [Verbose] > │     let v1 : int32 = v0.Length                                               │
00:03:14 #1590 [Verbose] > │     let v2 : int32 = v1 - 1                                                  │
00:03:14 #1591 [Verbose] > │     let v3 : int32 = v2 - 1                                                  │
00:03:14 #1592 [Verbose] > │     let v4 : float = float v3                                                │
00:03:14 #1593 [Verbose] > │     let v5 : float = v4 + 1.0                                                │
00:03:14 #1594 [Verbose] > │     let v6 : float = 0.0                                                     │
00:03:14 #1595 [Verbose] > │     let v7 : UH1 = method6(v5, v6)                                           │
00:03:14 #1596 [Verbose] > │     let v8 : int32 = 0                                                       │
00:03:14 #1597 [Verbose] > │     let v9 : UH1 = UH1_1                                                     │
00:03:14 #1598 [Verbose] > │     let v10 : UH1 = UH1_0(v8, v9)                                            │
00:03:14 #1599 [Verbose] > │     let v11 : UH1 = method7(v7, v10)                                         │
00:03:14 #1600 [Verbose] > │     let v12 : UH2 = UH2_1                                                    │
00:03:14 #1601 [Verbose] > │     let v13 : UH2 = method8(v0, v1, v11, v12)                                │
00:03:14 #1602 [Verbose] > │     let v14 : (string []) = method9(v13)                                     │
00:03:14 #1603 [Verbose] > │     let v15 : string = " "                                                   │
00:03:14 #1604 [Verbose] > │     let v16 : string = v14 |> String.concat v15                              │
00:03:14 #1605 [Verbose] > │     v16                                                                      │
00:03:14 #1606 [Verbose] > │ and method13 (v0 : UH3, v1 : uint64) : uint64 =                              │
00:03:14 #1607 [Verbose] > │     match v0 with                                                            │
00:03:14 #1608 [Verbose] > │     | UH3_0(v2, v3, v4, v5) -> (* Cons *)                                    │
00:03:14 #1609 [Verbose] > │         let v6 : uint64 = v1 + 1UL                                           │
00:03:14 #1610 [Verbose] > │         method13(v5, v6)                                                     │
00:03:14 #1611 [Verbose] > │     | UH3_1 -> (* Nil *)                                                     │
00:03:14 #1612 [Verbose] > │         v1                                                                   │
00:03:14 #1613 [Verbose] > │ and method14 (v0 : (struct (int32 * string * (string -> string)) []), v1 :   │
00:03:14 #1614 [Verbose] > │ UH3, v2 : uint64) : uint64 =                                                 │
00:03:14 #1615 [Verbose] > │     match v1 with                                                            │
00:03:14 #1616 [Verbose] > │     | UH3_0(v3, v4, v5, v6) -> (* Cons *)                                    │
00:03:14 #1617 [Verbose] > │         v0.[int v2] <- struct (v3, v4, v5)                                   │
00:03:14 #1618 [Verbose] > │         let v7 : uint64 = v2 + 1UL                                           │
00:03:14 #1619 [Verbose] > │         method14(v0, v6, v7)                                                 │
00:03:14 #1620 [Verbose] > │     | UH3_1 -> (* Nil *)                                                     │
00:03:14 #1621 [Verbose] > │         v2                                                                   │
00:03:14 #1622 [Verbose] > │ and method12 (v0 : UH3) : (struct (int32 * string * (string -> string)) [])  │
00:03:14 #1623 [Verbose] > │ =                                                                            │
00:03:14 #1624 [Verbose] > │     let v1 : uint64 = 0UL                                                    │
00:03:14 #1625 [Verbose] > │     let v2 : uint64 = method13(v0, v1)                                       │
00:03:14 #1626 [Verbose] > │     let v3 : (struct (int32 * string * (string -> string)) []) =             │
00:03:14 #1627 [Verbose] > │ Array.zeroCreate<struct (int32 * string * (string -> string))>               │
00:03:14 #1628 [Verbose] > │ (System.Convert.ToInt32(v2))                                                 │
00:03:14 #1629 [Verbose] > │     let v4 : uint64 = 0UL                                                    │
00:03:14 #1630 [Verbose] > │     let v5 : uint64 = method14(v3, v0, v4)                                   │
00:03:14 #1631 [Verbose] > │     v3                                                                       │
00:03:14 #1632 [Verbose] > │ and method15 (v0 : Mut1) : bool =                                            │
00:03:14 #1633 [Verbose] > │     let v1 : int32 = v0.l0                                                   │
00:03:14 #1634 [Verbose] > │     let v2 : bool = v1 < 2000001                                             │
00:03:14 #1635 [Verbose] > │     v2                                                                       │
00:03:14 #1636 [Verbose] > │ and closure3 (v0 : string, v1 : (string -> string)) (v2 : int32) : string =  │
00:03:14 #1637 [Verbose] > │     v1 v0                                                                    │
00:03:14 #1638 [Verbose] > │ and method16 (v0 : string, v1 : (string []), v2 : uint64) : bool =           │
00:03:14 #1639 [Verbose] > │     let v3 : uint64 = System.Convert.ToUInt64 v1.Length                      │
00:03:14 #1640 [Verbose] > │     let v4 : bool = v2 < v3                                                  │
00:03:14 #1641 [Verbose] > │     if v4 then                                                               │
00:03:14 #1642 [Verbose] > │         let v5 : string = v1.[int v2]                                        │
00:03:14 #1643 [Verbose] > │         let v6 : bool = v0 = v5                                              │
00:03:14 #1644 [Verbose] > │         if v6 then                                                           │
00:03:14 #1645 [Verbose] > │             let v7 : uint64 = v2 + 1UL                                       │
00:03:14 #1646 [Verbose] > │             method16(v0, v1, v7)                                             │
00:03:14 #1647 [Verbose] > │         else                                                                 │
00:03:14 #1648 [Verbose] > │             false                                                            │
00:03:14 #1649 [Verbose] > │     else                                                                     │
00:03:14 #1650 [Verbose] > │         true                                                                 │
00:03:14 #1651 [Verbose] > │ and method17 (v0 : uint64, v1 : Mut2) : bool =                               │
00:03:14 #1652 [Verbose] > │     let v2 : uint64 = v1.l0                                                  │
00:03:14 #1653 [Verbose] > │     let v3 : bool = v2 < v0                                                  │
00:03:14 #1654 [Verbose] > │     v3                                                                       │
00:03:14 #1655 [Verbose] > │ and method18 (v0 : UH4, v1 : UH4) : UH4 =                                    │
00:03:14 #1656 [Verbose] > │     match v0 with                                                            │
00:03:14 #1657 [Verbose] > │     | UH4_0(v2, v3, v4) -> (* Cons *)                                        │
00:03:14 #1658 [Verbose] > │         let v5 : UH4 = UH4_0(v2, v3, v1)                                     │
00:03:14 #1659 [Verbose] > │         method18(v4, v5)                                                     │
00:03:14 #1660 [Verbose] > │     | UH4_1 -> (* Nil *)                                                     │
00:03:14 #1661 [Verbose] > │         v1                                                                   │
00:03:14 #1662 [Verbose] > │ and method20 (v0 : UH4, v1 : int32) : int32 =                                │
00:03:14 #1663 [Verbose] > │     match v0 with                                                            │
00:03:14 #1664 [Verbose] > │     | UH4_0(v2, v3, v4) -> (* Cons *)                                        │
00:03:14 #1665 [Verbose] > │         let v5 : int32 = v1 + 1                                              │
00:03:14 #1666 [Verbose] > │         method20(v4, v5)                                                     │
00:03:14 #1667 [Verbose] > │     | UH4_1 -> (* Nil *)                                                     │
00:03:14 #1668 [Verbose] > │         v1                                                                   │
00:03:14 #1669 [Verbose] > │ and method21 (v0 : (struct (int64 * int64) []), v1 : UH4, v2 : int32) :      │
00:03:14 #1670 [Verbose] > │ int32 =                                                                      │
00:03:14 #1671 [Verbose] > │     match v1 with                                                            │
00:03:14 #1672 [Verbose] > │     | UH4_0(v3, v4, v5) -> (* Cons *)                                        │
00:03:14 #1673 [Verbose] > │         v0.[int v2] <- struct (v3, v4)                                       │
00:03:14 #1674 [Verbose] > │         let v6 : int32 = v2 + 1                                              │
00:03:14 #1675 [Verbose] > │         method21(v0, v5, v6)                                                 │
00:03:14 #1676 [Verbose] > │     | UH4_1 -> (* Nil *)                                                     │
00:03:14 #1677 [Verbose] > │         v2                                                                   │
00:03:14 #1678 [Verbose] > │ and method19 (v0 : UH4) : (struct (int64 * int64) []) =                      │
00:03:14 #1679 [Verbose] > │     let v1 : int32 = 0                                                       │
00:03:14 #1680 [Verbose] > │     let v2 : int32 = method20(v0, v1)                                        │
00:03:14 #1681 [Verbose] > │     let v3 : (struct (int64 * int64) []) = Array.zeroCreate<struct (int64 *  │
00:03:14 #1682 [Verbose] > │ int64)> (v2)                                                                 │
00:03:14 #1683 [Verbose] > │     let v4 : int32 = 0                                                       │
00:03:14 #1684 [Verbose] > │     let v5 : int32 = method21(v3, v0, v4)                                    │
00:03:14 #1685 [Verbose] > │     v3                                                                       │
00:03:14 #1686 [Verbose] > │ and closure4 () struct (v0 : int64, v1 : int64) : int64 =                    │
00:03:14 #1687 [Verbose] > │     v1                                                                       │
00:03:14 #1688 [Verbose] > │ and method23 (v0 : UH5, v1 : uint64) : uint64 =                              │
00:03:14 #1689 [Verbose] > │     match v0 with                                                            │
00:03:14 #1690 [Verbose] > │     | UH5_0(v2, v3, v4) -> (* Cons *)                                        │
00:03:14 #1691 [Verbose] > │         let v5 : uint64 = v1 + 1UL                                           │
00:03:14 #1692 [Verbose] > │         method23(v4, v5)                                                     │
00:03:14 #1693 [Verbose] > │     | UH5_1 -> (* Nil *)                                                     │
00:03:14 #1694 [Verbose] > │         v1                                                                   │
00:03:14 #1695 [Verbose] > │ and method24 (v0 : (struct (UH2 * US0) []), v1 : UH5, v2 : uint64) : uint64  │
00:03:14 #1696 [Verbose] > │ =                                                                            │
00:03:14 #1697 [Verbose] > │     match v1 with                                                            │
00:03:14 #1698 [Verbose] > │     | UH5_0(v3, v4, v5) -> (* Cons *)                                        │
00:03:14 #1699 [Verbose] > │         v0.[int v2] <- struct (v3, v4)                                       │
00:03:14 #1700 [Verbose] > │         let v6 : uint64 = v2 + 1UL                                           │
00:03:14 #1701 [Verbose] > │         method24(v0, v5, v6)                                                 │
00:03:14 #1702 [Verbose] > │     | UH5_1 -> (* Nil *)                                                     │
00:03:14 #1703 [Verbose] > │         v2                                                                   │
00:03:14 #1704 [Verbose] > │ and method22 (v0 : UH5) : (struct (UH2 * US0) []) =                          │
00:03:14 #1705 [Verbose] > │     let v1 : uint64 = 0UL                                                    │
00:03:14 #1706 [Verbose] > │     let v2 : uint64 = method23(v0, v1)                                       │
00:03:14 #1707 [Verbose] > │     let v3 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * US0)>  │
00:03:14 #1708 [Verbose] > │ (System.Convert.ToInt32(v2))                                                 │
00:03:14 #1709 [Verbose] > │     let v4 : uint64 = 0UL                                                    │
00:03:14 #1710 [Verbose] > │     let v5 : uint64 = method24(v3, v0, v4)                                   │
00:03:14 #1711 [Verbose] > │     v3                                                                       │
00:03:14 #1712 [Verbose] > │ and method26 (v0 : UH2, v1 : uint64) : uint64 =                              │
00:03:14 #1713 [Verbose] > │     match v0 with                                                            │
00:03:14 #1714 [Verbose] > │     | UH2_0(v2, v3) -> (* Cons *)                                            │
00:03:14 #1715 [Verbose] > │         let v4 : uint64 = v1 + 1UL                                           │
00:03:14 #1716 [Verbose] > │         method26(v3, v4)                                                     │
00:03:14 #1717 [Verbose] > │     | UH2_1 -> (* Nil *)                                                     │
00:03:14 #1718 [Verbose] > │         v1                                                                   │
00:03:14 #1719 [Verbose] > │ and method27 (v0 : (string []), v1 : UH2, v2 : uint64) : uint64 =            │
00:03:14 #1720 [Verbose] > │     match v1 with                                                            │
00:03:14 #1721 [Verbose] > │     | UH2_0(v3, v4) -> (* Cons *)                                            │
00:03:14 #1722 [Verbose] > │         v0.[int v2] <- v3                                                    │
00:03:14 #1723 [Verbose] > │         let v5 : uint64 = v2 + 1UL                                           │
00:03:14 #1724 [Verbose] > │         method27(v0, v4, v5)                                                 │
00:03:14 #1725 [Verbose] > │     | UH2_1 -> (* Nil *)                                                     │
00:03:14 #1726 [Verbose] > │         v2                                                                   │
00:03:14 #1727 [Verbose] > │ and method25 (v0 : UH2) : (string []) =                                      │
00:03:14 #1728 [Verbose] > │     let v1 : uint64 = 0UL                                                    │
00:03:14 #1729 [Verbose] > │     let v2 : uint64 = method26(v0, v1)                                       │
00:03:14 #1730 [Verbose] > │     let v3 : (string []) = Array.zeroCreate<string>                          │
00:03:14 #1731 [Verbose] > │ (System.Convert.ToInt32(v2))                                                 │
00:03:14 #1732 [Verbose] > │     let v4 : uint64 = 0UL                                                    │
00:03:14 #1733 [Verbose] > │     let v5 : uint64 = method27(v3, v0, v4)                                   │
00:03:14 #1734 [Verbose] > │     v3                                                                       │
00:03:14 #1735 [Verbose] > │ and closure5 () (v0 : int64) : US1 =                                         │
00:03:14 #1736 [Verbose] > │     US1_1(v0)                                                                │
00:03:14 #1737 [Verbose] > │ and method28 (v0 : uint64, v1 : Mut3) : bool =                               │
00:03:14 #1738 [Verbose] > │     let v2 : uint64 = v1.l0                                                  │
00:03:14 #1739 [Verbose] > │     let v3 : bool = v2 < v0                                                  │
00:03:14 #1740 [Verbose] > │     v3                                                                       │
00:03:14 #1741 [Verbose] > │ and method29 (v0 : UH6, v1 : UH6) : UH6 =                                    │
00:03:14 #1742 [Verbose] > │     match v0 with                                                            │
00:03:14 #1743 [Verbose] > │     | UH6_0(v2, v3, v4) -> (* Cons *)                                        │
00:03:14 #1744 [Verbose] > │         let v5 : UH6 = UH6_0(v2, v3, v1)                                     │
00:03:14 #1745 [Verbose] > │         method29(v4, v5)                                                     │
00:03:14 #1746 [Verbose] > │     | UH6_1 -> (* Nil *)                                                     │
00:03:14 #1747 [Verbose] > │         v1                                                                   │
00:03:14 #1748 [Verbose] > │ and method31 (v0 : UH6, v1 : int32) : int32 =                                │
00:03:14 #1749 [Verbose] > │     match v0 with                                                            │
00:03:14 #1750 [Verbose] > │     | UH6_0(v2, v3, v4) -> (* Cons *)                                        │
00:03:14 #1751 [Verbose] > │         let v5 : int32 = v1 + 1                                              │
00:03:14 #1752 [Verbose] > │         method31(v4, v5)                                                     │
00:03:14 #1753 [Verbose] > │     | UH6_1 -> (* Nil *)                                                     │
00:03:14 #1754 [Verbose] > │         v1                                                                   │
00:03:14 #1755 [Verbose] > │ and method32 (v0 : (struct (int32 * int64) []), v1 : UH6, v2 : int32) :      │
00:03:14 #1756 [Verbose] > │ int32 =                                                                      │
00:03:14 #1757 [Verbose] > │     match v1 with                                                            │
00:03:14 #1758 [Verbose] > │     | UH6_0(v3, v4, v5) -> (* Cons *)                                        │
00:03:14 #1759 [Verbose] > │         v0.[int v2] <- struct (v3, v4)                                       │
00:03:14 #1760 [Verbose] > │         let v6 : int32 = v2 + 1                                              │
00:03:14 #1761 [Verbose] > │         method32(v0, v5, v6)                                                 │
00:03:14 #1762 [Verbose] > │     | UH6_1 -> (* Nil *)                                                     │
00:03:14 #1763 [Verbose] > │         v2                                                                   │
00:03:14 #1764 [Verbose] > │ and method30 (v0 : UH6) : (struct (int32 * int64) []) =                      │
00:03:14 #1765 [Verbose] > │     let v1 : int32 = 0                                                       │
00:03:14 #1766 [Verbose] > │     let v2 : int32 = method31(v0, v1)                                        │
00:03:14 #1767 [Verbose] > │     let v3 : (struct (int32 * int64) []) = Array.zeroCreate<struct (int32 *  │
00:03:14 #1768 [Verbose] > │ int64)> (v2)                                                                 │
00:03:14 #1769 [Verbose] > │     let v4 : int32 = 0                                                       │
00:03:14 #1770 [Verbose] > │     let v5 : int32 = method32(v3, v0, v4)                                    │
00:03:14 #1771 [Verbose] > │     v3                                                                       │
00:03:14 #1772 [Verbose] > │ and method33 (v0 : UH2, v1 : UH7, v2 : int32) : struct (UH7 * int32) =       │
00:03:14 #1773 [Verbose] > │     match v0 with                                                            │
00:03:14 #1774 [Verbose] > │     | UH2_0(v3, v4) -> (* Cons *)                                            │
00:03:14 #1775 [Verbose] > │         let v5 : int32 = v2 + 1                                              │
00:03:14 #1776 [Verbose] > │         let v6 : UH7 = UH7_0(v2, v3, v1)                                     │
00:03:14 #1777 [Verbose] > │         method33(v4, v6, v5)                                                 │
00:03:14 #1778 [Verbose] > │     | UH2_1 -> (* Nil *)                                                     │
00:03:14 #1779 [Verbose] > │         struct (v1, v2)                                                      │
00:03:14 #1780 [Verbose] > │ and method34 (v0 : UH7, v1 : UH7) : UH7 =                                    │
00:03:14 #1781 [Verbose] > │     match v0 with                                                            │
00:03:14 #1782 [Verbose] > │     | UH7_0(v2, v3, v4) -> (* Cons *)                                        │
00:03:14 #1783 [Verbose] > │         let v5 : UH7 = UH7_0(v2, v3, v1)                                     │
00:03:14 #1784 [Verbose] > │         method34(v4, v5)                                                     │
00:03:14 #1785 [Verbose] > │     | UH7_1 -> (* Nil *)                                                     │
00:03:14 #1786 [Verbose] > │         v1                                                                   │
00:03:14 #1787 [Verbose] > │ and method35 (v0 : Map<int32, int64>, v1 : UH7, v2 : UH2) : UH2 =            │
00:03:14 #1788 [Verbose] > │     match v1 with                                                            │
00:03:14 #1789 [Verbose] > │     | UH7_0(v3, v4, v5) -> (* Cons *)                                        │
00:03:14 #1790 [Verbose] > │         let v6 : UH2 = method35(v0, v5, v2)                                  │
00:03:14 #1791 [Verbose] > │         let v7 : int64 = v0.[v3]                                             │
00:03:14 #1792 [Verbose] > │         let v8 : int32 = int32 v7                                            │
00:03:14 #1793 [Verbose] > │         let v9 : string = v4.PadRight v8                                     │
00:03:14 #1794 [Verbose] > │         UH2_0(v9, v6)                                                        │
00:03:14 #1795 [Verbose] > │     | UH7_1 -> (* Nil *)                                                     │
00:03:14 #1796 [Verbose] > │         v2                                                                   │
00:03:14 #1797 [Verbose] > │ and method37 (v0 : UH6, v1 : uint64) : uint64 =                              │
00:03:14 #1798 [Verbose] > │     match v0 with                                                            │
00:03:14 #1799 [Verbose] > │     | UH6_0(v2, v3, v4) -> (* Cons *)                                        │
00:03:14 #1800 [Verbose] > │         let v5 : uint64 = v1 + 1UL                                           │
00:03:14 #1801 [Verbose] > │         method37(v4, v5)                                                     │
00:03:14 #1802 [Verbose] > │     | UH6_1 -> (* Nil *)                                                     │
00:03:14 #1803 [Verbose] > │         v1                                                                   │
00:03:14 #1804 [Verbose] > │ and method38 (v0 : (struct (int32 * int64) []), v1 : UH6, v2 : uint64) :     │
00:03:14 #1805 [Verbose] > │ uint64 =                                                                     │
00:03:14 #1806 [Verbose] > │     match v1 with                                                            │
00:03:14 #1807 [Verbose] > │     | UH6_0(v3, v4, v5) -> (* Cons *)                                        │
00:03:14 #1808 [Verbose] > │         v0.[int v2] <- struct (v3, v4)                                       │
00:03:14 #1809 [Verbose] > │         let v6 : uint64 = v2 + 1UL                                           │
00:03:14 #1810 [Verbose] > │         method38(v0, v5, v6)                                                 │
00:03:14 #1811 [Verbose] > │     | UH6_1 -> (* Nil *)                                                     │
00:03:14 #1812 [Verbose] > │         v2                                                                   │
00:03:14 #1813 [Verbose] > │ and method36 (v0 : UH6) : (struct (int32 * int64) []) =                      │
00:03:14 #1814 [Verbose] > │     let v1 : uint64 = 0UL                                                    │
00:03:14 #1815 [Verbose] > │     let v2 : uint64 = method37(v0, v1)                                       │
00:03:14 #1816 [Verbose] > │     let v3 : (struct (int32 * int64) []) = Array.zeroCreate<struct (int32 *  │
00:03:14 #1817 [Verbose] > │ int64)> (System.Convert.ToInt32(v2))                                         │
00:03:14 #1818 [Verbose] > │     let v4 : uint64 = 0UL                                                    │
00:03:14 #1819 [Verbose] > │     let v5 : uint64 = method38(v3, v0, v4)                                   │
00:03:14 #1820 [Verbose] > │     v3                                                                       │
00:03:14 #1821 [Verbose] > │ and closure6 () struct (v0 : int32, v1 : int64) : int64 =                    │
00:03:14 #1822 [Verbose] > │     v1                                                                       │
00:03:14 #1823 [Verbose] > │ and closure0 () () : unit =                                                  │
00:03:14 #1824 [Verbose] > │     let v0 : (unit -> unit) = closure0()                                     │
00:03:14 #1825 [Verbose] > │     let v1 : string = nameof v0                                              │
00:03:14 #1826 [Verbose] > │     let v2 : string = ""                                                     │
00:03:14 #1827 [Verbose] > │     System.Console.WriteLine v2                                              │
00:03:14 #1828 [Verbose] > │     System.Console.WriteLine v2                                              │
00:03:14 #1829 [Verbose] > │     let v3 : string = $"Test: {v1}"                                          │
00:03:14 #1830 [Verbose] > │     System.Console.WriteLine v3                                              │
00:03:14 #1831 [Verbose] > │     let v4 : string = "abc"                                                  │
00:03:14 #1832 [Verbose] > │     let v5 : string = "bca cab abc"                                          │
00:03:14 #1833 [Verbose] > │     let v6 : string = "abcde"                                                │
00:03:14 #1834 [Verbose] > │     let v7 : string = "bcdea cdeab deabc eabcd abcde"                        │
00:03:14 #1835 [Verbose] > │     let v8 : string = "abcdefghi"                                            │
00:03:14 #1836 [Verbose] > │     let v9 : string = "bcdefghia cdefghiab defghiabc efghiabcd fghiabcde     │
00:03:14 #1837 [Verbose] > │ ghiabcdef hiabcdefg iabcdefgh abcdefghi"                                     │
00:03:14 #1838 [Verbose] > │     let v10 : string = "abab"                                                │
00:03:14 #1839 [Verbose] > │     let v11 : string = "baba abab baba abab"                                 │
00:03:14 #1840 [Verbose] > │     let v12 : string = "aa"                                                  │
00:03:14 #1841 [Verbose] > │     let v13 : string = "aa aa"                                               │
00:03:14 #1842 [Verbose] > │     let v14 : string = "z"                                                   │
00:03:14 #1843 [Verbose] > │     let v15 : UH0 = UH0_1                                                    │
00:03:14 #1844 [Verbose] > │     let v16 : UH0 = UH0_0(v14, v14, v15)                                     │
00:03:14 #1845 [Verbose] > │     let v17 : UH0 = UH0_0(v12, v13, v16)                                     │
00:03:14 #1846 [Verbose] > │     let v18 : UH0 = UH0_0(v10, v11, v17)                                     │
00:03:14 #1847 [Verbose] > │     let v19 : UH0 = UH0_0(v8, v9, v18)                                       │
00:03:14 #1848 [Verbose] > │     let v20 : UH0 = UH0_0(v6, v7, v19)                                       │
00:03:14 #1849 [Verbose] > │     let v21 : UH0 = UH0_0(v4, v5, v20)                                       │
00:03:14 #1850 [Verbose] > │     let v22 : (struct (string * string) []) = method1(v21)                   │
00:03:14 #1851 [Verbose] > │     let v23 : uint64 = System.Convert.ToUInt64 v22.Length                    │
00:03:14 #1852 [Verbose] > │     let v24 : (struct (string * string * string * (int64 [])) []) =          │
00:03:14 #1853 [Verbose] > │ Array.zeroCreate<struct (string * string * string * (int64 []))>             │
00:03:14 #1854 [Verbose] > │ (System.Convert.ToInt32(v23))                                                │
00:03:14 #1855 [Verbose] > │     let v25 : Mut0 = {l0 = 0UL} : Mut0                                       │
00:03:14 #1856 [Verbose] > │     while method4(v23, v25) do                                               │
00:03:14 #1857 [Verbose] > │         let v27 : uint64 = v25.l0                                            │
00:03:14 #1858 [Verbose] > │         let struct (v28 : string, v29 : string) = v22.[int v27]              │
00:03:14 #1859 [Verbose] > │         let v30 : string = $"%A{v28}"                                        │
00:03:14 #1860 [Verbose] > │         System.Console.WriteLine v2                                          │
00:03:14 #1861 [Verbose] > │         let v31 : string = $"Solution: {v30}  "                              │
00:03:14 #1862 [Verbose] > │         System.Console.WriteLine v31                                         │
00:03:14 #1863 [Verbose] > │         let v32 : int32 = 0                                                  │
00:03:14 #1864 [Verbose] > │         let v33 : string = "F"                                               │
00:03:14 #1865 [Verbose] > │         let v34 : (string -> string) = closure1()                            │
00:03:14 #1866 [Verbose] > │         let v35 : int32 = 1                                                  │
00:03:14 #1867 [Verbose] > │         let v36 : string = "FA"                                              │
00:03:14 #1868 [Verbose] > │         let v37 : (string -> string) = closure2()                            │
00:03:14 #1869 [Verbose] > │         let v38 : UH3 = UH3_1                                                │
00:03:14 #1870 [Verbose] > │         let v39 : UH3 = UH3_0(v35, v36, v37, v38)                            │
00:03:14 #1871 [Verbose] > │         let v40 : UH3 = UH3_0(v32, v33, v34, v39)                            │
00:03:14 #1872 [Verbose] > │         let v41 : (struct (int32 * string * (string -> string)) []) =        │
00:03:14 #1873 [Verbose] > │ method12(v40)                                                                │
00:03:14 #1874 [Verbose] > │         let v42 : uint64 = System.Convert.ToUInt64 v41.Length                │
00:03:14 #1875 [Verbose] > │         let v43 : (struct (string * int64) []) = Array.zeroCreate<struct     │
00:03:14 #1876 [Verbose] > │ (string * int64)> (System.Convert.ToInt32(v42))                              │
00:03:14 #1877 [Verbose] > │         let v44 : Mut0 = {l0 = 0UL} : Mut0                                   │
00:03:14 #1878 [Verbose] > │         while method4(v42, v44) do                                           │
00:03:14 #1879 [Verbose] > │             let v46 : uint64 = v44.l0                                        │
00:03:14 #1880 [Verbose] > │             let struct (v47 : int32, v48 : string, v49 : (string -> string)) │
00:03:14 #1881 [Verbose] > │ = v41.[int v46]                                                              │
00:03:14 #1882 [Verbose] > │             let mutable result = None                                        │
00:03:14 #1883 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM                                 │
00:03:14 #1884 [Verbose] > │             ()                                                               │
00:03:14 #1885 [Verbose] > │             #endif                                                           │
00:03:14 #1886 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │
00:03:14 #1887 [Verbose] > │             ()                                                               │
00:03:14 #1888 [Verbose] > │             #endif                                                           │
00:03:14 #1889 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │
00:03:14 #1890 [Verbose] > │             System.GC.Collect ()                                             │
00:03:14 #1891 [Verbose] > │             ()                                                               │
00:03:14 #1892 [Verbose] > │             #endif                                                           │
00:03:14 #1893 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │
00:03:14 #1894 [Verbose] > │             System.GC.Collect ()                                             │
00:03:14 #1895 [Verbose] > │             ()                                                               │
00:03:14 #1896 [Verbose] > │             #endif                                                           │
00:03:14 #1897 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │
00:03:14 #1898 [Verbose] > │             System.GC.Collect ()                                             │
00:03:14 #1899 [Verbose] > │             ()                                                               │
00:03:14 #1900 [Verbose] > │             #endif                                                           │
00:03:14 #1901 [Verbose] > │             |> fun x -> result <- Some x                                     │
00:03:14 #1902 [Verbose] > │             result |> Option.get                                             │
00:03:14 #1903 [Verbose] > │             let v50 : (unit -> System.Diagnostics.Stopwatch) =               │
00:03:14 #1904 [Verbose] > │ System.Diagnostics.Stopwatch                                                 │
00:03:14 #1905 [Verbose] > │             let v51 : System.Diagnostics.Stopwatch = v50 ()                  │
00:03:14 #1906 [Verbose] > │             v51.Start ()                                                     │
00:03:14 #1907 [Verbose] > │             let v52 : int64 = v51.ElapsedMilliseconds                        │
00:03:14 #1908 [Verbose] > │             let v53 : (int32 []) = Array.zeroCreate<int32> (2000001)         │
00:03:14 #1909 [Verbose] > │             let v54 : Mut1 = {l0 = 0} : Mut1                                 │
00:03:14 #1910 [Verbose] > │             while method15(v54) do                                           │
00:03:14 #1911 [Verbose] > │                 let v56 : int32 = v54.l0                                     │
00:03:14 #1912 [Verbose] > │                 v53.[int v56] <- v56                                         │
00:03:14 #1913 [Verbose] > │                 let v57 : int32 = v56 + 1                                    │
00:03:14 #1914 [Verbose] > │                 v54.l0 <- v57                                                │
00:03:14 #1915 [Verbose] > │                 ()                                                           │
00:03:14 #1916 [Verbose] > │             let v58 : (int32 -> string) = closure3(v28, v49)                 │
00:03:14 #1917 [Verbose] > │             let v59 : (string []) = v53 |> Array.Parallel.map v58            │
00:03:14 #1918 [Verbose] > │             let v60 : int32 = v59.Length                                     │
00:03:14 #1919 [Verbose] > │             let v61 : int32 = v60 - 1                                        │
00:03:14 #1920 [Verbose] > │             let v62 : string = v59.[int v61]                                 │
00:03:14 #1921 [Verbose] > │             let v63 : int64 = v51.ElapsedMilliseconds                        │
00:03:14 #1922 [Verbose] > │             let v64 : int64 = v63 - v52                                      │
00:03:14 #1923 [Verbose] > │             let v65 : string = $"Test case {v47 + 1}. {v48}. Time: {v64}  "  │
00:03:14 #1924 [Verbose] > │             System.Console.WriteLine v65                                     │
00:03:14 #1925 [Verbose] > │             v43.[int v46] <- struct (v62, v64)                               │
00:03:14 #1926 [Verbose] > │             let v66 : uint64 = v46 + 1UL                                     │
00:03:14 #1927 [Verbose] > │             v44.l0 <- v66                                                    │
00:03:14 #1928 [Verbose] > │             ()                                                               │
00:03:14 #1929 [Verbose] > │         let v67 : uint64 = System.Convert.ToUInt64 v43.Length                │
00:03:14 #1930 [Verbose] > │         let v68 : (string []) = Array.zeroCreate<string>                     │
00:03:14 #1931 [Verbose] > │ (System.Convert.ToInt32(v67))                                                │
00:03:14 #1932 [Verbose] > │         let v69 : Mut0 = {l0 = 0UL} : Mut0                                   │
00:03:14 #1933 [Verbose] > │         while method4(v67, v69) do                                           │
00:03:14 #1934 [Verbose] > │             let v71 : uint64 = v69.l0                                        │
00:03:14 #1935 [Verbose] > │             let struct (v72 : string, v73 : int64) = v43.[int v71]           │
00:03:14 #1936 [Verbose] > │             v68.[int v71] <- v72                                             │
00:03:14 #1937 [Verbose] > │             let v74 : uint64 = v71 + 1UL                                     │
00:03:14 #1938 [Verbose] > │             v69.l0 <- v74                                                    │
00:03:14 #1939 [Verbose] > │             ()                                                               │
00:03:14 #1940 [Verbose] > │         let v75 : uint64 = System.Convert.ToUInt64 v68.Length                │
00:03:14 #1941 [Verbose] > │         let v76 : bool = v75 <= 1UL                                          │
00:03:14 #1942 [Verbose] > │         if v76 then                                                          │
00:03:14 #1943 [Verbose] > │             ()                                                               │
00:03:14 #1944 [Verbose] > │         else                                                                 │
00:03:14 #1945 [Verbose] > │             let v77 : string = v68.[int 0UL]                                 │
00:03:14 #1946 [Verbose] > │             let v78 : uint64 = 0UL                                           │
00:03:14 #1947 [Verbose] > │             let v79 : bool = method16(v77, v68, v78)                         │
00:03:14 #1948 [Verbose] > │             if v79 then                                                      │
00:03:14 #1949 [Verbose] > │                 ()                                                           │
00:03:14 #1950 [Verbose] > │             else                                                             │
00:03:14 #1951 [Verbose] > │                 let v80 : string = $"Challenge error: {v68}"                 │
00:03:14 #1952 [Verbose] > │                 failwith<unit> v80                                           │
00:03:14 #1953 [Verbose] > │         let v81 : string = $"%A{v29}"                                        │
00:03:14 #1954 [Verbose] > │         let v82 : (string []) = Array.zeroCreate<string>                     │
00:03:14 #1955 [Verbose] > │ (System.Convert.ToInt32(v67))                                                │
00:03:14 #1956 [Verbose] > │         let v83 : Mut0 = {l0 = 0UL} : Mut0                                   │
00:03:14 #1957 [Verbose] > │         while method4(v67, v83) do                                           │
00:03:14 #1958 [Verbose] > │             let v85 : uint64 = v83.l0                                        │
00:03:14 #1959 [Verbose] > │             let struct (v86 : string, v87 : int64) = v43.[int v85]           │
00:03:14 #1960 [Verbose] > │             v82.[int v85] <- v86                                             │
00:03:14 #1961 [Verbose] > │             let v88 : uint64 = v85 + 1UL                                     │
00:03:14 #1962 [Verbose] > │             v83.l0 <- v88                                                    │
00:03:14 #1963 [Verbose] > │             ()                                                               │
00:03:14 #1964 [Verbose] > │         let v89 : string = v82.[int 0UL]                                     │
00:03:14 #1965 [Verbose] > │         let v90 : string = $"%A{v89}"                                        │
00:03:14 #1966 [Verbose] > │         let v91 : (int64 []) = Array.zeroCreate<int64>                       │
00:03:14 #1967 [Verbose] > │ (System.Convert.ToInt32(v67))                                                │
00:03:14 #1968 [Verbose] > │         let v92 : Mut0 = {l0 = 0UL} : Mut0                                   │
00:03:14 #1969 [Verbose] > │         while method4(v67, v92) do                                           │
00:03:14 #1970 [Verbose] > │             let v94 : uint64 = v92.l0                                        │
00:03:14 #1971 [Verbose] > │             let struct (v95 : string, v96 : int64) = v43.[int v94]           │
00:03:14 #1972 [Verbose] > │             v91.[int v94] <- v96                                             │
00:03:14 #1973 [Verbose] > │             let v97 : uint64 = v94 + 1UL                                     │
00:03:14 #1974 [Verbose] > │             v92.l0 <- v97                                                    │
00:03:14 #1975 [Verbose] > │             ()                                                               │
00:03:14 #1976 [Verbose] > │         v24.[int v27] <- struct (v81, v30, v90, v91)                         │
00:03:14 #1977 [Verbose] > │         let v98 : uint64 = v27 + 1UL                                         │
00:03:14 #1978 [Verbose] > │         v25.l0 <- v98                                                        │
00:03:14 #1979 [Verbose] > │         ()                                                                   │
00:03:14 #1980 [Verbose] > │     let v99 : uint64 = System.Convert.ToUInt64 v24.Length                    │
00:03:14 #1981 [Verbose] > │     let v100 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 *      │
00:03:14 #1982 [Verbose] > │ US0)> (System.Convert.ToInt32(v99))                                          │
00:03:14 #1983 [Verbose] > │     let v101 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:03:14 #1984 [Verbose] > │     while method4(v99, v101) do                                              │
00:03:14 #1985 [Verbose] > │         let v103 : uint64 = v101.l0                                          │
00:03:14 #1986 [Verbose] > │         let struct (v104 : string, v105 : string, v106 : string, v107 :      │
00:03:14 #1987 [Verbose] > │ (int64 [])) = v24.[int v103]                                                 │
00:03:14 #1988 [Verbose] > │         let v108 : uint64 = System.Convert.ToUInt64 v107.Length              │
00:03:14 #1989 [Verbose] > │         let v109 : UH4 = UH4_1                                               │
00:03:14 #1990 [Verbose] > │         let v110 : Mut2 = {l0 = 0UL; l1 = v109; l2 = 0L} : Mut2              │
00:03:14 #1991 [Verbose] > │         while method17(v108, v110) do                                        │
00:03:14 #1992 [Verbose] > │             let v112 : uint64 = v110.l0                                      │
00:03:14 #1993 [Verbose] > │             let struct (v113 : UH4, v114 : int64) = v110.l1, v110.l2         │
00:03:14 #1994 [Verbose] > │             let v115 : int64 = v107.[int v112]                               │
00:03:14 #1995 [Verbose] > │             let v116 : int64 = v114 + 1L                                     │
00:03:14 #1996 [Verbose] > │             let v117 : uint64 = v112 + 1UL                                   │
00:03:14 #1997 [Verbose] > │             let v118 : UH4 = UH4_0(v114, v115, v113)                         │
00:03:14 #1998 [Verbose] > │             v110.l0 <- v117                                                  │
00:03:14 #1999 [Verbose] > │             v110.l1 <- v118                                                  │
00:03:14 #2000 [Verbose] > │             v110.l2 <- v116                                                  │
00:03:14 #2001 [Verbose] > │             ()                                                               │
00:03:14 #2002 [Verbose] > │         let struct (v119 : UH4, v120 : int64) = v110.l1, v110.l2             │
00:03:14 #2003 [Verbose] > │         let v121 : UH4 = UH4_1                                               │
00:03:14 #2004 [Verbose] > │         let v122 : UH4 = method18(v119, v121)                                │
00:03:14 #2005 [Verbose] > │         let v123 : (struct (int64 * int64) []) = method19(v122)              │
00:03:14 #2006 [Verbose] > │         let v124 : int32 = v123.Length                                       │
00:03:14 #2007 [Verbose] > │         let v125 : (struct (int64 * int64) []) = Array.zeroCreate<struct     │
00:03:14 #2008 [Verbose] > │ (int64 * int64)> (v124)                                                      │
00:03:14 #2009 [Verbose] > │         let v126 : Mut1 = {l0 = 0} : Mut1                                    │
00:03:14 #2010 [Verbose] > │         while method5(v124, v126) do                                         │
00:03:14 #2011 [Verbose] > │             let v128 : int32 = v126.l0                                       │
00:03:14 #2012 [Verbose] > │             let struct (v129 : int64, v130 : int64) = v123.[int v128]        │
00:03:14 #2013 [Verbose] > │             let v131 : int64 = v129 + 1L                                     │
00:03:14 #2014 [Verbose] > │             v125.[int v128] <- struct (v131, v130)                           │
00:03:14 #2015 [Verbose] > │             let v132 : int32 = v128 + 1                                      │
00:03:14 #2016 [Verbose] > │             v126.l0 <- v132                                                  │
00:03:14 #2017 [Verbose] > │             ()                                                               │
00:03:14 #2018 [Verbose] > │         let v133 : (struct (int64 * int64) -> int64) = closure4()            │
00:03:14 #2019 [Verbose] > │         let v134 : (struct (int64 * int64) []) = v125 |> Array.sortBy v133   │
00:03:14 #2020 [Verbose] > │         let struct (v135 : int64, v136 : int64) = v134.[int 0]               │
00:03:14 #2021 [Verbose] > │         let v137 : string = $"%A{struct (v135, v136)}"                       │
00:03:14 #2022 [Verbose] > │         let v138 : bool = v104 = v106                                        │
00:03:14 #2023 [Verbose] > │         let v143 : US0 =                                                     │
00:03:14 #2024 [Verbose] > │             if v138 then                                                     │
00:03:14 #2025 [Verbose] > │                 let v139 : System.ConsoleColor =                             │
00:03:14 #2026 [Verbose] > │ System.ConsoleColor.DarkGreen                                                │
00:03:14 #2027 [Verbose] > │                 US0_1(v139)                                                  │
00:03:14 #2028 [Verbose] > │             else                                                             │
00:03:14 #2029 [Verbose] > │                 let v141 : System.ConsoleColor = System.ConsoleColor.DarkRed │
00:03:14 #2030 [Verbose] > │                 US0_1(v141)                                                  │
00:03:14 #2031 [Verbose] > │         let v144 : UH2 = UH2_1                                               │
00:03:14 #2032 [Verbose] > │         let v145 : UH2 = UH2_0(v137, v144)                                   │
00:03:14 #2033 [Verbose] > │         let v146 : UH2 = UH2_0(v106, v145)                                   │
00:03:14 #2034 [Verbose] > │         let v147 : UH2 = UH2_0(v104, v146)                                   │
00:03:14 #2035 [Verbose] > │         let v148 : UH2 = UH2_0(v105, v147)                                   │
00:03:14 #2036 [Verbose] > │         v100.[int v103] <- struct (v148, v143)                               │
00:03:14 #2037 [Verbose] > │         let v149 : uint64 = v103 + 1UL                                       │
00:03:14 #2038 [Verbose] > │         v101.l0 <- v149                                                      │
00:03:14 #2039 [Verbose] > │         ()                                                                   │
00:03:14 #2040 [Verbose] > │     let v150 : string = "Input"                                              │
00:03:14 #2041 [Verbose] > │     let v151 : string = "Expected"                                           │
00:03:14 #2042 [Verbose] > │     let v152 : string = "Result"                                             │
00:03:14 #2043 [Verbose] > │     let v153 : string = "Best"                                               │
00:03:14 #2044 [Verbose] > │     let v154 : UH2 = UH2_1                                                   │
00:03:14 #2045 [Verbose] > │     let v155 : UH2 = UH2_0(v153, v154)                                       │
00:03:14 #2046 [Verbose] > │     let v156 : UH2 = UH2_0(v152, v155)                                       │
00:03:14 #2047 [Verbose] > │     let v157 : UH2 = UH2_0(v151, v156)                                       │
00:03:14 #2048 [Verbose] > │     let v158 : UH2 = UH2_0(v150, v157)                                       │
00:03:14 #2049 [Verbose] > │     let v159 : US0 = US0_0                                                   │
00:03:14 #2050 [Verbose] > │     let v160 : string = "---"                                                │
00:03:14 #2051 [Verbose] > │     let v161 : UH2 = UH2_1                                                   │
00:03:14 #2052 [Verbose] > │     let v162 : UH2 = UH2_0(v160, v161)                                       │
00:03:14 #2053 [Verbose] > │     let v163 : UH2 = UH2_0(v160, v162)                                       │
00:03:14 #2054 [Verbose] > │     let v164 : UH2 = UH2_0(v160, v163)                                       │
00:03:14 #2055 [Verbose] > │     let v165 : UH2 = UH2_0(v160, v164)                                       │
00:03:14 #2056 [Verbose] > │     let v166 : US0 = US0_0                                                   │
00:03:14 #2057 [Verbose] > │     let v167 : UH5 = UH5_1                                                   │
00:03:14 #2058 [Verbose] > │     let v168 : UH5 = UH5_0(v165, v166, v167)                                 │
00:03:14 #2059 [Verbose] > │     let v169 : UH5 = UH5_0(v158, v159, v168)                                 │
00:03:14 #2060 [Verbose] > │     let v170 : (struct (UH2 * US0) []) = method22(v169)                      │
00:03:14 #2061 [Verbose] > │     let v171 : uint64 = System.Convert.ToUInt64 v170.Length                  │
00:03:14 #2062 [Verbose] > │     let v172 : uint64 = System.Convert.ToUInt64 v100.Length                  │
00:03:14 #2063 [Verbose] > │     let v173 : uint64 = v171 + v172                                          │
00:03:14 #2064 [Verbose] > │     let v174 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 *      │
00:03:14 #2065 [Verbose] > │ US0)> (System.Convert.ToInt32(v173))                                         │
00:03:14 #2066 [Verbose] > │     let v175 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:03:14 #2067 [Verbose] > │     while method4(v173, v175) do                                             │
00:03:14 #2068 [Verbose] > │         let v177 : uint64 = v175.l0                                          │
00:03:14 #2069 [Verbose] > │         let v178 : bool = v177 < v171                                        │
00:03:14 #2070 [Verbose] > │         let struct (v184 : UH2, v185 : US0) =                                │
00:03:14 #2071 [Verbose] > │             if v178 then                                                     │
00:03:14 #2072 [Verbose] > │                 let struct (v179 : UH2, v180 : US0) = v170.[int v177]        │
00:03:14 #2073 [Verbose] > │                 struct (v179, v180)                                          │
00:03:14 #2074 [Verbose] > │             else                                                             │
00:03:14 #2075 [Verbose] > │                 let v181 : uint64 = v177 - v171                              │
00:03:14 #2076 [Verbose] > │                 let struct (v182 : UH2, v183 : US0) = v100.[int v181]        │
00:03:14 #2077 [Verbose] > │                 struct (v182, v183)                                          │
00:03:14 #2078 [Verbose] > │         v174.[int v177] <- struct (v184, v185)                               │
00:03:14 #2079 [Verbose] > │         let v186 : uint64 = v177 + 1UL                                       │
00:03:14 #2080 [Verbose] > │         v175.l0 <- v186                                                      │
00:03:14 #2081 [Verbose] > │         ()                                                                   │
00:03:14 #2082 [Verbose] > │     let v187 : uint64 = System.Convert.ToUInt64 v174.Length                  │
00:03:14 #2083 [Verbose] > │     let v188 : ((string []) []) = Array.zeroCreate<(string [])>              │
00:03:14 #2084 [Verbose] > │ (System.Convert.ToInt32(v187))                                               │
00:03:14 #2085 [Verbose] > │     let v189 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:03:14 #2086 [Verbose] > │     while method4(v187, v189) do                                             │
00:03:14 #2087 [Verbose] > │         let v191 : uint64 = v189.l0                                          │
00:03:14 #2088 [Verbose] > │         let struct (v192 : UH2, v193 : US0) = v174.[int v191]                │
00:03:14 #2089 [Verbose] > │         let v194 : (string []) = method25(v192)                              │
00:03:14 #2090 [Verbose] > │         v188.[int v191] <- v194                                              │
00:03:14 #2091 [Verbose] > │         let v195 : uint64 = v191 + 1UL                                       │
00:03:14 #2092 [Verbose] > │         v189.l0 <- v195                                                      │
00:03:14 #2093 [Verbose] > │         ()                                                                   │
00:03:14 #2094 [Verbose] > │     let v196 : ((string []) []) = v188 |> Array.transpose                    │
00:03:14 #2095 [Verbose] > │     let v197 : uint64 = System.Convert.ToUInt64 v196.Length                  │
00:03:14 #2096 [Verbose] > │     let v198 : (int64 []) = Array.zeroCreate<int64>                          │
00:03:14 #2097 [Verbose] > │ (System.Convert.ToInt32(v197))                                               │
00:03:14 #2098 [Verbose] > │     let v199 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:03:14 #2099 [Verbose] > │     while method4(v197, v199) do                                             │
00:03:14 #2100 [Verbose] > │         let v201 : uint64 = v199.l0                                          │
00:03:14 #2101 [Verbose] > │         let v202 : (string []) = v196.[int v201]                             │
00:03:14 #2102 [Verbose] > │         let v203 : uint64 = System.Convert.ToUInt64 v202.Length              │
00:03:14 #2103 [Verbose] > │         let v204 : (int64 []) = Array.zeroCreate<int64>                      │
00:03:14 #2104 [Verbose] > │ (System.Convert.ToInt32(v203))                                               │
00:03:14 #2105 [Verbose] > │         let v205 : Mut0 = {l0 = 0UL} : Mut0                                  │
00:03:14 #2106 [Verbose] > │         while method4(v203, v205) do                                         │
00:03:14 #2107 [Verbose] > │             let v207 : uint64 = v205.l0                                      │
00:03:14 #2108 [Verbose] > │             let v208 : string = v202.[int v207]                              │
00:03:14 #2109 [Verbose] > │             let v209 : int64 = System.Convert.ToInt64 v208.Length            │
00:03:14 #2110 [Verbose] > │             v204.[int v207] <- v209                                          │
00:03:14 #2111 [Verbose] > │             let v210 : uint64 = v207 + 1UL                                   │
00:03:14 #2112 [Verbose] > │             v205.l0 <- v210                                                  │
00:03:14 #2113 [Verbose] > │             ()                                                               │
00:03:14 #2114 [Verbose] > │         let v211 : (int64 []) = v204 |> Array.sortDescending                 │
00:03:14 #2115 [Verbose] > │         let v212 : int64 option = v211 |> Array.tryItem 0                    │
00:03:14 #2116 [Verbose] > │         let v213 : (int64 -> US1) = closure5()                               │
00:03:14 #2117 [Verbose] > │         let v214 : US1 = US1_0                                               │
00:03:14 #2118 [Verbose] > │         let v215 : US1 = v212 |> Option.map v213 |> Option.defaultValue v214 │
00:03:14 #2119 [Verbose] > │         let v218 : int64 =                                                   │
00:03:14 #2120 [Verbose] > │             match v215 with                                                  │
00:03:14 #2121 [Verbose] > │             | US1_0 -> (* None *)                                            │
00:03:14 #2122 [Verbose] > │                 0L                                                           │
00:03:14 #2123 [Verbose] > │             | US1_1(v216) -> (* Some *)                                      │
00:03:14 #2124 [Verbose] > │                 v216                                                         │
00:03:14 #2125 [Verbose] > │         v198.[int v201] <- v218                                              │
00:03:14 #2126 [Verbose] > │         let v219 : uint64 = v201 + 1UL                                       │
00:03:14 #2127 [Verbose] > │         v199.l0 <- v219                                                      │
00:03:14 #2128 [Verbose] > │         ()                                                                   │
00:03:14 #2129 [Verbose] > │     let v220 : uint64 = System.Convert.ToUInt64 v198.Length                  │
00:03:14 #2130 [Verbose] > │     let v221 : UH6 = UH6_1                                                   │
00:03:14 #2131 [Verbose] > │     let v222 : Mut3 = {l0 = 0UL; l1 = v221; l2 = 0} : Mut3                   │
00:03:14 #2132 [Verbose] > │     while method28(v220, v222) do                                            │
00:03:14 #2133 [Verbose] > │         let v224 : uint64 = v222.l0                                          │
00:03:14 #2134 [Verbose] > │         let struct (v225 : UH6, v226 : int32) = v222.l1, v222.l2             │
00:03:14 #2135 [Verbose] > │         let v227 : int64 = v198.[int v224]                                   │
00:03:14 #2136 [Verbose] > │         let v228 : int32 = v226 + 1                                          │
00:03:14 #2137 [Verbose] > │         let v229 : uint64 = v224 + 1UL                                       │
00:03:14 #2138 [Verbose] > │         let v230 : UH6 = UH6_0(v226, v227, v225)                             │
00:03:14 #2139 [Verbose] > │         v222.l0 <- v229                                                      │
00:03:14 #2140 [Verbose] > │         v222.l1 <- v230                                                      │
00:03:14 #2141 [Verbose] > │         v222.l2 <- v228                                                      │
00:03:14 #2142 [Verbose] > │         ()                                                                   │
00:03:14 #2143 [Verbose] > │     let struct (v231 : UH6, v232 : int32) = v222.l1, v222.l2                 │
00:03:14 #2144 [Verbose] > │     let v233 : UH6 = UH6_1                                                   │
00:03:14 #2145 [Verbose] > │     let v234 : UH6 = method29(v231, v233)                                    │
00:03:14 #2146 [Verbose] > │     let v235 : (struct (int32 * int64) []) = method30(v234)                  │
00:03:14 #2147 [Verbose] > │     let v236 : Map<int32, int64> = v235 |> Array.map (fun (struct (a, b)) -> │
00:03:14 #2148 [Verbose] > │ a, b) |> Map.ofArray                                                         │
00:03:14 #2149 [Verbose] > │     let v237 : (struct ((string []) * US0) []) = Array.zeroCreate<struct     │
00:03:14 #2150 [Verbose] > │ ((string []) * US0)> (System.Convert.ToInt32(v187))                          │
00:03:14 #2151 [Verbose] > │     let v238 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:03:14 #2152 [Verbose] > │     while method4(v187, v238) do                                             │
00:03:14 #2153 [Verbose] > │         let v240 : uint64 = v238.l0                                          │
00:03:14 #2154 [Verbose] > │         let struct (v241 : UH2, v242 : US0) = v174.[int v240]                │
00:03:14 #2155 [Verbose] > │         let v243 : UH7 = UH7_1                                               │
00:03:14 #2156 [Verbose] > │         let v244 : int32 = 0                                                 │
00:03:14 #2157 [Verbose] > │         let struct (v245 : UH7, v246 : int32) = method33(v241, v243, v244)   │
00:03:14 #2158 [Verbose] > │         let v247 : UH7 = UH7_1                                               │
00:03:14 #2159 [Verbose] > │         let v248 : UH7 = method34(v245, v247)                                │
00:03:14 #2160 [Verbose] > │         let v249 : UH2 = UH2_1                                               │
00:03:14 #2161 [Verbose] > │         let v250 : UH2 = method35(v236, v248, v249)                          │
00:03:14 #2162 [Verbose] > │         let v251 : (string []) = method9(v250)                               │
00:03:14 #2163 [Verbose] > │         v237.[int v240] <- struct (v251, v242)                               │
00:03:14 #2164 [Verbose] > │         let v252 : uint64 = v240 + 1UL                                       │
00:03:14 #2165 [Verbose] > │         v238.l0 <- v252                                                      │
00:03:14 #2166 [Verbose] > │         ()                                                                   │
00:03:14 #2167 [Verbose] > │     System.Console.WriteLine v2                                              │
00:03:14 #2168 [Verbose] > │     let v253 : uint64 = System.Convert.ToUInt64 v237.Length                  │
00:03:14 #2169 [Verbose] > │     let v254 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:03:14 #2170 [Verbose] > │     while method4(v253, v254) do                                             │
00:03:14 #2171 [Verbose] > │         let v256 : uint64 = v254.l0                                          │
00:03:14 #2172 [Verbose] > │         let struct (v257 : (string []), v258 : US0) = v237.[int v256]        │
00:03:14 #2173 [Verbose] > │         match v258 with                                                      │
00:03:14 #2174 [Verbose] > │         | US0_0 -> (* None *)                                                │
00:03:14 #2175 [Verbose] > │             let mutable result = None                                        │
00:03:14 #2176 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM                                 │
00:03:14 #2177 [Verbose] > │             ()                                                               │
00:03:14 #2178 [Verbose] > │             #endif                                                           │
00:03:14 #2179 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │
00:03:14 #2180 [Verbose] > │             ()                                                               │
00:03:14 #2181 [Verbose] > │             #endif                                                           │
00:03:14 #2182 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │
00:03:14 #2183 [Verbose] > │             System.Console.ResetColor ()                                     │
00:03:14 #2184 [Verbose] > │             ()                                                               │
00:03:14 #2185 [Verbose] > │             #endif                                                           │
00:03:14 #2186 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │
00:03:14 #2187 [Verbose] > │             System.Console.ResetColor ()                                     │
00:03:14 #2188 [Verbose] > │             ()                                                               │
00:03:14 #2189 [Verbose] > │             #endif                                                           │
00:03:14 #2190 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │
00:03:14 #2191 [Verbose] > │             System.Console.ResetColor ()                                     │
00:03:14 #2192 [Verbose] > │             ()                                                               │
00:03:14 #2193 [Verbose] > │             #endif                                                           │
00:03:14 #2194 [Verbose] > │             |> fun x -> result <- Some x                                     │
00:03:14 #2195 [Verbose] > │             result |> Option.get                                             │
00:03:14 #2196 [Verbose] > │             ()                                                               │
00:03:14 #2197 [Verbose] > │         | US0_1(v259) -> (* Some *)                                          │
00:03:14 #2198 [Verbose] > │             let mutable result = None                                        │
00:03:14 #2199 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM                                 │
00:03:14 #2200 [Verbose] > │             ()                                                               │
00:03:14 #2201 [Verbose] > │             #endif                                                           │
00:03:14 #2202 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │
00:03:14 #2203 [Verbose] > │             ()                                                               │
00:03:14 #2204 [Verbose] > │             #endif                                                           │
00:03:14 #2205 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │
00:03:14 #2206 [Verbose] > │             System.Console.ForegroundColor <- v259                           │
00:03:14 #2207 [Verbose] > │             ()                                                               │
00:03:14 #2208 [Verbose] > │             #endif                                                           │
00:03:14 #2209 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │
00:03:14 #2210 [Verbose] > │             System.Console.ForegroundColor <- v259                           │
00:03:14 #2211 [Verbose] > │             ()                                                               │
00:03:14 #2212 [Verbose] > │             #endif                                                           │
00:03:14 #2213 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │
00:03:14 #2214 [Verbose] > │             System.Console.ForegroundColor <- v259                           │
00:03:14 #2215 [Verbose] > │             ()                                                               │
00:03:14 #2216 [Verbose] > │             #endif                                                           │
00:03:14 #2217 [Verbose] > │             |> fun x -> result <- Some x                                     │
00:03:14 #2218 [Verbose] > │             result |> Option.get                                             │
00:03:14 #2219 [Verbose] > │             ()                                                               │
00:03:14 #2220 [Verbose] > │         let v260 : string = "\t| "                                           │
00:03:14 #2221 [Verbose] > │         let v261 : string = System.String.Join (v260, v257)                  │
00:03:14 #2222 [Verbose] > │         System.Console.WriteLine v261                                        │
00:03:14 #2223 [Verbose] > │         let mutable result = None                                            │
00:03:14 #2224 [Verbose] > │         #if FABLE_COMPILER_RUST && !WASM                                     │
00:03:14 #2225 [Verbose] > │         ()                                                                   │
00:03:14 #2226 [Verbose] > │         #endif                                                               │
00:03:14 #2227 [Verbose] > │         #if FABLE_COMPILER_RUST && WASM                                      │
00:03:14 #2228 [Verbose] > │         ()                                                                   │
00:03:14 #2229 [Verbose] > │         #endif                                                               │
00:03:14 #2230 [Verbose] > │         #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                 │
00:03:14 #2231 [Verbose] > │         System.Console.ResetColor ()                                         │
00:03:14 #2232 [Verbose] > │         ()                                                                   │
00:03:14 #2233 [Verbose] > │         #endif                                                               │
00:03:14 #2234 [Verbose] > │         #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                  │
00:03:14 #2235 [Verbose] > │         System.Console.ResetColor ()                                         │
00:03:14 #2236 [Verbose] > │         ()                                                                   │
00:03:14 #2237 [Verbose] > │         #endif                                                               │
00:03:14 #2238 [Verbose] > │         #if !FABLE_COMPILER_RUST && WASM                                     │
00:03:14 #2239 [Verbose] > │         System.Console.ResetColor ()                                         │
00:03:14 #2240 [Verbose] > │         ()                                                                   │
00:03:14 #2241 [Verbose] > │         #endif                                                               │
00:03:14 #2242 [Verbose] > │         |> fun x -> result <- Some x                                         │
00:03:14 #2243 [Verbose] > │         result |> Option.get                                                 │
00:03:14 #2244 [Verbose] > │         let v262 : uint64 = v256 + 1UL                                       │
00:03:14 #2245 [Verbose] > │         v254.l0 <- v262                                                      │
00:03:14 #2246 [Verbose] > │         ()                                                                   │
00:03:14 #2247 [Verbose] > │     let v263 : ((float []) []) = Array.zeroCreate<(float [])>                │
00:03:14 #2248 [Verbose] > │ (System.Convert.ToInt32(v99))                                                │
00:03:14 #2249 [Verbose] > │     let v264 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:03:14 #2250 [Verbose] > │     while method4(v99, v264) do                                              │
00:03:14 #2251 [Verbose] > │         let v266 : uint64 = v264.l0                                          │
00:03:14 #2252 [Verbose] > │         let struct (v267 : string, v268 : string, v269 : string, v270 :      │
00:03:14 #2253 [Verbose] > │ (int64 [])) = v24.[int v266]                                                 │
00:03:14 #2254 [Verbose] > │         let v271 : (int64 -> float) = float                                  │
00:03:14 #2255 [Verbose] > │         let v272 : uint64 = System.Convert.ToUInt64 v270.Length              │
00:03:14 #2256 [Verbose] > │         let v273 : (float []) = Array.zeroCreate<float>                      │
00:03:14 #2257 [Verbose] > │ (System.Convert.ToInt32(v272))                                               │
00:03:14 #2258 [Verbose] > │         let v274 : Mut0 = {l0 = 0UL} : Mut0                                  │
00:03:14 #2259 [Verbose] > │         while method4(v272, v274) do                                         │
00:03:14 #2260 [Verbose] > │             let v276 : uint64 = v274.l0                                      │
00:03:14 #2261 [Verbose] > │             let v277 : int64 = v270.[int v276]                               │
00:03:14 #2262 [Verbose] > │             let v278 : float = v271 v277                                     │
00:03:14 #2263 [Verbose] > │             v273.[int v276] <- v278                                          │
00:03:14 #2264 [Verbose] > │             let v279 : uint64 = v276 + 1UL                                   │
00:03:14 #2265 [Verbose] > │             v274.l0 <- v279                                                  │
00:03:14 #2266 [Verbose] > │             ()                                                               │
00:03:14 #2267 [Verbose] > │         v263.[int v266] <- v273                                              │
00:03:14 #2268 [Verbose] > │         let v280 : uint64 = v266 + 1UL                                       │
00:03:14 #2269 [Verbose] > │         v264.l0 <- v280                                                      │
00:03:14 #2270 [Verbose] > │         ()                                                                   │
00:03:14 #2271 [Verbose] > │     let v281 : ((float []) []) = v263 |> Array.transpose                     │
00:03:14 #2272 [Verbose] > │     let v282 : uint64 = System.Convert.ToUInt64 v281.Length                  │
00:03:14 #2273 [Verbose] > │     let v283 : (float []) = Array.zeroCreate<float>                          │
00:03:14 #2274 [Verbose] > │ (System.Convert.ToInt32(v282))                                               │
00:03:14 #2275 [Verbose] > │     let v284 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:03:14 #2276 [Verbose] > │     while method4(v282, v284) do                                             │
00:03:14 #2277 [Verbose] > │         let v286 : uint64 = v284.l0                                          │
00:03:14 #2278 [Verbose] > │         let v287 : (float []) = v281.[int v286]                              │
00:03:14 #2279 [Verbose] > │         let v288 : float = v287 |> Array.average                             │
00:03:14 #2280 [Verbose] > │         v283.[int v286] <- v288                                              │
00:03:14 #2281 [Verbose] > │         let v289 : uint64 = v286 + 1UL                                       │
00:03:14 #2282 [Verbose] > │         v284.l0 <- v289                                                      │
00:03:14 #2283 [Verbose] > │         ()                                                                   │
00:03:14 #2284 [Verbose] > │     let v290 : (float -> int64) = int64                                      │
00:03:14 #2285 [Verbose] > │     let v291 : uint64 = System.Convert.ToUInt64 v283.Length                  │
00:03:14 #2286 [Verbose] > │     let v292 : (int64 []) = Array.zeroCreate<int64>                          │
00:03:14 #2287 [Verbose] > │ (System.Convert.ToInt32(v291))                                               │
00:03:14 #2288 [Verbose] > │     let v293 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:03:14 #2289 [Verbose] > │     while method4(v291, v293) do                                             │
00:03:14 #2290 [Verbose] > │         let v295 : uint64 = v293.l0                                          │
00:03:14 #2291 [Verbose] > │         let v296 : float = v283.[int v295]                                   │
00:03:14 #2292 [Verbose] > │         let v297 : int64 = v290 v296                                         │
00:03:14 #2293 [Verbose] > │         v292.[int v295] <- v297                                              │
00:03:14 #2294 [Verbose] > │         let v298 : uint64 = v295 + 1UL                                       │
00:03:14 #2295 [Verbose] > │         v293.l0 <- v298                                                      │
00:03:14 #2296 [Verbose] > │         ()                                                                   │
00:03:14 #2297 [Verbose] > │     let v299 : uint64 = System.Convert.ToUInt64 v292.Length                  │
00:03:14 #2298 [Verbose] > │     let v300 : UH6 = UH6_1                                                   │
00:03:14 #2299 [Verbose] > │     let v301 : Mut3 = {l0 = 0UL; l1 = v300; l2 = 0} : Mut3                   │
00:03:14 #2300 [Verbose] > │     while method28(v299, v301) do                                            │
00:03:14 #2301 [Verbose] > │         let v303 : uint64 = v301.l0                                          │
00:03:14 #2302 [Verbose] > │         let struct (v304 : UH6, v305 : int32) = v301.l1, v301.l2             │
00:03:14 #2303 [Verbose] > │         let v306 : int64 = v292.[int v303]                                   │
00:03:14 #2304 [Verbose] > │         let v307 : int32 = v305 + 1                                          │
00:03:14 #2305 [Verbose] > │         let v308 : uint64 = v303 + 1UL                                       │
00:03:14 #2306 [Verbose] > │         let v309 : UH6 = UH6_0(v305, v306, v304)                             │
00:03:14 #2307 [Verbose] > │         v301.l0 <- v308                                                      │
00:03:14 #2308 [Verbose] > │         v301.l1 <- v309                                                      │
00:03:14 #2309 [Verbose] > │         v301.l2 <- v307                                                      │
00:03:14 #2310 [Verbose] > │         ()                                                                   │
00:03:14 #2311 [Verbose] > │     let struct (v310 : UH6, v311 : int32) = v301.l1, v301.l2                 │
00:03:14 #2312 [Verbose] > │     let v312 : UH6 = UH6_1                                                   │
00:03:14 #2313 [Verbose] > │     let v313 : UH6 = method29(v310, v312)                                    │
00:03:14 #2314 [Verbose] > │     let v314 : (struct (int32 * int64) []) = method36(v313)                  │
00:03:14 #2315 [Verbose] > │     System.Console.WriteLine v2                                              │
00:03:14 #2316 [Verbose] > │     let v315 : string = "Average Ranking  "                                  │
00:03:14 #2317 [Verbose] > │     System.Console.WriteLine v315                                            │
00:03:14 #2318 [Verbose] > │     let v316 : (struct (int32 * int64) -> int64) = closure6()                │
00:03:14 #2319 [Verbose] > │     let v317 : (struct (int32 * int64) []) = v314 |> Array.sortBy v316       │
00:03:14 #2320 [Verbose] > │     let v318 : uint64 = System.Convert.ToUInt64 v317.Length                  │
00:03:14 #2321 [Verbose] > │     let v319 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:03:14 #2322 [Verbose] > │     while method4(v318, v319) do                                             │
00:03:14 #2323 [Verbose] > │         let v321 : uint64 = v319.l0                                          │
00:03:14 #2324 [Verbose] > │         let struct (v322 : int32, v323 : int64) = v317.[int v321]            │
00:03:14 #2325 [Verbose] > │         let v324 : string = $"Test case %d{v322 + 1}. Average Time: %A{v323} │
00:03:14 #2326 [Verbose] > │ "                                                                            │
00:03:14 #2327 [Verbose] > │         System.Console.WriteLine v324                                        │
00:03:14 #2328 [Verbose] > │         let v325 : uint64 = v321 + 1UL                                       │
00:03:14 #2329 [Verbose] > │         v319.l0 <- v325                                                      │
00:03:14 #2330 [Verbose] > │         ()                                                                   │
00:03:14 #2331 [Verbose] > │     ()                                                                       │
00:03:14 #2332 [Verbose] > │ and method0 () : unit =                                                      │
00:03:14 #2333 [Verbose] > │     let v0 : (unit -> unit) = closure0()                                     │
00:03:14 #2334 [Verbose] > │     let v1 : string = nameof v0                                              │
00:03:14 #2335 [Verbose] > │     let v2 : string = ""                                                     │
00:03:14 #2336 [Verbose] > │     System.Console.WriteLine v2                                              │
00:03:14 #2337 [Verbose] > │     System.Console.WriteLine v2                                              │
00:03:14 #2338 [Verbose] > │     let v3 : string = $"Test: {v1}"                                          │
00:03:14 #2339 [Verbose] > │     System.Console.WriteLine v3                                              │
00:03:14 #2340 [Verbose] > │     let v4 : string = "abc"                                                  │
00:03:14 #2341 [Verbose] > │     let v5 : string = "bca cab abc"                                          │
00:03:14 #2342 [Verbose] > │     let v6 : string = "abcde"                                                │
00:03:14 #2343 [Verbose] > │     let v7 : string = "bcdea cdeab deabc eabcd abcde"                        │
00:03:14 #2344 [Verbose] > │     let v8 : string = "abcdefghi"                                            │
00:03:14 #2345 [Verbose] > │     let v9 : string = "bcdefghia cdefghiab defghiabc efghiabcd fghiabcde     │
00:03:14 #2346 [Verbose] > │ ghiabcdef hiabcdefg iabcdefgh abcdefghi"                                     │
00:03:14 #2347 [Verbose] > │     let v10 : string = "abab"                                                │
00:03:14 #2348 [Verbose] > │     let v11 : string = "baba abab baba abab"                                 │
00:03:14 #2349 [Verbose] > │     let v12 : string = "aa"                                                  │
00:03:14 #2350 [Verbose] > │     let v13 : string = "aa aa"                                               │
00:03:14 #2351 [Verbose] > │     let v14 : string = "z"                                                   │
00:03:14 #2352 [Verbose] > │     let v15 : UH0 = UH0_1                                                    │
00:03:14 #2353 [Verbose] > │     let v16 : UH0 = UH0_0(v14, v14, v15)                                     │
00:03:14 #2354 [Verbose] > │     let v17 : UH0 = UH0_0(v12, v13, v16)                                     │
00:03:14 #2355 [Verbose] > │     let v18 : UH0 = UH0_0(v10, v11, v17)                                     │
00:03:14 #2356 [Verbose] > │     let v19 : UH0 = UH0_0(v8, v9, v18)                                       │
00:03:14 #2357 [Verbose] > │     let v20 : UH0 = UH0_0(v6, v7, v19)                                       │
00:03:14 #2358 [Verbose] > │     let v21 : UH0 = UH0_0(v4, v5, v20)                                       │
00:03:14 #2359 [Verbose] > │     let v22 : (struct (string * string) []) = method1(v21)                   │
00:03:14 #2360 [Verbose] > │     let v23 : uint64 = System.Convert.ToUInt64 v22.Length                    │
00:03:14 #2361 [Verbose] > │     let v24 : (struct (string * string * string * (int64 [])) []) =          │
00:03:14 #2362 [Verbose] > │ Array.zeroCreate<struct (string * string * string * (int64 []))>             │
00:03:14 #2363 [Verbose] > │ (System.Convert.ToInt32(v23))                                                │
00:03:14 #2364 [Verbose] > │     let v25 : Mut0 = {l0 = 0UL} : Mut0                                       │
00:03:14 #2365 [Verbose] > │     while method4(v23, v25) do                                               │
00:03:14 #2366 [Verbose] > │         let v27 : uint64 = v25.l0                                            │
00:03:14 #2367 [Verbose] > │         let struct (v28 : string, v29 : string) = v22.[int v27]              │
00:03:14 #2368 [Verbose] > │         let v30 : string = $"%A{v28}"                                        │
00:03:14 #2369 [Verbose] > │         System.Console.WriteLine v2                                          │
00:03:14 #2370 [Verbose] > │         let v31 : string = $"Solution: {v30}  "                              │
00:03:14 #2371 [Verbose] > │         System.Console.WriteLine v31                                         │
00:03:14 #2372 [Verbose] > │         let v32 : int32 = 0                                                  │
00:03:14 #2373 [Verbose] > │         let v33 : string = "F"                                               │
00:03:14 #2374 [Verbose] > │         let v34 : (string -> string) = closure1()                            │
00:03:14 #2375 [Verbose] > │         let v35 : int32 = 1                                                  │
00:03:14 #2376 [Verbose] > │         let v36 : string = "FA"                                              │
00:03:14 #2377 [Verbose] > │         let v37 : (string -> string) = closure2()                            │
00:03:14 #2378 [Verbose] > │         let v38 : UH3 = UH3_1                                                │
00:03:14 #2379 [Verbose] > │         let v39 : UH3 = UH3_0(v35, v36, v37, v38)                            │
00:03:14 #2380 [Verbose] > │         let v40 : UH3 = UH3_0(v32, v33, v34, v39)                            │
00:03:14 #2381 [Verbose] > │         let v41 : (struct (int32 * string * (string -> string)) []) =        │
00:03:14 #2382 [Verbose] > │ method12(v40)                                                                │
00:03:14 #2383 [Verbose] > │         let v42 : uint64 = System.Convert.ToUInt64 v41.Length                │
00:03:14 #2384 [Verbose] > │         let v43 : (struct (string * int64) []) = Array.zeroCreate<struct     │
00:03:14 #2385 [Verbose] > │ (string * int64)> (System.Convert.ToInt32(v42))                              │
00:03:14 #2386 [Verbose] > │         let v44 : Mut0 = {l0 = 0UL} : Mut0                                   │
00:03:14 #2387 [Verbose] > │         while method4(v42, v44) do                                           │
00:03:14 #2388 [Verbose] > │             let v46 : uint64 = v44.l0                                        │
00:03:14 #2389 [Verbose] > │             let struct (v47 : int32, v48 : string, v49 : (string -> string)) │
00:03:14 #2390 [Verbose] > │ = v41.[int v46]                                                              │
00:03:14 #2391 [Verbose] > │             let mutable result = None                                        │
00:03:14 #2392 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM                                 │
00:03:14 #2393 [Verbose] > │             ()                                                               │
00:03:14 #2394 [Verbose] > │             #endif                                                           │
00:03:14 #2395 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │
00:03:14 #2396 [Verbose] > │             ()                                                               │
00:03:14 #2397 [Verbose] > │             #endif                                                           │
00:03:14 #2398 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │
00:03:14 #2399 [Verbose] > │             System.GC.Collect ()                                             │
00:03:14 #2400 [Verbose] > │             ()                                                               │
00:03:14 #2401 [Verbose] > │             #endif                                                           │
00:03:14 #2402 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │
00:03:14 #2403 [Verbose] > │             System.GC.Collect ()                                             │
00:03:14 #2404 [Verbose] > │             ()                                                               │
00:03:14 #2405 [Verbose] > │             #endif                                                           │
00:03:14 #2406 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │
00:03:14 #2407 [Verbose] > │             System.GC.Collect ()                                             │
00:03:14 #2408 [Verbose] > │             ()                                                               │
00:03:14 #2409 [Verbose] > │             #endif                                                           │
00:03:14 #2410 [Verbose] > │             |> fun x -> result <- Some x                                     │
00:03:14 #2411 [Verbose] > │             result |> Option.get                                             │
00:03:14 #2412 [Verbose] > │             let v50 : (unit -> System.Diagnostics.Stopwatch) =               │
00:03:14 #2413 [Verbose] > │ System.Diagnostics.Stopwatch                                                 │
00:03:14 #2414 [Verbose] > │             let v51 : System.Diagnostics.Stopwatch = v50 ()                  │
00:03:14 #2415 [Verbose] > │             v51.Start ()                                                     │
00:03:14 #2416 [Verbose] > │             let v52 : int64 = v51.ElapsedMilliseconds                        │
00:03:14 #2417 [Verbose] > │             let v53 : (int32 []) = Array.zeroCreate<int32> (2000001)         │
00:03:14 #2418 [Verbose] > │             let v54 : Mut1 = {l0 = 0} : Mut1                                 │
00:03:14 #2419 [Verbose] > │             while method15(v54) do                                           │
00:03:14 #2420 [Verbose] > │                 let v56 : int32 = v54.l0                                     │
00:03:14 #2421 [Verbose] > │                 v53.[int v56] <- v56                                         │
00:03:14 #2422 [Verbose] > │                 let v57 : int32 = v56 + 1                                    │
00:03:14 #2423 [Verbose] > │                 v54.l0 <- v57                                                │
00:03:14 #2424 [Verbose] > │                 ()                                                           │
00:03:14 #2425 [Verbose] > │             let v58 : (int32 -> string) = closure3(v28, v49)                 │
00:03:14 #2426 [Verbose] > │             let v59 : (string []) = v53 |> Array.Parallel.map v58            │
00:03:14 #2427 [Verbose] > │             let v60 : int32 = v59.Length                                     │
00:03:14 #2428 [Verbose] > │             let v61 : int32 = v60 - 1                                        │
00:03:14 #2429 [Verbose] > │             let v62 : string = v59.[int v61]                                 │
00:03:14 #2430 [Verbose] > │             let v63 : int64 = v51.ElapsedMilliseconds                        │
00:03:14 #2431 [Verbose] > │             let v64 : int64 = v63 - v52                                      │
00:03:14 #2432 [Verbose] > │             let v65 : string = $"Test case {v47 + 1}. {v48}. Time: {v64}  "  │
00:03:14 #2433 [Verbose] > │             System.Console.WriteLine v65                                     │
00:03:14 #2434 [Verbose] > │             v43.[int v46] <- struct (v62, v64)                               │
00:03:14 #2435 [Verbose] > │             let v66 : uint64 = v46 + 1UL                                     │
00:03:14 #2436 [Verbose] > │             v44.l0 <- v66                                                    │
00:03:14 #2437 [Verbose] > │             ()                                                               │
00:03:14 #2438 [Verbose] > │         let v67 : uint64 = System.Convert.ToUInt64 v43.Length                │
00:03:14 #2439 [Verbose] > │         let v68 : (string []) = Array.zeroCreate<string>                     │
00:03:14 #2440 [Verbose] > │ (System.Convert.ToInt32(v67))                                                │
00:03:14 #2441 [Verbose] > │         let v69 : Mut0 = {l0 = 0UL} : Mut0                                   │
00:03:14 #2442 [Verbose] > │         while method4(v67, v69) do                                           │
00:03:14 #2443 [Verbose] > │             let v71 : uint64 = v69.l0                                        │
00:03:14 #2444 [Verbose] > │             let struct (v72 : string, v73 : int64) = v43.[int v71]           │
00:03:14 #2445 [Verbose] > │             v68.[int v71] <- v72                                             │
00:03:14 #2446 [Verbose] > │             let v74 : uint64 = v71 + 1UL                                     │
00:03:14 #2447 [Verbose] > │             v69.l0 <- v74                                                    │
00:03:14 #2448 [Verbose] > │             ()                                                               │
00:03:14 #2449 [Verbose] > │         let v75 : uint64 = System.Convert.ToUInt64 v68.Length                │
00:03:14 #2450 [Verbose] > │         let v76 : bool = v75 <= 1UL                                          │
00:03:14 #2451 [Verbose] > │         if v76 then                                                          │
00:03:14 #2452 [Verbose] > │             ()                                                               │
00:03:14 #2453 [Verbose] > │         else                                                                 │
00:03:14 #2454 [Verbose] > │             let v77 : string = v68.[int 0UL]                                 │
00:03:14 #2455 [Verbose] > │             let v78 : uint64 = 0UL                                           │
00:03:14 #2456 [Verbose] > │             let v79 : bool = method16(v77, v68, v78)                         │
00:03:14 #2457 [Verbose] > │             if v79 then                                                      │
00:03:14 #2458 [Verbose] > │                 ()                                                           │
00:03:14 #2459 [Verbose] > │             else                                                             │
00:03:14 #2460 [Verbose] > │                 let v80 : string = $"Challenge error: {v68}"                 │
00:03:14 #2461 [Verbose] > │                 failwith<unit> v80                                           │
00:03:14 #2462 [Verbose] > │         let v81 : string = $"%A{v29}"                                        │
00:03:14 #2463 [Verbose] > │         let v82 : (string []) = Array.zeroCreate<string>                     │
00:03:14 #2464 [Verbose] > │ (System.Convert.ToInt32(v67))                                                │
00:03:14 #2465 [Verbose] > │         let v83 : Mut0 = {l0 = 0UL} : Mut0                                   │
00:03:14 #2466 [Verbose] > │         while method4(v67, v83) do                                           │
00:03:14 #2467 [Verbose] > │             let v85 : uint64 = v83.l0                                        │
00:03:14 #2468 [Verbose] > │             let struct (v86 : string, v87 : int64) = v43.[int v85]           │
00:03:14 #2469 [Verbose] > │             v82.[int v85] <- v86                                             │
00:03:14 #2470 [Verbose] > │             let v88 : uint64 = v85 + 1UL                                     │
00:03:14 #2471 [Verbose] > │             v83.l0 <- v88                                                    │
00:03:14 #2472 [Verbose] > │             ()                                                               │
00:03:14 #2473 [Verbose] > │         let v89 : string = v82.[int 0UL]                                     │
00:03:14 #2474 [Verbose] > │         let v90 : string = $"%A{v89}"                                        │
00:03:14 #2475 [Verbose] > │         let v91 : (int64 []) = Array.zeroCreate<int64>                       │
00:03:14 #2476 [Verbose] > │ (System.Convert.ToInt32(v67))                                                │
00:03:14 #2477 [Verbose] > │         let v92 : Mut0 = {l0 = 0UL} : Mut0                                   │
00:03:14 #2478 [Verbose] > │         while method4(v67, v92) do                                           │
00:03:14 #2479 [Verbose] > │             let v94 : uint64 = v92.l0                                        │
00:03:14 #2480 [Verbose] > │             let struct (v95 : string, v96 : int64) = v43.[int v94]           │
00:03:14 #2481 [Verbose] > │             v91.[int v94] <- v96                                             │
00:03:14 #2482 [Verbose] > │             let v97 : uint64 = v94 + 1UL                                     │
00:03:14 #2483 [Verbose] > │             v92.l0 <- v97                                                    │
00:03:14 #2484 [Verbose] > │             ()                                                               │
00:03:14 #2485 [Verbose] > │         v24.[int v27] <- struct (v81, v30, v90, v91)                         │
00:03:14 #2486 [Verbose] > │         let v98 : uint64 = v27 + 1UL                                         │
00:03:14 #2487 [Verbose] > │         v25.l0 <- v98                                                        │
00:03:14 #2488 [Verbose] > │         ()                                                                   │
00:03:14 #2489 [Verbose] > │     let v99 : uint64 = System.Convert.ToUInt64 v24.Length                    │
00:03:14 #2490 [Verbose] > │     let v100 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 *      │
00:03:14 #2491 [Verbose] > │ US0)> (System.Convert.ToInt32(v99))                                          │
00:03:14 #2492 [Verbose] > │     let v101 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:03:14 #2493 [Verbose] > │     while method4(v99, v101) do                                              │
00:03:14 #2494 [Verbose] > │         let v103 : uint64 = v101.l0                                          │
00:03:14 #2495 [Verbose] > │         let struct (v104 : string, v105 : string, v106 : string, v107 :      │
00:03:14 #2496 [Verbose] > │ (int64 [])) = v24.[int v103]                                                 │
00:03:14 #2497 [Verbose] > │         let v108 : uint64 = System.Convert.ToUInt64 v107.Length              │
00:03:14 #2498 [Verbose] > │         let v109 : UH4 = UH4_1                                               │
00:03:14 #2499 [Verbose] > │         let v110 : Mut2 = {l0 = 0UL; l1 = v109; l2 = 0L} : Mut2              │
00:03:14 #2500 [Verbose] > │         while method17(v108, v110) do                                        │
00:03:14 #2501 [Verbose] > │             let v112 : uint64 = v110.l0                                      │
00:03:14 #2502 [Verbose] > │             let struct (v113 : UH4, v114 : int64) = v110.l1, v110.l2         │
00:03:14 #2503 [Verbose] > │             let v115 : int64 = v107.[int v112]                               │
00:03:14 #2504 [Verbose] > │             let v116 : int64 = v114 + 1L                                     │
00:03:14 #2505 [Verbose] > │             let v117 : uint64 = v112 + 1UL                                   │
00:03:14 #2506 [Verbose] > │             let v118 : UH4 = UH4_0(v114, v115, v113)                         │
00:03:14 #2507 [Verbose] > │             v110.l0 <- v117                                                  │
00:03:14 #2508 [Verbose] > │             v110.l1 <- v118                                                  │
00:03:14 #2509 [Verbose] > │             v110.l2 <- v116                                                  │
00:03:14 #2510 [Verbose] > │             ()                                                               │
00:03:14 #2511 [Verbose] > │         let struct (v119 : UH4, v120 : int64) = v110.l1, v110.l2             │
00:03:14 #2512 [Verbose] > │         let v121 : UH4 = UH4_1                                               │
00:03:14 #2513 [Verbose] > │         let v122 : UH4 = method18(v119, v121)                                │
00:03:14 #2514 [Verbose] > │         let v123 : (struct (int64 * int64) []) = method19(v122)              │
00:03:14 #2515 [Verbose] > │         let v124 : int32 = v123.Length                                       │
00:03:14 #2516 [Verbose] > │         let v125 : (struct (int64 * int64) []) = Array.zeroCreate<struct     │
00:03:14 #2517 [Verbose] > │ (int64 * int64)> (v124)                                                      │
00:03:14 #2518 [Verbose] > │         let v126 : Mut1 = {l0 = 0} : Mut1                                    │
00:03:14 #2519 [Verbose] > │         while method5(v124, v126) do                                         │
00:03:14 #2520 [Verbose] > │             let v128 : int32 = v126.l0                                       │
00:03:14 #2521 [Verbose] > │             let struct (v129 : int64, v130 : int64) = v123.[int v128]        │
00:03:14 #2522 [Verbose] > │             let v131 : int64 = v129 + 1L                                     │
00:03:14 #2523 [Verbose] > │             v125.[int v128] <- struct (v131, v130)                           │
00:03:14 #2524 [Verbose] > │             let v132 : int32 = v128 + 1                                      │
00:03:14 #2525 [Verbose] > │             v126.l0 <- v132                                                  │
00:03:14 #2526 [Verbose] > │             ()                                                               │
00:03:14 #2527 [Verbose] > │         let v133 : (struct (int64 * int64) -> int64) = closure4()            │
00:03:14 #2528 [Verbose] > │         let v134 : (struct (int64 * int64) []) = v125 |> Array.sortBy v133   │
00:03:14 #2529 [Verbose] > │         let struct (v135 : int64, v136 : int64) = v134.[int 0]               │
00:03:14 #2530 [Verbose] > │         let v137 : string = $"%A{struct (v135, v136)}"                       │
00:03:14 #2531 [Verbose] > │         let v138 : bool = v104 = v106                                        │
00:03:14 #2532 [Verbose] > │         let v143 : US0 =                                                     │
00:03:14 #2533 [Verbose] > │             if v138 then                                                     │
00:03:14 #2534 [Verbose] > │                 let v139 : System.ConsoleColor =                             │
00:03:14 #2535 [Verbose] > │ System.ConsoleColor.DarkGreen                                                │
00:03:14 #2536 [Verbose] > │                 US0_1(v139)                                                  │
00:03:14 #2537 [Verbose] > │             else                                                             │
00:03:14 #2538 [Verbose] > │                 let v141 : System.ConsoleColor = System.ConsoleColor.DarkRed │
00:03:14 #2539 [Verbose] > │                 US0_1(v141)                                                  │
00:03:14 #2540 [Verbose] > │         let v144 : UH2 = UH2_1                                               │
00:03:14 #2541 [Verbose] > │         let v145 : UH2 = UH2_0(v137, v144)                                   │
00:03:14 #2542 [Verbose] > │         let v146 : UH2 = UH2_0(v106, v145)                                   │
00:03:14 #2543 [Verbose] > │         let v147 : UH2 = UH2_0(v104, v146)                                   │
00:03:14 #2544 [Verbose] > │         let v148 : UH2 = UH2_0(v105, v147)                                   │
00:03:14 #2545 [Verbose] > │         v100.[int v103] <- struct (v148, v143)                               │
00:03:14 #2546 [Verbose] > │         let v149 : uint64 = v103 + 1UL                                       │
00:03:14 #2547 [Verbose] > │         v101.l0 <- v149                                                      │
00:03:14 #2548 [Verbose] > │         ()                                                                   │
00:03:14 #2549 [Verbose] > │     let v150 : string = "Input"                                              │
00:03:14 #2550 [Verbose] > │     let v151 : string = "Expected"                                           │
00:03:14 #2551 [Verbose] > │     let v152 : string = "Result"                                             │
00:03:14 #2552 [Verbose] > │     let v153 : string = "Best"                                               │
00:03:14 #2553 [Verbose] > │     let v154 : UH2 = UH2_1                                                   │
00:03:14 #2554 [Verbose] > │     let v155 : UH2 = UH2_0(v153, v154)                                       │
00:03:14 #2555 [Verbose] > │     let v156 : UH2 = UH2_0(v152, v155)                                       │
00:03:14 #2556 [Verbose] > │     let v157 : UH2 = UH2_0(v151, v156)                                       │
00:03:14 #2557 [Verbose] > │     let v158 : UH2 = UH2_0(v150, v157)                                       │
00:03:14 #2558 [Verbose] > │     let v159 : US0 = US0_0                                                   │
00:03:14 #2559 [Verbose] > │     let v160 : string = "---"                                                │
00:03:14 #2560 [Verbose] > │     let v161 : UH2 = UH2_1                                                   │
00:03:14 #2561 [Verbose] > │     let v162 : UH2 = UH2_0(v160, v161)                                       │
00:03:14 #2562 [Verbose] > │     let v163 : UH2 = UH2_0(v160, v162)                                       │
00:03:14 #2563 [Verbose] > │     let v164 : UH2 = UH2_0(v160, v163)                                       │
00:03:14 #2564 [Verbose] > │     let v165 : UH2 = UH2_0(v160, v164)                                       │
00:03:14 #2565 [Verbose] > │     let v166 : US0 = US0_0                                                   │
00:03:14 #2566 [Verbose] > │     let v167 : UH5 = UH5_1                                                   │
00:03:14 #2567 [Verbose] > │     let v168 : UH5 = UH5_0(v165, v166, v167)                                 │
00:03:14 #2568 [Verbose] > │     let v169 : UH5 = UH5_0(v158, v159, v168)                                 │
00:03:14 #2569 [Verbose] > │     let v170 : (struct (UH2 * US0) []) = method22(v169)                      │
00:03:14 #2570 [Verbose] > │     let v171 : uint64 = System.Convert.ToUInt64 v170.Length                  │
00:03:14 #2571 [Verbose] > │     let v172 : uint64 = System.Convert.ToUInt64 v100.Length                  │
00:03:14 #2572 [Verbose] > │     let v173 : uint64 = v171 + v172                                          │
00:03:14 #2573 [Verbose] > │     let v174 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 *      │
00:03:14 #2574 [Verbose] > │ US0)> (System.Convert.ToInt32(v173))                                         │
00:03:14 #2575 [Verbose] > │     let v175 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:03:14 #2576 [Verbose] > │     while method4(v173, v175) do                                             │
00:03:14 #2577 [Verbose] > │         let v177 : uint64 = v175.l0                                          │
00:03:14 #2578 [Verbose] > │         let v178 : bool = v177 < v171                                        │
00:03:14 #2579 [Verbose] > │         let struct (v184 : UH2, v185 : US0) =                                │
00:03:14 #2580 [Verbose] > │             if v178 then                                                     │
00:03:14 #2581 [Verbose] > │                 let struct (v179 : UH2, v180 : US0) = v170.[int v177]        │
00:03:14 #2582 [Verbose] > │                 struct (v179, v180)                                          │
00:03:14 #2583 [Verbose] > │             else                                                             │
00:03:14 #2584 [Verbose] > │                 let v181 : uint64 = v177 - v171                              │
00:03:14 #2585 [Verbose] > │                 let struct (v182 : UH2, v183 : US0) = v100.[int v181]        │
00:03:14 #2586 [Verbose] > │                 struct (v182, v183)                                          │
00:03:14 #2587 [Verbose] > │         v174.[int v177] <- struct (v184, v185)                               │
00:03:14 #2588 [Verbose] > │         let v186 : uint64 = v177 + 1UL                                       │
00:03:14 #2589 [Verbose] > │         v175.l0 <- v186                                                      │
00:03:14 #2590 [Verbose] > │         ()                                                                   │
00:03:14 #2591 [Verbose] > │     let v187 : uint64 = System.Convert.ToUInt64 v174.Length                  │
00:03:14 #2592 [Verbose] > │     let v188 : ((string []) []) = Array.zeroCreate<(string [])>              │
00:03:14 #2593 [Verbose] > │ (System.Convert.ToInt32(v187))                                               │
00:03:14 #2594 [Verbose] > │     let v189 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:03:14 #2595 [Verbose] > │     while method4(v187, v189) do                                             │
00:03:14 #2596 [Verbose] > │         let v191 : uint64 = v189.l0                                          │
00:03:14 #2597 [Verbose] > │         let struct (v192 : UH2, v193 : US0) = v174.[int v191]                │
00:03:14 #2598 [Verbose] > │         let v194 : (string []) = method25(v192)                              │
00:03:14 #2599 [Verbose] > │         v188.[int v191] <- v194                                              │
00:03:14 #2600 [Verbose] > │         let v195 : uint64 = v191 + 1UL                                       │
00:03:14 #2601 [Verbose] > │         v189.l0 <- v195                                                      │
00:03:14 #2602 [Verbose] > │         ()                                                                   │
00:03:14 #2603 [Verbose] > │     let v196 : ((string []) []) = v188 |> Array.transpose                    │
00:03:14 #2604 [Verbose] > │     let v197 : uint64 = System.Convert.ToUInt64 v196.Length                  │
00:03:14 #2605 [Verbose] > │     let v198 : (int64 []) = Array.zeroCreate<int64>                          │
00:03:14 #2606 [Verbose] > │ (System.Convert.ToInt32(v197))                                               │
00:03:14 #2607 [Verbose] > │     let v199 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:03:14 #2608 [Verbose] > │     while method4(v197, v199) do                                             │
00:03:14 #2609 [Verbose] > │         let v201 : uint64 = v199.l0                                          │
00:03:14 #2610 [Verbose] > │         let v202 : (string []) = v196.[int v201]                             │
00:03:14 #2611 [Verbose] > │         let v203 : uint64 = System.Convert.ToUInt64 v202.Length              │
00:03:14 #2612 [Verbose] > │         let v204 : (int64 []) = Array.zeroCreate<int64>                      │
00:03:14 #2613 [Verbose] > │ (System.Convert.ToInt32(v203))                                               │
00:03:14 #2614 [Verbose] > │         let v205 : Mut0 = {l0 = 0UL} : Mut0                                  │
00:03:14 #2615 [Verbose] > │         while method4(v203, v205) do                                         │
00:03:14 #2616 [Verbose] > │             let v207 : uint64 = v205.l0                                      │
00:03:14 #2617 [Verbose] > │             let v208 : string = v202.[int v207]                              │
00:03:14 #2618 [Verbose] > │             let v209 : int64 = System.Convert.ToInt64 v208.Length            │
00:03:14 #2619 [Verbose] > │             v204.[int v207] <- v209                                          │
00:03:14 #2620 [Verbose] > │             let v210 : uint64 = v207 + 1UL                                   │
00:03:14 #2621 [Verbose] > │             v205.l0 <- v210                                                  │
00:03:14 #2622 [Verbose] > │             ()                                                               │
00:03:14 #2623 [Verbose] > │         let v211 : (int64 []) = v204 |> Array.sortDescending                 │
00:03:14 #2624 [Verbose] > │         let v212 : int64 option = v211 |> Array.tryItem 0                    │
00:03:14 #2625 [Verbose] > │         let v213 : (int64 -> US1) = closure5()                               │
00:03:14 #2626 [Verbose] > │         let v214 : US1 = US1_0                                               │
00:03:14 #2627 [Verbose] > │         let v215 : US1 = v212 |> Option.map v213 |> Option.defaultValue v214 │
00:03:14 #2628 [Verbose] > │         let v218 : int64 =                                                   │
00:03:14 #2629 [Verbose] > │             match v215 with                                                  │
00:03:14 #2630 [Verbose] > │             | US1_0 -> (* None *)                                            │
00:03:14 #2631 [Verbose] > │                 0L                                                           │
00:03:14 #2632 [Verbose] > │             | US1_1(v216) -> (* Some *)                                      │
00:03:14 #2633 [Verbose] > │                 v216                                                         │
00:03:14 #2634 [Verbose] > │         v198.[int v201] <- v218                                              │
00:03:14 #2635 [Verbose] > │         let v219 : uint64 = v201 + 1UL                                       │
00:03:14 #2636 [Verbose] > │         v199.l0 <- v219                                                      │
00:03:14 #2637 [Verbose] > │         ()                                                                   │
00:03:14 #2638 [Verbose] > │     let v220 : uint64 = System.Convert.ToUInt64 v198.Length                  │
00:03:14 #2639 [Verbose] > │     let v221 : UH6 = UH6_1                                                   │
00:03:14 #2640 [Verbose] > │     let v222 : Mut3 = {l0 = 0UL; l1 = v221; l2 = 0} : Mut3                   │
00:03:14 #2641 [Verbose] > │     while method28(v220, v222) do                                            │
00:03:14 #2642 [Verbose] > │         let v224 : uint64 = v222.l0                                          │
00:03:14 #2643 [Verbose] > │         let struct (v225 : UH6, v226 : int32) = v222.l1, v222.l2             │
00:03:14 #2644 [Verbose] > │         let v227 : int64 = v198.[int v224]                                   │
00:03:14 #2645 [Verbose] > │         let v228 : int32 = v226 + 1                                          │
00:03:14 #2646 [Verbose] > │         let v229 : uint64 = v224 + 1UL                                       │
00:03:14 #2647 [Verbose] > │         let v230 : UH6 = UH6_0(v226, v227, v225)                             │
00:03:14 #2648 [Verbose] > │         v222.l0 <- v229                                                      │
00:03:14 #2649 [Verbose] > │         v222.l1 <- v230                                                      │
00:03:14 #2650 [Verbose] > │         v222.l2 <- v228                                                      │
00:03:14 #2651 [Verbose] > │         ()                                                                   │
00:03:14 #2652 [Verbose] > │     let struct (v231 : UH6, v232 : int32) = v222.l1, v222.l2                 │
00:03:14 #2653 [Verbose] > │     let v233 : UH6 = UH6_1                                                   │
00:03:14 #2654 [Verbose] > │     let v234 : UH6 = method29(v231, v233)                                    │
00:03:14 #2655 [Verbose] > │     let v235 : (struct (int32 * int64) []) = method30(v234)                  │
00:03:14 #2656 [Verbose] > │     let v236 : Map<int32, int64> = v235 |> Array.map (fun (struct (a, b)) -> │
00:03:14 #2657 [Verbose] > │ a, b) |> Map.ofArray                                                         │
00:03:14 #2658 [Verbose] > │     let v237 : (struct ((string []) * US0) []) = Array.zeroCreate<struct     │
00:03:14 #2659 [Verbose] > │ ((string []) * US0)> (System.Convert.ToInt32(v187))                          │
00:03:14 #2660 [Verbose] > │     let v238 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:03:14 #2661 [Verbose] > │     while method4(v187, v238) do                                             │
00:03:14 #2662 [Verbose] > │         let v240 : uint64 = v238.l0                                          │
00:03:14 #2663 [Verbose] > │         let struct (v241 : UH2, v242 : US0) = v174.[int v240]                │
00:03:14 #2664 [Verbose] > │         let v243 : UH7 = UH7_1                                               │
00:03:14 #2665 [Verbose] > │         let v244 : int32 = 0                                                 │
00:03:14 #2666 [Verbose] > │         let struct (v245 : UH7, v246 : int32) = method33(v241, v243, v244)   │
00:03:14 #2667 [Verbose] > │         let v247 : UH7 = UH7_1                                               │
00:03:14 #2668 [Verbose] > │         let v248 : UH7 = method34(v245, v247)                                │
00:03:14 #2669 [Verbose] > │         let v249 : UH2 = UH2_1                                               │
00:03:14 #2670 [Verbose] > │         let v250 : UH2 = method35(v236, v248, v249)                          │
00:03:14 #2671 [Verbose] > │         let v251 : (string []) = method9(v250)                               │
00:03:14 #2672 [Verbose] > │         v237.[int v240] <- struct (v251, v242)                               │
00:03:14 #2673 [Verbose] > │         let v252 : uint64 = v240 + 1UL                                       │
00:03:14 #2674 [Verbose] > │         v238.l0 <- v252                                                      │
00:03:14 #2675 [Verbose] > │         ()                                                                   │
00:03:14 #2676 [Verbose] > │     System.Console.WriteLine v2                                              │
00:03:14 #2677 [Verbose] > │     let v253 : uint64 = System.Convert.ToUInt64 v237.Length                  │
00:03:14 #2678 [Verbose] > │     let v254 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:03:14 #2679 [Verbose] > │     while method4(v253, v254) do                                             │
00:03:14 #2680 [Verbose] > │         let v256 : uint64 = v254.l0                                          │
00:03:14 #2681 [Verbose] > │         let struct (v257 : (string []), v258 : US0) = v237.[int v256]        │
00:03:14 #2682 [Verbose] > │         match v258 with                                                      │
00:03:14 #2683 [Verbose] > │         | US0_0 -> (* None *)                                                │
00:03:14 #2684 [Verbose] > │             let mutable result = None                                        │
00:03:14 #2685 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM                                 │
00:03:14 #2686 [Verbose] > │             ()                                                               │
00:03:14 #2687 [Verbose] > │             #endif                                                           │
00:03:14 #2688 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │
00:03:14 #2689 [Verbose] > │             ()                                                               │
00:03:14 #2690 [Verbose] > │             #endif                                                           │
00:03:14 #2691 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │
00:03:14 #2692 [Verbose] > │             System.Console.ResetColor ()                                     │
00:03:14 #2693 [Verbose] > │             ()                                                               │
00:03:14 #2694 [Verbose] > │             #endif                                                           │
00:03:14 #2695 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │
00:03:14 #2696 [Verbose] > │             System.Console.ResetColor ()                                     │
00:03:14 #2697 [Verbose] > │             ()                                                               │
00:03:14 #2698 [Verbose] > │             #endif                                                           │
00:03:14 #2699 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │
00:03:14 #2700 [Verbose] > │             System.Console.ResetColor ()                                     │
00:03:14 #2701 [Verbose] > │             ()                                                               │
00:03:14 #2702 [Verbose] > │             #endif                                                           │
00:03:14 #2703 [Verbose] > │             |> fun x -> result <- Some x                                     │
00:03:14 #2704 [Verbose] > │             result |> Option.get                                             │
00:03:14 #2705 [Verbose] > │             ()                                                               │
00:03:14 #2706 [Verbose] > │         | US0_1(v259) -> (* Some *)                                          │
00:03:14 #2707 [Verbose] > │             let mutable result = None                                        │
00:03:14 #2708 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM                                 │
00:03:14 #2709 [Verbose] > │             ()                                                               │
00:03:14 #2710 [Verbose] > │             #endif                                                           │
00:03:14 #2711 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │
00:03:14 #2712 [Verbose] > │             ()                                                               │
00:03:14 #2713 [Verbose] > │             #endif                                                           │
00:03:14 #2714 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │
00:03:14 #2715 [Verbose] > │             System.Console.ForegroundColor <- v259                           │
00:03:14 #2716 [Verbose] > │             ()                                                               │
00:03:14 #2717 [Verbose] > │             #endif                                                           │
00:03:14 #2718 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │
00:03:14 #2719 [Verbose] > │             System.Console.ForegroundColor <- v259                           │
00:03:14 #2720 [Verbose] > │             ()                                                               │
00:03:14 #2721 [Verbose] > │             #endif                                                           │
00:03:14 #2722 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │
00:03:14 #2723 [Verbose] > │             System.Console.ForegroundColor <- v259                           │
00:03:14 #2724 [Verbose] > │             ()                                                               │
00:03:14 #2725 [Verbose] > │             #endif                                                           │
00:03:14 #2726 [Verbose] > │             |> fun x -> result <- Some x                                     │
00:03:14 #2727 [Verbose] > │             result |> Option.get                                             │
00:03:14 #2728 [Verbose] > │             ()                                                               │
00:03:14 #2729 [Verbose] > │         let v260 : string = "\t| "                                           │
00:03:14 #2730 [Verbose] > │         let v261 : string = System.String.Join (v260, v257)                  │
00:03:14 #2731 [Verbose] > │         System.Console.WriteLine v261                                        │
00:03:14 #2732 [Verbose] > │         let mutable result = None                                            │
00:03:14 #2733 [Verbose] > │         #if FABLE_COMPILER_RUST && !WASM                                     │
00:03:14 #2734 [Verbose] > │         ()                                                                   │
00:03:14 #2735 [Verbose] > │         #endif                                                               │
00:03:14 #2736 [Verbose] > │         #if FABLE_COMPILER_RUST && WASM                                      │
00:03:14 #2737 [Verbose] > │         ()                                                                   │
00:03:14 #2738 [Verbose] > │         #endif                                                               │
00:03:14 #2739 [Verbose] > │         #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                 │
00:03:14 #2740 [Verbose] > │         System.Console.ResetColor ()                                         │
00:03:14 #2741 [Verbose] > │         ()                                                                   │
00:03:14 #2742 [Verbose] > │         #endif                                                               │
00:03:14 #2743 [Verbose] > │         #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                  │
00:03:14 #2744 [Verbose] > │         System.Console.ResetColor ()                                         │
00:03:14 #2745 [Verbose] > │         ()                                                                   │
00:03:14 #2746 [Verbose] > │         #endif                                                               │
00:03:14 #2747 [Verbose] > │         #if !FABLE_COMPILER_RUST && WASM                                     │
00:03:14 #2748 [Verbose] > │         System.Console.ResetColor ()                                         │
00:03:14 #2749 [Verbose] > │         ()                                                                   │
00:03:14 #2750 [Verbose] > │         #endif                                                               │
00:03:14 #2751 [Verbose] > │         |> fun x -> result <- Some x                                         │
00:03:14 #2752 [Verbose] > │         result |> Option.get                                                 │
00:03:14 #2753 [Verbose] > │         let v262 : uint64 = v256 + 1UL                                       │
00:03:14 #2754 [Verbose] > │         v254.l0 <- v262                                                      │
00:03:14 #2755 [Verbose] > │         ()                                                                   │
00:03:14 #2756 [Verbose] > │     let v263 : ((float []) []) = Array.zeroCreate<(float [])>                │
00:03:14 #2757 [Verbose] > │ (System.Convert.ToInt32(v99))                                                │
00:03:14 #2758 [Verbose] > │     let v264 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:03:14 #2759 [Verbose] > │     while method4(v99, v264) do                                              │
00:03:14 #2760 [Verbose] > │         let v266 : uint64 = v264.l0                                          │
00:03:14 #2761 [Verbose] > │         let struct (v267 : string, v268 : string, v269 : string, v270 :      │
00:03:14 #2762 [Verbose] > │ (int64 [])) = v24.[int v266]                                                 │
00:03:14 #2763 [Verbose] > │         let v271 : (int64 -> float) = float                                  │
00:03:14 #2764 [Verbose] > │         let v272 : uint64 = System.Convert.ToUInt64 v270.Length              │
00:03:14 #2765 [Verbose] > │         let v273 : (float []) = Array.zeroCreate<float>                      │
00:03:14 #2766 [Verbose] > │ (System.Convert.ToInt32(v272))                                               │
00:03:14 #2767 [Verbose] > │         let v274 : Mut0 = {l0 = 0UL} : Mut0                                  │
00:03:14 #2768 [Verbose] > │         while method4(v272, v274) do                                         │
00:03:14 #2769 [Verbose] > │             let v276 : uint64 = v274.l0                                      │
00:03:14 #2770 [Verbose] > │             let v277 : int64 = v270.[int v276]                               │
00:03:14 #2771 [Verbose] > │             let v278 : float = v271 v277                                     │
00:03:14 #2772 [Verbose] > │             v273.[int v276] <- v278                                          │
00:03:14 #2773 [Verbose] > │             let v279 : uint64 = v276 + 1UL                                   │
00:03:14 #2774 [Verbose] > │             v274.l0 <- v279                                                  │
00:03:14 #2775 [Verbose] > │             ()                                                               │
00:03:14 #2776 [Verbose] > │         v263.[int v266] <- v273                                              │
00:03:14 #2777 [Verbose] > │         let v280 : uint64 = v266 + 1UL                                       │
00:03:14 #2778 [Verbose] > │         v264.l0 <- v280                                                      │
00:03:14 #2779 [Verbose] > │         ()                                                                   │
00:03:14 #2780 [Verbose] > │     let v281 : ((float []) []) = v263 |> Array.transpose                     │
00:03:14 #2781 [Verbose] > │     let v282 : uint64 = System.Convert.ToUInt64 v281.Length                  │
00:03:14 #2782 [Verbose] > │     let v283 : (float []) = Array.zeroCreate<float>                          │
00:03:14 #2783 [Verbose] > │ (System.Convert.ToInt32(v282))                                               │
00:03:14 #2784 [Verbose] > │     let v284 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:03:14 #2785 [Verbose] > │     while method4(v282, v284) do                                             │
00:03:14 #2786 [Verbose] > │         let v286 : uint64 = v284.l0                                          │
00:03:14 #2787 [Verbose] > │         let v287 : (float []) = v281.[int v286]                              │
00:03:14 #2788 [Verbose] > │         let v288 : float = v287 |> Array.average                             │
00:03:14 #2789 [Verbose] > │         v283.[int v286] <- v288                                              │
00:03:14 #2790 [Verbose] > │         let v289 : uint64 = v286 + 1UL                                       │
00:03:14 #2791 [Verbose] > │         v284.l0 <- v289                                                      │
00:03:14 #2792 [Verbose] > │         ()                                                                   │
00:03:14 #2793 [Verbose] > │     let v290 : (float -> int64) = int64                                      │
00:03:14 #2794 [Verbose] > │     let v291 : uint64 = System.Convert.ToUInt64 v283.Length                  │
00:03:14 #2795 [Verbose] > │     let v292 : (int64 []) = Array.zeroCreate<int64>                          │
00:03:14 #2796 [Verbose] > │ (System.Convert.ToInt32(v291))                                               │
00:03:14 #2797 [Verbose] > │     let v293 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:03:14 #2798 [Verbose] > │     while method4(v291, v293) do                                             │
00:03:14 #2799 [Verbose] > │         let v295 : uint64 = v293.l0                                          │
00:03:14 #2800 [Verbose] > │         let v296 : float = v283.[int v295]                                   │
00:03:14 #2801 [Verbose] > │         let v297 : int64 = v290 v296                                         │
00:03:14 #2802 [Verbose] > │         v292.[int v295] <- v297                                              │
00:03:14 #2803 [Verbose] > │         let v298 : uint64 = v295 + 1UL                                       │
00:03:14 #2804 [Verbose] > │         v293.l0 <- v298                                                      │
00:03:14 #2805 [Verbose] > │         ()                                                                   │
00:03:14 #2806 [Verbose] > │     let v299 : uint64 = System.Convert.ToUInt64 v292.Length                  │
00:03:14 #2807 [Verbose] > │     let v300 : UH6 = UH6_1                                                   │
00:03:14 #2808 [Verbose] > │     let v301 : Mut3 = {l0 = 0UL; l1 = v300; l2 = 0} : Mut3                   │
00:03:14 #2809 [Verbose] > │     while method28(v299, v301) do                                            │
00:03:14 #2810 [Verbose] > │         let v303 : uint64 = v301.l0                                          │
00:03:14 #2811 [Verbose] > │         let struct (v304 : UH6, v305 : int32) = v301.l1, v301.l2             │
00:03:14 #2812 [Verbose] > │         let v306 : int64 = v292.[int v303]                                   │
00:03:14 #2813 [Verbose] > │         let v307 : int32 = v305 + 1                                          │
00:03:14 #2814 [Verbose] > │         let v308 : uint64 = v303 + 1UL                                       │
00:03:14 #2815 [Verbose] > │         let v309 : UH6 = UH6_0(v305, v306, v304)                             │
00:03:14 #2816 [Verbose] > │         v301.l0 <- v308                                                      │
00:03:14 #2817 [Verbose] > │         v301.l1 <- v309                                                      │
00:03:14 #2818 [Verbose] > │         v301.l2 <- v307                                                      │
00:03:14 #2819 [Verbose] > │         ()                                                                   │
00:03:14 #2820 [Verbose] > │     let struct (v310 : UH6, v311 : int32) = v301.l1, v301.l2                 │
00:03:14 #2821 [Verbose] > │     let v312 : UH6 = UH6_1                                                   │
00:03:14 #2822 [Verbose] > │     let v313 : UH6 = method29(v310, v312)                                    │
00:03:14 #2823 [Verbose] > │     let v314 : (struct (int32 * int64) []) = method36(v313)                  │
00:03:14 #2824 [Verbose] > │     System.Console.WriteLine v2                                              │
00:03:14 #2825 [Verbose] > │     let v315 : string = "Average Ranking  "                                  │
00:03:14 #2826 [Verbose] > │     System.Console.WriteLine v315                                            │
00:03:14 #2827 [Verbose] > │     let v316 : (struct (int32 * int64) -> int64) = closure6()                │
00:03:14 #2828 [Verbose] > │     let v317 : (struct (int32 * int64) []) = v314 |> Array.sortBy v316       │
00:03:14 #2829 [Verbose] > │     let v318 : uint64 = System.Convert.ToUInt64 v317.Length                  │
00:03:14 #2830 [Verbose] > │     let v319 : Mut0 = {l0 = 0UL} : Mut0                                      │
00:03:14 #2831 [Verbose] > │     while method4(v318, v319) do                                             │
00:03:14 #2832 [Verbose] > │         let v321 : uint64 = v319.l0                                          │
00:03:14 #2833 [Verbose] > │         let struct (v322 : int32, v323 : int64) = v317.[int v321]            │
00:03:14 #2834 [Verbose] > │         let v324 : string = $"Test case %d{v322 + 1}. Average Time: %A{v323} │
00:03:14 #2835 [Verbose] > │ "                                                                            │
00:03:14 #2836 [Verbose] > │         System.Console.WriteLine v324                                        │
00:03:14 #2837 [Verbose] > │         let v325 : uint64 = v321 + 1UL                                       │
00:03:14 #2838 [Verbose] > │         v319.l0 <- v325                                                      │
00:03:14 #2839 [Verbose] > │         ()                                                                   │
00:03:14 #2840 [Verbose] > │     ()                                                                       │
00:03:14 #2841 [Verbose] > │ method0()                                                                    │
00:03:14 #2842 [Verbose] > │                                                                              │
00:03:14 #2843 [Verbose] > │                                                                              │
00:03:14 #2844 [Verbose] > │                                                                              │
00:03:14 #2845 [Verbose] > │ Test: v0                                                                     │
00:03:14 #2846 [Verbose] > │                                                                              │
00:03:14 #2847 [Verbose] > │ Solution: "abc"                                                              │
00:03:14 #2848 [Verbose] > │ Test case 1. F. Time: 833                                                    │
00:03:14 #2849 [Verbose] > │ Test case 2. FA. Time: 1128                                                  │
00:03:14 #2850 [Verbose] > │                                                                              │
00:03:14 #2851 [Verbose] > │ Solution: "abcde"                                                            │
00:03:14 #2852 [Verbose] > │ Test case 1. F. Time: 1049                                                   │
00:03:14 #2853 [Verbose] > │ Test case 2. FA. Time: 1324                                                  │
00:03:14 #2854 [Verbose] > │                                                                              │
00:03:14 #2855 [Verbose] > │ Solution: "abcdefghi"                                                        │
00:03:14 #2856 [Verbose] > │ Test case 1. F. Time: 1740                                                   │
00:03:14 #2857 [Verbose] > │ Test case 2. FA. Time: 2034                                                  │
00:03:14 #2858 [Verbose] > │                                                                              │
00:03:14 #2859 [Verbose] > │ Solution: "abab"                                                             │
00:03:14 #2860 [Verbose] > │ Test case 1. F. Time: 952                                                    │
00:03:14 #2861 [Verbose] > │ Test case 2. FA. Time: 998                                                   │
00:03:14 #2862 [Verbose] > │                                                                              │
00:03:14 #2863 [Verbose] > │ Solution: "aa"                                                               │
00:03:14 #2864 [Verbose] > │ Test case 1. F. Time: 567                                                    │
00:03:14 #2865 [Verbose] > │ Test case 2. FA. Time: 572                                                   │
00:03:14 #2866 [Verbose] > │                                                                              │
00:03:14 #2867 [Verbose] > │ Solution: "z"                                                                │
00:03:14 #2868 [Verbose] > │ Test case 1. F. Time: 77                                                     │
00:03:14 #2869 [Verbose] > │ Test case 2. FA. Time: 75                                                    │
00:03:14 #2870 [Verbose] > │                                                                              │
00:03:14 #2871 [Verbose] > │ Input      	| Expected                                                         │
00:03:14 #2872 [Verbose] > │                                                                              │
00:03:14 #2873 [Verbose] > │ | Result                                                                     │
00:03:14 #2874 [Verbose] > │                                                                              │
00:03:14 #2875 [Verbose] > │ | Best                                                                       │
00:03:14 #2876 [Verbose] > │ ---        	| ---                                                              │
00:03:14 #2877 [Verbose] > │                                                                              │
00:03:14 #2878 [Verbose] > │ | ---                                                                        │
00:03:14 #2879 [Verbose] > │                                                                              │
00:03:14 #2880 [Verbose] > │ | ---                                                                        │
00:03:14 #2881 [Verbose] > │ "abc"      	| "bca cab abc"                                                    │
00:03:14 #2882 [Verbose] > │                                                                              │
00:03:14 #2883 [Verbose] > │ | "bca cab abc"                                                              │
00:03:14 #2884 [Verbose] > │                                                                              │
00:03:14 #2885 [Verbose] > │ | struct (1L, 833L)                                                          │
00:03:14 #2886 [Verbose] > │ "abcde"    	| "bcdea cdeab deabc eabcd abcde"                                  │
00:03:14 #2887 [Verbose] > │ | "bcdea cdeab deabc eabcd abcde"                                            │
00:03:14 #2888 [Verbose] > │ | struct (1L, 1049L)                                                         │
00:03:14 #2889 [Verbose] > │ "abcdefghi"	| "bcdefghia cdefghiab defghiabc efghiabcd fghiabcde ghiabcdef     │
00:03:14 #2890 [Verbose] > │ hiabcdefg iabcdefgh abcdefghi"	| "bcdefghia cdefghiab defghiabc efghiabcd      │
00:03:14 #2891 [Verbose] > │ fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi"	| struct (1L, 1740L)        │
00:03:14 #2892 [Verbose] > │ "abab"     	| "baba abab baba abab"                                            │
00:03:14 #2893 [Verbose] > │ | "baba abab baba abab"                                                      │
00:03:14 #2894 [Verbose] > │ | struct (1L, 952L)                                                          │
00:03:14 #2895 [Verbose] > │ "aa"       	| "aa aa"                                                          │
00:03:14 #2896 [Verbose] > │                                                                              │
00:03:14 #2897 [Verbose] > │ | "aa aa"                                                                    │
00:03:14 #2898 [Verbose] > │                                                                              │
00:03:14 #2899 [Verbose] > │ | struct (1L, 567L)                                                          │
00:03:14 #2900 [Verbose] > │ "z"        	| "z"                                                              │
00:03:14 #2901 [Verbose] > │                                                                              │
00:03:14 #2902 [Verbose] > │ | "z"                                                                        │
00:03:14 #2903 [Verbose] > │                                                                              │
00:03:14 #2904 [Verbose] > │ | struct (2L, 75L)                                                           │
00:03:14 #2905 [Verbose] > │                                                                              │
00:03:14 #2906 [Verbose] > │ Average Ranking                                                              │
00:03:14 #2907 [Verbose] > │ Test case 1. Average Time: 869L                                              │
00:03:14 #2908 [Verbose] > │ Test case 2. Average Time: 1021L                                             │
00:03:14 #2909 [Verbose] > │                                                                              │
00:03:14 #2910 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:14 #2911 [Verbose] >
00:03:14 #2912 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:14 #2913 [Verbose] > // // test
00:03:14 #2914 [Verbose] > // // rust=
00:03:14 #2915 [Verbose] > // // print_code=false
00:03:14 #2916 [Verbose] >
00:03:14 #2917 [Verbose] > // rotate_strings_tests ()
00:03:14 #2918 [Verbose] > Building /tmp/dotnet-repl/20240329-2219-4191-9103-9eea6cf96337/main.spi
00:03:14 #2919 [Verbose] >
00:03:14 #2920 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:14 #2921 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:14 #2922 [Verbose] > │ ## binary_search_tests                                                       │
00:03:14 #2923 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:14 #2924 [Verbose] >
00:03:14 #2925 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:14 #2926 [Verbose] > // // test
00:03:14 #2927 [Verbose] > // // timeout=90000
00:03:14 #2928 [Verbose] > // // print_code=true
00:03:14 #2929 [Verbose] >
00:03:14 #2930 [Verbose] > inl binary_search_semi_open_1 arr target left right =
00:03:14 #2931 [Verbose] >     inl rec body left right =
00:03:14 #2932 [Verbose] >         if left >= right
00:03:14 #2933 [Verbose] >         then None
00:03:14 #2934 [Verbose] >         else
00:03:14 #2935 [Verbose] >             inl mid = (left + right) / 2
00:03:14 #2936 [Verbose] >             inl item = index arr mid
00:03:14 #2937 [Verbose] >             if item = target
00:03:14 #2938 [Verbose] >             then Some mid
00:03:14 #2939 [Verbose] >             elif item < target
00:03:14 #2940 [Verbose] >             then loop (mid + 1) right
00:03:14 #2941 [Verbose] >             else loop left mid
00:03:14 #2942 [Verbose] >     and inl loop left right =
00:03:14 #2943 [Verbose] >         if var_is right |> not
00:03:14 #2944 [Verbose] >         then body left right
00:03:14 #2945 [Verbose] >         else
00:03:14 #2946 [Verbose] >             inl left = dyn left
00:03:14 #2947 [Verbose] >             join body left right
00:03:14 #2948 [Verbose] >     loop left right
00:03:14 #2949 [Verbose] >
00:03:14 #2950 [Verbose] > inl binary_search_closed_1 arr target left right =
00:03:14 #2951 [Verbose] >     inl rec body left right =
00:03:14 #2952 [Verbose] >         if left > right
00:03:14 #2953 [Verbose] >         then None
00:03:14 #2954 [Verbose] >         else
00:03:14 #2955 [Verbose] >             inl mid = (left + right) / 2
00:03:14 #2956 [Verbose] >             inl item = index arr mid
00:03:14 #2957 [Verbose] >             if item = target
00:03:14 #2958 [Verbose] >             then Some mid
00:03:14 #2959 [Verbose] >             elif item < target
00:03:14 #2960 [Verbose] >             then loop (mid + 1) right
00:03:14 #2961 [Verbose] >             else loop left (mid - 1)
00:03:14 #2962 [Verbose] >     and inl loop left right =
00:03:14 #2963 [Verbose] >         if var_is right |> not
00:03:14 #2964 [Verbose] >         then body left right
00:03:14 #2965 [Verbose] >         else
00:03:14 #2966 [Verbose] >             inl left = dyn left
00:03:14 #2967 [Verbose] >             join body left right
00:03:14 #2968 [Verbose] >     loop left right
00:03:14 #2969 [Verbose] >
00:03:14 #2970 [Verbose] > inl binary_search_semi_open_2 arr target left right =
00:03:14 #2971 [Verbose] >     let rec body left right =
00:03:14 #2972 [Verbose] >         if left >= right
00:03:14 #2973 [Verbose] >         then None
00:03:14 #2974 [Verbose] >         else
00:03:14 #2975 [Verbose] >             inl mid = (left + right) / 2
00:03:14 #2976 [Verbose] >             inl item = index arr mid
00:03:14 #2977 [Verbose] >             if item = target
00:03:14 #2978 [Verbose] >             then Some mid
00:03:14 #2979 [Verbose] >             elif item < target
00:03:14 #2980 [Verbose] >             then loop (mid + 1) right
00:03:14 #2981 [Verbose] >             else loop left mid
00:03:14 #2982 [Verbose] >     and inl loop left right = body left right
00:03:14 #2983 [Verbose] >     loop left right
00:03:14 #2984 [Verbose] >
00:03:14 #2985 [Verbose] > inl binary_search_closed_2 arr target left right =
00:03:14 #2986 [Verbose] >     let rec body left right =
00:03:14 #2987 [Verbose] >         if left > right
00:03:14 #2988 [Verbose] >         then None
00:03:14 #2989 [Verbose] >         else
00:03:14 #2990 [Verbose] >             inl mid = (left + right) / 2
00:03:14 #2991 [Verbose] >             inl item = index arr mid
00:03:14 #2992 [Verbose] >             if item = target
00:03:14 #2993 [Verbose] >             then Some mid
00:03:14 #2994 [Verbose] >             elif item < target
00:03:14 #2995 [Verbose] >             then loop (mid + 1) right
00:03:14 #2996 [Verbose] >             else loop left (mid - 1)
00:03:14 #2997 [Verbose] >     and inl loop left right = body left right
00:03:14 #2998 [Verbose] >     loop left right
00:03:14 #2999 [Verbose] >
00:03:14 #3000 [Verbose] > inl get_solutions () =
00:03:14 #3001 [Verbose] >     [[
00:03:14 #3002 [Verbose] >         "semi_open_1",
00:03:14 #3003 [Verbose] >         fun (arr, (target, len)) =>
00:03:14 #3004 [Verbose] >             binary_search_semi_open_1 arr target 0 len
00:03:14 #3005 [Verbose] >
00:03:14 #3006 [Verbose] >         "closed_1",
00:03:14 #3007 [Verbose] >         fun (arr, (target, len)) =>
00:03:14 #3008 [Verbose] >             binary_search_closed_1 arr target 0 (len - 1)
00:03:14 #3009 [Verbose] >
00:03:14 #3010 [Verbose] >         "semi_open_2",
00:03:14 #3011 [Verbose] >         fun (arr, (target, len)) =>
00:03:14 #3012 [Verbose] >             binary_search_semi_open_2 arr target 0 len
00:03:14 #3013 [Verbose] >
00:03:14 #3014 [Verbose] >         "closed_2",
00:03:14 #3015 [Verbose] >         fun (arr, (target, len)) =>
00:03:14 #3016 [Verbose] >             binary_search_closed_2 arr target 0 (len - 1)
00:03:14 #3017 [Verbose] >     ]]
00:03:14 #3018 [Verbose] >
00:03:14 #3019 [Verbose] > inl rec binary_search_tests () =
00:03:14 #3020 [Verbose] >     inl arr_with_len target len arr =
00:03:14 #3021 [Verbose] >         arr, (target, (len |> optionm'.default_with fun () => length arr))
00:03:14 #3022 [Verbose] >
00:03:14 #3023 [Verbose] >     inl test_cases = [[
00:03:14 #3024 [Verbose] >         (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 6 None), (Some 3i32)
00:03:14 #3025 [Verbose] >         (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 1 None), (Some 0i32)
00:03:14 #3026 [Verbose] >         (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 11 None), (Some 6i32)
00:03:14 #3027 [Verbose] >         (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 12 None), None
00:03:14 #3028 [Verbose] >         ((am'.init_series 1i32 100 1) |> arr_with_len 60 None), (Some 59)
00:03:14 #3029 [Verbose] >
00:03:14 #3030 [Verbose] >         (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 6 (Some 7)), (Some
00:03:14 #3031 [Verbose] > 3i32)
00:03:14 #3032 [Verbose] >         (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 1 (Some 7)), (Some
00:03:14 #3033 [Verbose] > 0i32)
00:03:14 #3034 [Verbose] >         (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 11 (Some 7)), (Some
00:03:14 #3035 [Verbose] > 6i32)
00:03:14 #3036 [Verbose] >         (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 12 (Some 7)), None
00:03:14 #3037 [Verbose] >         ((am'.init_series 1i32 100 1) |> arr_with_len 60 (Some 100)), (Some 59)
00:03:14 #3038 [Verbose] >     ]]
00:03:14 #3039 [Verbose] >
00:03:14 #3040 [Verbose] >     inl solutions = get_solutions ()
00:03:14 #3041 [Verbose] >
00:03:14 #3042 [Verbose] >     // inl is_fast () = true
00:03:14 #3043 [Verbose] >
00:03:14 #3044 [Verbose] >     inl count =
00:03:14 #3045 [Verbose] >         if is_fast ()
00:03:14 #3046 [Verbose] >         then 1000i32
00:03:14 #3047 [Verbose] >         else 8000000i32
00:03:14 #3048 [Verbose] >
00:03:14 #3049 [Verbose] >     run_all (nameof binary_search_tests) count solutions test_cases
00:03:14 #3050 [Verbose] >     |> sort_result_list
00:03:14 #3051 [Verbose] >
00:03:14 #3052 [Verbose] >
00:03:14 #3053 [Verbose] > let main () =
00:03:14 #3054 [Verbose] >     binary_search_tests ()
00:03:14 #3055 [Verbose] > Building /tmp/dotnet-repl/20240329-2219-4206-0646-0f9c9721ee7b/main.spi
00:03:24 #3056 [Verbose] >
00:03:24 #3057 [Verbose] > ╭─[ 9.86s - stdout ]───────────────────────────────────────────────────────────╮
00:03:24 #3058 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │
00:03:24 #3059 [Verbose] > │ and [<Struct>] US0 =                                                         │
00:03:24 #3060 [Verbose] > │     | US0_0                                                                  │
00:03:24 #3061 [Verbose] > │     | US0_1 of f1_0 : int32                                                  │
00:03:24 #3062 [Verbose] > │ and UH0 =                                                                    │
00:03:24 #3063 [Verbose] > │     | UH0_0 of (int32 []) * int32 * int32 * US0 * UH0                        │
00:03:24 #3064 [Verbose] > │     | UH0_1                                                                  │
00:03:24 #3065 [Verbose] > │ and Mut1 = {mutable l0 : uint64}                                             │
00:03:24 #3066 [Verbose] > │ and UH1 =                                                                    │
00:03:24 #3067 [Verbose] > │     | UH1_0 of int32 * string * (struct ((int32 []) * int32 * int32) -> US0) │
00:03:24 #3068 [Verbose] > │ * UH1                                                                        │
00:03:24 #3069 [Verbose] > │     | UH1_1                                                                  │
00:03:24 #3070 [Verbose] > │ and UH2 =                                                                    │
00:03:24 #3071 [Verbose] > │     | UH2_0 of string * UH2                                                  │
00:03:24 #3072 [Verbose] > │     | UH2_1                                                                  │
00:03:24 #3073 [Verbose] > │ and [<Struct>] US1 =                                                         │
00:03:24 #3074 [Verbose] > │     | US1_0                                                                  │
00:03:24 #3075 [Verbose] > │     | US1_1 of f1_0 : System.ConsoleColor                                    │
00:03:24 #3076 [Verbose] > │ and UH3 =                                                                    │
00:03:24 #3077 [Verbose] > │     | UH3_0 of int64 * int64 * UH3                                           │
00:03:24 #3078 [Verbose] > │     | UH3_1                                                                  │
00:03:24 #3079 [Verbose] > │ and Mut2 = {mutable l0 : uint64; mutable l1 : UH3; mutable l2 : int64}       │
00:03:24 #3080 [Verbose] > │ and UH4 =                                                                    │
00:03:24 #3081 [Verbose] > │     | UH4_0 of UH2 * US1 * UH4                                               │
00:03:24 #3082 [Verbose] > │     | UH4_1                                                                  │
00:03:24 #3083 [Verbose] > │ and [<Struct>] US2 =                                                         │
00:03:24 #3084 [Verbose] > │     | US2_0                                                                  │
00:03:24 #3085 [Verbose] > │     | US2_1 of f1_0 : int64                                                  │
00:03:24 #3086 [Verbose] > │ and UH5 =                                                                    │
00:03:24 #3087 [Verbose] > │     | UH5_0 of int32 * int64 * UH5                                           │
00:03:24 #3088 [Verbose] > │     | UH5_1                                                                  │
00:03:24 #3089 [Verbose] > │ and Mut3 = {mutable l0 : uint64; mutable l1 : UH5; mutable l2 : int32}       │
00:03:24 #3090 [Verbose] > │ and UH6 =                                                                    │
00:03:24 #3091 [Verbose] > │     | UH6_0 of int32 * string * UH6                                          │
00:03:24 #3092 [Verbose] > │     | UH6_1                                                                  │
00:03:24 #3093 [Verbose] > │ let rec method1 (v0 : (int32 [])) : (int32 []) =                             │
00:03:24 #3094 [Verbose] > │     v0                                                                       │
00:03:24 #3095 [Verbose] > │ and method2 (v0 : Mut0) : bool =                                             │
00:03:24 #3096 [Verbose] > │     let v1 : int32 = v0.l0                                                   │
00:03:24 #3097 [Verbose] > │     let v2 : bool = v1 < 100                                                 │
00:03:24 #3098 [Verbose] > │     v2                                                                       │
00:03:24 #3099 [Verbose] > │ and method4 (v0 : UH0, v1 : uint64) : uint64 =                               │
00:03:24 #3100 [Verbose] > │     match v0 with                                                            │
00:03:24 #3101 [Verbose] > │     | UH0_0(v2, v3, v4, v5, v6) -> (* Cons *)                                │
00:03:24 #3102 [Verbose] > │         let v7 : uint64 = v1 + 1UL                                           │
00:03:24 #3103 [Verbose] > │         method4(v6, v7)                                                      │
00:03:24 #3104 [Verbose] > │     | UH0_1 -> (* Nil *)                                                     │
00:03:24 #3105 [Verbose] > │         v1                                                                   │
00:03:24 #3106 [Verbose] > │ and method5 (v0 : (struct ((int32 []) * int32 * int32 * US0) []), v1 : UH0,  │
00:03:24 #3107 [Verbose] > │ v2 : uint64) : uint64 =                                                      │
00:03:24 #3108 [Verbose] > │     match v1 with                                                            │
00:03:24 #3109 [Verbose] > │     | UH0_0(v3, v4, v5, v6, v7) -> (* Cons *)                                │
00:03:24 #3110 [Verbose] > │         v0.[int v2] <- struct (v3, v4, v5, v6)                               │
00:03:24 #3111 [Verbose] > │         let v8 : uint64 = v2 + 1UL                                           │
00:03:24 #3112 [Verbose] > │         method5(v0, v7, v8)                                                  │
00:03:24 #3113 [Verbose] > │     | UH0_1 -> (* Nil *)                                                     │
00:03:24 #3114 [Verbose] > │         v2                                                                   │
00:03:24 #3115 [Verbose] > │ and method3 (v0 : UH0) : (struct ((int32 []) * int32 * int32 * US0) []) =    │
00:03:24 #3116 [Verbose] > │     let v1 : uint64 = 0UL                                                    │
00:03:24 #3117 [Verbose] > │     let v2 : uint64 = method4(v0, v1)                                        │
00:03:24 #3118 [Verbose] > │     let v3 : (struct ((int32 []) * int32 * int32 * US0) []) =                │
00:03:24 #3119 [Verbose] > │ Array.zeroCreate<struct ((int32 []) * int32 * int32 * US0)>                  │
00:03:24 #3120 [Verbose] > │ (System.Convert.ToInt32(v2))                                                 │
00:03:24 #3121 [Verbose] > │     let v4 : uint64 = 0UL                                                    │
00:03:24 #3122 [Verbose] > │     let v5 : uint64 = method5(v3, v0, v4)                                    │
00:03:24 #3123 [Verbose] > │     v3                                                                       │
00:03:24 #3124 [Verbose] > │ and method6 (v0 : uint64, v1 : Mut1) : bool =                                │
00:03:24 #3125 [Verbose] > │     let v2 : uint64 = v1.l0                                                  │
00:03:24 #3126 [Verbose] > │     let v3 : bool = v2 < v0                                                  │
00:03:24 #3127 [Verbose] > │     v3                                                                       │
00:03:24 #3128 [Verbose] > │ and method7 (v0 : (int32 []), v1 : int32, v2 : int32, v3 : int32) : US0 =    │
00:03:24 #3129 [Verbose] > │     let v4 : bool = v3 >= v2                                                 │
00:03:24 #3130 [Verbose] > │     if v4 then                                                               │
00:03:24 #3131 [Verbose] > │         US0_0                                                                │
00:03:24 #3132 [Verbose] > │     else                                                                     │
00:03:24 #3133 [Verbose] > │         let v6 : int32 = v3 + v2                                             │
00:03:24 #3134 [Verbose] > │         let v7 : int32 = v6 / 2                                              │
00:03:24 #3135 [Verbose] > │         let v8 : int32 = v0.[int v7]                                         │
00:03:24 #3136 [Verbose] > │         let v9 : bool = v8 = v1                                              │
00:03:24 #3137 [Verbose] > │         if v9 then                                                           │
00:03:24 #3138 [Verbose] > │             US0_1(v7)                                                        │
00:03:24 #3139 [Verbose] > │         else                                                                 │
00:03:24 #3140 [Verbose] > │             let v11 : bool = v8 < v1                                         │
00:03:24 #3141 [Verbose] > │             if v11 then                                                      │
00:03:24 #3142 [Verbose] > │                 let v12 : int32 = v7 + 1                                     │
00:03:24 #3143 [Verbose] > │                 method7(v0, v1, v2, v12)                                     │
00:03:24 #3144 [Verbose] > │             else                                                             │
00:03:24 #3145 [Verbose] > │                 method7(v0, v1, v7, v3)                                      │
00:03:24 #3146 [Verbose] > │ and closure1 () struct (v0 : (int32 []), v1 : int32, v2 : int32) : US0 =     │
00:03:24 #3147 [Verbose] > │     let v3 : int32 = 0                                                       │
00:03:24 #3148 [Verbose] > │     method7(v0, v1, v2, v3)                                                  │
00:03:24 #3149 [Verbose] > │ and method8 (v0 : (int32 []), v1 : int32, v2 : int32, v3 : int32) : US0 =    │
00:03:24 #3150 [Verbose] > │     let v4 : bool = v3 > v2                                                  │
00:03:24 #3151 [Verbose] > │     if v4 then                                                               │
00:03:24 #3152 [Verbose] > │         US0_0                                                                │
00:03:24 #3153 [Verbose] > │     else                                                                     │
00:03:24 #3154 [Verbose] > │         let v6 : int32 = v3 + v2                                             │
00:03:24 #3155 [Verbose] > │         let v7 : int32 = v6 / 2                                              │
00:03:24 #3156 [Verbose] > │         let v8 : int32 = v0.[int v7]                                         │
00:03:24 #3157 [Verbose] > │         let v9 : bool = v8 = v1                                              │
00:03:24 #3158 [Verbose] > │         if v9 then                                                           │
00:03:24 #3159 [Verbose] > │             US0_1(v7)                                                        │
00:03:24 #3160 [Verbose] > │         else                                                                 │
00:03:24 #3161 [Verbose] > │             let v11 : bool = v8 < v1                                         │
00:03:24 #3162 [Verbose] > │             if v11 then                                                      │
00:03:24 #3163 [Verbose] > │                 let v12 : int32 = v7 + 1                                     │
00:03:24 #3164 [Verbose] > │                 method8(v0, v1, v2, v12)                                     │
00:03:24 #3165 [Verbose] > │             else                                                             │
00:03:24 #3166 [Verbose] > │                 let v14 : int32 = v7 - 1                                     │
00:03:24 #3167 [Verbose] > │                 method8(v0, v1, v14, v3)                                     │
00:03:24 #3168 [Verbose] > │ and closure2 () struct (v0 : (int32 []), v1 : int32, v2 : int32) : US0 =     │
00:03:24 #3169 [Verbose] > │     let v3 : int32 = v2 - 1                                                  │
00:03:24 #3170 [Verbose] > │     let v4 : int32 = 0                                                       │
00:03:24 #3171 [Verbose] > │     method8(v0, v1, v3, v4)                                                  │
00:03:24 #3172 [Verbose] > │ and method9 (v0 : (int32 []), v1 : int32, v2 : int32, v3 : int32) : US0 =    │
00:03:24 #3173 [Verbose] > │     let v4 : bool = v2 >= v3                                                 │
00:03:24 #3174 [Verbose] > │     if v4 then                                                               │
00:03:24 #3175 [Verbose] > │         US0_0                                                                │
00:03:24 #3176 [Verbose] > │     else                                                                     │
00:03:24 #3177 [Verbose] > │         let v6 : int32 = v2 + v3                                             │
00:03:24 #3178 [Verbose] > │         let v7 : int32 = v6 / 2                                              │
00:03:24 #3179 [Verbose] > │         let v8 : int32 = v0.[int v7]                                         │
00:03:24 #3180 [Verbose] > │         let v9 : bool = v8 = v1                                              │
00:03:24 #3181 [Verbose] > │         if v9 then                                                           │
00:03:24 #3182 [Verbose] > │             US0_1(v7)                                                        │
00:03:24 #3183 [Verbose] > │         else                                                                 │
00:03:24 #3184 [Verbose] > │             let v11 : bool = v8 < v1                                         │
00:03:24 #3185 [Verbose] > │             if v11 then                                                      │
00:03:24 #3186 [Verbose] > │                 let v12 : int32 = v7 + 1                                     │
00:03:24 #3187 [Verbose] > │                 method9(v0, v1, v12, v3)                                     │
00:03:24 #3188 [Verbose] > │             else                                                             │
00:03:24 #3189 [Verbose] > │                 method9(v0, v1, v2, v7)                                      │
00:03:24 #3190 [Verbose] > │ and closure3 () struct (v0 : (int32 []), v1 : int32, v2 : int32) : US0 =     │
00:03:24 #3191 [Verbose] > │     let v3 : int32 = 0                                                       │
00:03:24 #3192 [Verbose] > │     method9(v0, v1, v3, v2)                                                  │
00:03:24 #3193 [Verbose] > │ and method10 (v0 : (int32 []), v1 : int32, v2 : int32, v3 : int32) : US0 =   │
00:03:24 #3194 [Verbose] > │     let v4 : bool = v2 > v3                                                  │
00:03:24 #3195 [Verbose] > │     if v4 then                                                               │
00:03:24 #3196 [Verbose] > │         US0_0                                                                │
00:03:24 #3197 [Verbose] > │     else                                                                     │
00:03:24 #3198 [Verbose] > │         let v6 : int32 = v2 + v3                                             │
00:03:24 #3199 [Verbose] > │         let v7 : int32 = v6 / 2                                              │
00:03:24 #3200 [Verbose] > │         let v8 : int32 = v0.[int v7]                                         │
00:03:24 #3201 [Verbose] > │         let v9 : bool = v8 = v1                                              │
00:03:24 #3202 [Verbose] > │         if v9 then                                                           │
00:03:24 #3203 [Verbose] > │             US0_1(v7)                                                        │
00:03:24 #3204 [Verbose] > │         else                                                                 │
00:03:24 #3205 [Verbose] > │             let v11 : bool = v8 < v1                                         │
00:03:24 #3206 [Verbose] > │             if v11 then                                                      │
00:03:24 #3207 [Verbose] > │                 let v12 : int32 = v7 + 1                                     │
00:03:24 #3208 [Verbose] > │                 method10(v0, v1, v12, v3)                                    │
00:03:24 #3209 [Verbose] > │             else                                                             │
00:03:24 #3210 [Verbose] > │                 let v14 : int32 = v7 - 1                                     │
00:03:24 #3211 [Verbose] > │                 method10(v0, v1, v2, v14)                                    │
00:03:24 #3212 [Verbose] > │ and closure4 () struct (v0 : (int32 []), v1 : int32, v2 : int32) : US0 =     │
00:03:24 #3213 [Verbose] > │     let v3 : int32 = v2 - 1                                                  │
00:03:24 #3214 [Verbose] > │     let v4 : int32 = 0                                                       │
00:03:24 #3215 [Verbose] > │     method10(v0, v1, v4, v3)                                                 │
00:03:24 #3216 [Verbose] > │ and method12 (v0 : UH1, v1 : uint64) : uint64 =                              │
00:03:24 #3217 [Verbose] > │     match v0 with                                                            │
00:03:24 #3218 [Verbose] > │     | UH1_0(v2, v3, v4, v5) -> (* Cons *)                                    │
00:03:24 #3219 [Verbose] > │         let v6 : uint64 = v1 + 1UL                                           │
00:03:24 #3220 [Verbose] > │         method12(v5, v6)                                                     │
00:03:24 #3221 [Verbose] > │     | UH1_1 -> (* Nil *)                                                     │
00:03:24 #3222 [Verbose] > │         v1                                                                   │
00:03:24 #3223 [Verbose] > │ and method13 (v0 : (struct (int32 * string * (struct ((int32 []) * int32 *   │
00:03:24 #3224 [Verbose] > │ int32) -> US0)) []), v1 : UH1, v2 : uint64) : uint64 =                       │
00:03:24 #3225 [Verbose] > │     match v1 with                                                            │
00:03:24 #3226 [Verbose] > │     | UH1_0(v3, v4, v5, v6) -> (* Cons *)                                    │
00:03:24 #3227 [Verbose] > │         v0.[int v2] <- struct (v3, v4, v5)                                   │
00:03:24 #3228 [Verbose] > │         let v7 : uint64 = v2 + 1UL                                           │
00:03:24 #3229 [Verbose] > │         method13(v0, v6, v7)                                                 │
00:03:24 #3230 [Verbose] > │     | UH1_1 -> (* Nil *)                                                     │
00:03:24 #3231 [Verbose] > │         v2                                                                   │
00:03:24 #3232 [Verbose] > │ and method11 (v0 : UH1) : (struct (int32 * string * (struct ((int32 []) *    │
00:03:24 #3233 [Verbose] > │ int32 * int32) -> US0)) []) =                                                │
00:03:24 #3234 [Verbose] > │     let v1 : uint64 = 0UL                                                    │
00:03:24 #3235 [Verbose] > │     let v2 : uint64 = method12(v0, v1)                                       │
00:03:24 #3236 [Verbose] > │     let v3 : (struct (int32 * string * (struct ((int32 []) * int32 * int32)  │
00:03:24 #3237 [Verbose] > │ -> US0)) []) = Array.zeroCreate<struct (int32 * string * (struct ((int32 []) │
00:03:24 #3238 [Verbose] > │ * int32 * int32) -> US0))> (System.Convert.ToInt32(v2))                      │
00:03:24 #3239 [Verbose] > │     let v4 : uint64 = 0UL                                                    │
00:03:24 #3240 [Verbose] > │     let v5 : uint64 = method13(v3, v0, v4)                                   │
00:03:24 #3241 [Verbose] > │     v3                                                                       │
00:03:24 #3242 [Verbose] > │ and method14 (v0 : Mut0) : bool =                                            │
00:03:24 #3243 [Verbose] > │     let v1 : int32 = v0.l0                                                   │
00:03:24 #3244 [Verbose] > │     let v2 : bool = v1 < 8000001                                             │
00:03:24 #3245 [Verbose] > │     v2                                                                       │
00:03:24 #3246 [Verbose] > │ and closure5 (v0 : (int32 []), v1 : int32, v2 : int32, v3 : (struct ((int32  │
00:03:24 #3247 [Verbose] > │ []) * int32 * int32) -> US0)) (v4 : int32) : US0 =                           │
00:03:24 #3248 [Verbose] > │     v3 struct (v0, v1, v2)                                                   │
00:03:24 #3249 [Verbose] > │ and method15 (v0 : US0, v1 : (US0 []), v2 : uint64) : bool =                 │
00:03:24 #3250 [Verbose] > │     let v3 : uint64 = System.Convert.ToUInt64 v1.Length                      │
00:03:24 #3251 [Verbose] > │     let v4 : bool = v2 < v3                                                  │
00:03:24 #3252 [Verbose] > │     if v4 then                                                               │
00:03:24 #3253 [Verbose] > │         let v5 : US0 = v1.[int v2]                                           │
00:03:24 #3254 [Verbose] > │         let v9 : bool =                                                      │
00:03:24 #3255 [Verbose] > │             match v0, v5 with                                                │
00:03:24 #3256 [Verbose] > │             | US0_0, US0_0 -> (* None *)                                     │
00:03:24 #3257 [Verbose] > │                 true                                                         │
00:03:24 #3258 [Verbose] > │             | US0_1(v6), US0_1(v7) -> (* Some *)                             │
00:03:24 #3259 [Verbose] > │                 let v8 : bool = v6 = v7                                      │
00:03:24 #3260 [Verbose] > │                 v8                                                           │
00:03:24 #3261 [Verbose] > │             | _ ->                                                           │
00:03:24 #3262 [Verbose] > │                 false                                                        │
00:03:24 #3263 [Verbose] > │         if v9 then                                                           │
00:03:24 #3264 [Verbose] > │             let v10 : uint64 = v2 + 1UL                                      │
00:03:24 #3265 [Verbose] > │             method15(v0, v1, v10)                                            │
00:03:24 #3266 [Verbose] > │         else                                                                 │
00:03:24 #3267 [Verbose] > │             false                                                            │
00:03:24 #3268 [Verbose] > │     else                                                                     │
00:03:24 #3269 [Verbose] > │         true                                                                 │
00:03:24 #3270 [Verbose] > │ and method16 (v0 : uint64, v1 : Mut2) : bool =                               │
00:03:24 #3271 [Verbose] > │     let v2 : uint64 = v1.l0                                                  │
00:03:24 #3272 [Verbose] > │     let v3 : bool = v2 < v0                                                  │
00:03:24 #3273 [Verbose] > │     v3                                                                       │
00:03:24 #3274 [Verbose] > │ and method17 (v0 : UH3, v1 : UH3) : UH3 =                                    │
00:03:24 #3275 [Verbose] > │     match v0 with                                                            │
00:03:24 #3276 [Verbose] > │     | UH3_0(v2, v3, v4) -> (* Cons *)                                        │
00:03:24 #3277 [Verbose] > │         let v5 : UH3 = UH3_0(v2, v3, v1)                                     │
00:03:24 #3278 [Verbose] > │         method17(v4, v5)                                                     │
00:03:24 #3279 [Verbose] > │     | UH3_1 -> (* Nil *)                                                     │
00:03:24 #3280 [Verbose] > │         v1                                                                   │
00:03:24 #3281 [Verbose] > │ and method19 (v0 : UH3, v1 : int32) : int32 =                                │
00:03:24 #3282 [Verbose] > │     match v0 with                                                            │
00:03:24 #3283 [Verbose] > │     | UH3_0(v2, v3, v4) -> (* Cons *)                                        │
00:03:24 #3284 [Verbose] > │         let v5 : int32 = v1 + 1                                              │
00:03:24 #3285 [Verbose] > │         method19(v4, v5)                                                     │
00:03:24 #3286 [Verbose] > │     | UH3_1 -> (* Nil *)                                                     │
00:03:24 #3287 [Verbose] > │         v1                                                                   │
00:03:24 #3288 [Verbose] > │ and method20 (v0 : (struct (int64 * int64) []), v1 : UH3, v2 : int32) :      │
00:03:24 #3289 [Verbose] > │ int32 =                                                                      │
00:03:24 #3290 [Verbose] > │     match v1 with                                                            │
00:03:24 #3291 [Verbose] > │     | UH3_0(v3, v4, v5) -> (* Cons *)                                        │
00:03:24 #3292 [Verbose] > │         v0.[int v2] <- struct (v3, v4)                                       │
00:03:24 #3293 [Verbose] > │         let v6 : int32 = v2 + 1                                              │
00:03:24 #3294 [Verbose] > │         method20(v0, v5, v6)                                                 │
00:03:24 #3295 [Verbose] > │     | UH3_1 -> (* Nil *)                                                     │
00:03:24 #3296 [Verbose] > │         v2                                                                   │
00:03:24 #3297 [Verbose] > │ and method18 (v0 : UH3) : (struct (int64 * int64) []) =                      │
00:03:24 #3298 [Verbose] > │     let v1 : int32 = 0                                                       │
00:03:24 #3299 [Verbose] > │     let v2 : int32 = method19(v0, v1)                                        │
00:03:24 #3300 [Verbose] > │     let v3 : (struct (int64 * int64) []) = Array.zeroCreate<struct (int64 *  │
00:03:24 #3301 [Verbose] > │ int64)> (v2)                                                                 │
00:03:24 #3302 [Verbose] > │     let v4 : int32 = 0                                                       │
00:03:24 #3303 [Verbose] > │     let v5 : int32 = method20(v3, v0, v4)                                    │
00:03:24 #3304 [Verbose] > │     v3                                                                       │
00:03:24 #3305 [Verbose] > │ and method21 (v0 : int32, v1 : Mut0) : bool =                                │
00:03:24 #3306 [Verbose] > │     let v2 : int32 = v1.l0                                                   │
00:03:24 #3307 [Verbose] > │     let v3 : bool = v2 < v0                                                  │
00:03:24 #3308 [Verbose] > │     v3                                                                       │
00:03:24 #3309 [Verbose] > │ and closure6 () struct (v0 : int64, v1 : int64) : int64 =                    │
00:03:24 #3310 [Verbose] > │     v1                                                                       │
00:03:24 #3311 [Verbose] > │ and method23 (v0 : UH4, v1 : uint64) : uint64 =                              │
00:03:24 #3312 [Verbose] > │     match v0 with                                                            │
00:03:24 #3313 [Verbose] > │     | UH4_0(v2, v3, v4) -> (* Cons *)                                        │
00:03:24 #3314 [Verbose] > │         let v5 : uint64 = v1 + 1UL                                           │
00:03:24 #3315 [Verbose] > │         method23(v4, v5)                                                     │
00:03:24 #3316 [Verbose] > │     | UH4_1 -> (* Nil *)                                                     │
00:03:24 #3317 [Verbose] > │         v1                                                                   │
00:03:24 #3318 [Verbose] > │ and method24 (v0 : (struct (UH2 * US1) []), v1 : UH4, v2 : uint64) : uint64  │
00:03:24 #3319 [Verbose] > │ =                                                                            │
00:03:24 #3320 [Verbose] > │     match v1 with                                                            │
00:03:24 #3321 [Verbose] > │     | UH4_0(v3, v4, v5) -> (* Cons *)                                        │
00:03:24 #3322 [Verbose] > │         v0.[int v2] <- struct (v3, v4)                                       │
00:03:24 #3323 [Verbose] > │         let v6 : uint64 = v2 + 1UL                                           │
00:03:24 #3324 [Verbose] > │         method24(v0, v5, v6)                                                 │
00:03:24 #3325 [Verbose] > │     | UH4_1 -> (* Nil *)                                                     │
00:03:24 #3326 [Verbose] > │         v2                                                                   │
00:03:24 #3327 [Verbose] > │ and method22 (v0 : UH4) : (struct (UH2 * US1) []) =                          │
00:03:24 #3328 [Verbose] > │     let v1 : uint64 = 0UL                                                    │
00:03:24 #3329 [Verbose] > │     let v2 : uint64 = method23(v0, v1)                                       │
00:03:24 #3330 [Verbose] > │     let v3 : (struct (UH2 * US1) []) = Array.zeroCreate<struct (UH2 * US1)>  │
00:03:24 #3331 [Verbose] > │ (System.Convert.ToInt32(v2))                                                 │
00:03:24 #3332 [Verbose] > │     let v4 : uint64 = 0UL                                                    │
00:03:24 #3333 [Verbose] > │     let v5 : uint64 = method24(v3, v0, v4)                                   │
00:03:24 #3334 [Verbose] > │     v3                                                                       │
00:03:24 #3335 [Verbose] > │ and method26 (v0 : UH2, v1 : uint64) : uint64 =                              │
00:03:24 #3336 [Verbose] > │     match v0 with                                                            │
00:03:24 #3337 [Verbose] > │     | UH2_0(v2, v3) -> (* Cons *)                                            │
00:03:24 #3338 [Verbose] > │         let v4 : uint64 = v1 + 1UL                                           │
00:03:24 #3339 [Verbose] > │         method26(v3, v4)                                                     │
00:03:24 #3340 [Verbose] > │     | UH2_1 -> (* Nil *)                                                     │
00:03:24 #3341 [Verbose] > │         v1                                                                   │
00:03:24 #3342 [Verbose] > │ and method27 (v0 : (string []), v1 : UH2, v2 : uint64) : uint64 =            │
00:03:24 #3343 [Verbose] > │     match v1 with                                                            │
00:03:24 #3344 [Verbose] > │     | UH2_0(v3, v4) -> (* Cons *)                                            │
00:03:24 #3345 [Verbose] > │         v0.[int v2] <- v3                                                    │
00:03:24 #3346 [Verbose] > │         let v5 : uint64 = v2 + 1UL                                           │
00:03:24 #3347 [Verbose] > │         method27(v0, v4, v5)                                                 │
00:03:24 #3348 [Verbose] > │     | UH2_1 -> (* Nil *)                                                     │
00:03:24 #3349 [Verbose] > │         v2                                                                   │
00:03:24 #3350 [Verbose] > │ and method25 (v0 : UH2) : (string []) =                                      │
00:03:24 #3351 [Verbose] > │     let v1 : uint64 = 0UL                                                    │
00:03:24 #3352 [Verbose] > │     let v2 : uint64 = method26(v0, v1)                                       │
00:03:24 #3353 [Verbose] > │     let v3 : (string []) = Array.zeroCreate<string>                          │
00:03:24 #3354 [Verbose] > │ (System.Convert.ToInt32(v2))                                                 │
00:03:24 #3355 [Verbose] > │     let v4 : uint64 = 0UL                                                    │
00:03:24 #3356 [Verbose] > │     let v5 : uint64 = method27(v3, v0, v4)                                   │
00:03:24 #3357 [Verbose] > │     v3                                                                       │
00:03:24 #3358 [Verbose] > │ and closure7 () (v0 : int64) : US2 =                                         │
00:03:24 #3359 [Verbose] > │     US2_1(v0)                                                                │
00:03:24 #3360 [Verbose] > │ and method28 (v0 : uint64, v1 : Mut3) : bool =                               │
00:03:24 #3361 [Verbose] > │     let v2 : uint64 = v1.l0                                                  │
00:03:24 #3362 [Verbose] > │     let v3 : bool = v2 < v0                                                  │
00:03:24 #3363 [Verbose] > │     v3                                                                       │
00:03:24 #3364 [Verbose] > │ and method29 (v0 : UH5, v1 : UH5) : UH5 =                                    │
00:03:24 #3365 [Verbose] > │     match v0 with                                                            │
00:03:24 #3366 [Verbose] > │     | UH5_0(v2, v3, v4) -> (* Cons *)                                        │
00:03:24 #3367 [Verbose] > │         let v5 : UH5 = UH5_0(v2, v3, v1)                                     │
00:03:24 #3368 [Verbose] > │         method29(v4, v5)                                                     │
00:03:24 #3369 [Verbose] > │     | UH5_1 -> (* Nil *)                                                     │
00:03:24 #3370 [Verbose] > │         v1                                                                   │
00:03:24 #3371 [Verbose] > │ and method31 (v0 : UH5, v1 : int32) : int32 =                                │
00:03:24 #3372 [Verbose] > │     match v0 with                                                            │
00:03:24 #3373 [Verbose] > │     | UH5_0(v2, v3, v4) -> (* Cons *)                                        │
00:03:24 #3374 [Verbose] > │         let v5 : int32 = v1 + 1                                              │
00:03:24 #3375 [Verbose] > │         method31(v4, v5)                                                     │
00:03:24 #3376 [Verbose] > │     | UH5_1 -> (* Nil *)                                                     │
00:03:24 #3377 [Verbose] > │         v1                                                                   │
00:03:24 #3378 [Verbose] > │ and method32 (v0 : (struct (int32 * int64) []), v1 : UH5, v2 : int32) :      │
00:03:24 #3379 [Verbose] > │ int32 =                                                                      │
00:03:24 #3380 [Verbose] > │     match v1 with                                                            │
00:03:24 #3381 [Verbose] > │     | UH5_0(v3, v4, v5) -> (* Cons *)                                        │
00:03:24 #3382 [Verbose] > │         v0.[int v2] <- struct (v3, v4)                                       │
00:03:24 #3383 [Verbose] > │         let v6 : int32 = v2 + 1                                              │
00:03:24 #3384 [Verbose] > │         method32(v0, v5, v6)                                                 │
00:03:24 #3385 [Verbose] > │     | UH5_1 -> (* Nil *)                                                     │
00:03:24 #3386 [Verbose] > │         v2                                                                   │
00:03:24 #3387 [Verbose] > │ and method30 (v0 : UH5) : (struct (int32 * int64) []) =                      │
00:03:24 #3388 [Verbose] > │     let v1 : int32 = 0                                                       │
00:03:24 #3389 [Verbose] > │     let v2 : int32 = method31(v0, v1)                                        │
00:03:24 #3390 [Verbose] > │     let v3 : (struct (int32 * int64) []) = Array.zeroCreate<struct (int32 *  │
00:03:24 #3391 [Verbose] > │ int64)> (v2)                                                                 │
00:03:24 #3392 [Verbose] > │     let v4 : int32 = 0                                                       │
00:03:24 #3393 [Verbose] > │     let v5 : int32 = method32(v3, v0, v4)                                    │
00:03:24 #3394 [Verbose] > │     v3                                                                       │
00:03:24 #3395 [Verbose] > │ and method33 (v0 : UH2, v1 : UH6, v2 : int32) : struct (UH6 * int32) =       │
00:03:24 #3396 [Verbose] > │     match v0 with                                                            │
00:03:24 #3397 [Verbose] > │     | UH2_0(v3, v4) -> (* Cons *)                                            │
00:03:24 #3398 [Verbose] > │         let v5 : int32 = v2 + 1                                              │
00:03:24 #3399 [Verbose] > │         let v6 : UH6 = UH6_0(v2, v3, v1)                                     │
00:03:24 #3400 [Verbose] > │         method33(v4, v6, v5)                                                 │
00:03:24 #3401 [Verbose] > │     | UH2_1 -> (* Nil *)                                                     │
00:03:24 #3402 [Verbose] > │         struct (v1, v2)                                                      │
00:03:24 #3403 [Verbose] > │ and method34 (v0 : UH6, v1 : UH6) : UH6 =                                    │
00:03:24 #3404 [Verbose] > │     match v0 with                                                            │
00:03:24 #3405 [Verbose] > │     | UH6_0(v2, v3, v4) -> (* Cons *)                                        │
00:03:24 #3406 [Verbose] > │         let v5 : UH6 = UH6_0(v2, v3, v1)                                     │
00:03:24 #3407 [Verbose] > │         method34(v4, v5)                                                     │
00:03:24 #3408 [Verbose] > │     | UH6_1 -> (* Nil *)                                                     │
00:03:24 #3409 [Verbose] > │         v1                                                                   │
00:03:24 #3410 [Verbose] > │ and method35 (v0 : Map<int32, int64>, v1 : UH6, v2 : UH2) : UH2 =            │
00:03:24 #3411 [Verbose] > │     match v1 with                                                            │
00:03:24 #3412 [Verbose] > │     | UH6_0(v3, v4, v5) -> (* Cons *)                                        │
00:03:24 #3413 [Verbose] > │         let v6 : UH2 = method35(v0, v5, v2)                                  │
00:03:24 #3414 [Verbose] > │         let v7 : int64 = v0.[v3]                                             │
00:03:24 #3415 [Verbose] > │         let v8 : int32 = int32 v7                                            │
00:03:24 #3416 [Verbose] > │         let v9 : string = v4.PadRight v8                                     │
00:03:24 #3417 [Verbose] > │         UH2_0(v9, v6)                                                        │
00:03:24 #3418 [Verbose] > │     | UH6_1 -> (* Nil *)                                                     │
00:03:24 #3419 [Verbose] > │         v2                                                                   │
00:03:24 #3420 [Verbose] > │ and method37 (v0 : UH2, v1 : int32) : int32 =                                │
00:03:24 #3421 [Verbose] > │     match v0 with                                                            │
00:03:24 #3422 [Verbose] > │     | UH2_0(v2, v3) -> (* Cons *)                                            │
00:03:24 #3423 [Verbose] > │         let v4 : int32 = v1 + 1                                              │
00:03:24 #3424 [Verbose] > │         method37(v3, v4)                                                     │
00:03:24 #3425 [Verbose] > │     | UH2_1 -> (* Nil *)                                                     │
00:03:24 #3426 [Verbose] > │         v1                                                                   │
00:03:24 #3427 [Verbose] > │ and method38 (v0 : (string []), v1 : UH2, v2 : int32) : int32 =              │
00:03:24 #3428 [Verbose] > │     match v1 with                                                            │
00:03:24 #3429 [Verbose] > │     | UH2_0(v3, v4) -> (* Cons *)                                            │
00:03:24 #3430 [Verbose] > │         v0.[int v2] <- v3                                                    │
00:03:24 #3431 [Verbose] > │         let v5 : int32 = v2 + 1                                              │
00:03:24 #3432 [Verbose] > │         method38(v0, v4, v5)                                                 │
00:03:24 #3433 [Verbose] > │     | UH2_1 -> (* Nil *)                                                     │
00:03:24 #3434 [Verbose] > │         v2                                                                   │
00:03:24 #3435 [Verbose] > │ and method36 (v0 : UH2) : (string []) =                                      │
00:03:24 #3436 [Verbose] > │     let v1 : int32 = 0                                                       │
00:03:24 #3437 [Verbose] > │     let v2 : int32 = method37(v0, v1)                                        │
00:03:24 #3438 [Verbose] > │     let v3 : (string []) = Array.zeroCreate<string> (v2)                     │
00:03:24 #3439 [Verbose] > │     let v4 : int32 = 0                                                       │
00:03:24 #3440 [Verbose] > │     let v5 : int32 = method38(v3, v0, v4)                                    │
00:03:24 #3441 [Verbose] > │     v3                                                                       │
00:03:24 #3442 [Verbose] > │ and method40 (v0 : UH5, v1 : uint64) : uint64 =                              │
00:03:24 #3443 [Verbose] > │     match v0 with                                                            │
00:03:24 #3444 [Verbose] > │     | UH5_0(v2, v3, v4) -> (* Cons *)                                        │
00:03:24 #3445 [Verbose] > │         let v5 : uint64 = v1 + 1UL                                           │
00:03:24 #3446 [Verbose] > │         method40(v4, v5)                                                     │
00:03:24 #3447 [Verbose] > │     | UH5_1 -> (* Nil *)                                                     │
00:03:24 #3448 [Verbose] > │         v1                                                                   │
00:03:24 #3449 [Verbose] > │ and method41 (v0 : (struct (int32 * int64) []), v1 : UH5, v2 : uint64) :     │
00:03:24 #3450 [Verbose] > │ uint64 =                                                                     │
00:03:24 #3451 [Verbose] > │     match v1 with                                                            │
00:03:24 #3452 [Verbose] > │     | UH5_0(v3, v4, v5) -> (* Cons *)                                        │
00:03:24 #3453 [Verbose] > │         v0.[int v2] <- struct (v3, v4)                                       │
00:03:24 #3454 [Verbose] > │         let v6 : uint64 = v2 + 1UL                                           │
00:03:24 #3455 [Verbose] > │         method41(v0, v5, v6)                                                 │
00:03:24 #3456 [Verbose] > │     | UH5_1 -> (* Nil *)                                                     │
00:03:24 #3457 [Verbose] > │         v2                                                                   │
00:03:24 #3458 [Verbose] > │ and method39 (v0 : UH5) : (struct (int32 * int64) []) =                      │
00:03:24 #3459 [Verbose] > │     let v1 : uint64 = 0UL                                                    │
00:03:24 #3460 [Verbose] > │     let v2 : uint64 = method40(v0, v1)                                       │
00:03:24 #3461 [Verbose] > │     let v3 : (struct (int32 * int64) []) = Array.zeroCreate<struct (int32 *  │
00:03:24 #3462 [Verbose] > │ int64)> (System.Convert.ToInt32(v2))                                         │
00:03:24 #3463 [Verbose] > │     let v4 : uint64 = 0UL                                                    │
00:03:24 #3464 [Verbose] > │     let v5 : uint64 = method41(v3, v0, v4)                                   │
00:03:24 #3465 [Verbose] > │     v3                                                                       │
00:03:24 #3466 [Verbose] > │ and closure8 () struct (v0 : int32, v1 : int64) : int64 =                    │
00:03:24 #3467 [Verbose] > │     v1                                                                       │
00:03:24 #3468 [Verbose] > │ and closure0 () () : unit =                                                  │
00:03:24 #3469 [Verbose] > │     let v0 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|]                           │
00:03:24 #3470 [Verbose] > │     let v1 : (int32 []) = method1(v0)                                        │
00:03:24 #3471 [Verbose] > │     let v2 : int32 = v1.Length                                               │
00:03:24 #3472 [Verbose] > │     let v3 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|]                           │
00:03:24 #3473 [Verbose] > │     let v4 : (int32 []) = method1(v3)                                        │
00:03:24 #3474 [Verbose] > │     let v5 : int32 = v4.Length                                               │
00:03:24 #3475 [Verbose] > │     let v6 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|]                           │
00:03:24 #3476 [Verbose] > │     let v7 : (int32 []) = method1(v6)                                        │
00:03:24 #3477 [Verbose] > │     let v8 : int32 = v7.Length                                               │
00:03:24 #3478 [Verbose] > │     let v9 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|]                           │
00:03:24 #3479 [Verbose] > │     let v10 : (int32 []) = method1(v9)                                       │
00:03:24 #3480 [Verbose] > │     let v11 : int32 = v10.Length                                             │
00:03:24 #3481 [Verbose] > │     let v12 : (int32 []) = Array.zeroCreate<int32> (100)                     │
00:03:24 #3482 [Verbose] > │     let v13 : Mut0 = {l0 = 0} : Mut0                                         │
00:03:24 #3483 [Verbose] > │     while method2(v13) do                                                    │
00:03:24 #3484 [Verbose] > │         let v15 : int32 = v13.l0                                             │
00:03:24 #3485 [Verbose] > │         let v16 : int32 = 1 + v15                                            │
00:03:24 #3486 [Verbose] > │         v12.[int v15] <- v16                                                 │
00:03:24 #3487 [Verbose] > │         let v17 : int32 = v15 + 1                                            │
00:03:24 #3488 [Verbose] > │         v13.l0 <- v17                                                        │
00:03:24 #3489 [Verbose] > │         ()                                                                   │
00:03:24 #3490 [Verbose] > │     let v18 : int32 = v12.Length                                             │
00:03:24 #3491 [Verbose] > │     let v19 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|]                          │
00:03:24 #3492 [Verbose] > │     let v20 : (int32 []) = method1(v19)                                      │
00:03:24 #3493 [Verbose] > │     let v21 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|]                          │
00:03:24 #3494 [Verbose] > │     let v22 : (int32 []) = method1(v21)                                      │
00:03:24 #3495 [Verbose] > │     let v23 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|]                          │
00:03:24 #3496 [Verbose] > │     let v24 : (int32 []) = method1(v23)                                      │
00:03:24 #3497 [Verbose] > │     let v25 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|]                          │
00:03:24 #3498 [Verbose] > │     let v26 : (int32 []) = method1(v25)                                      │
00:03:24 #3499 [Verbose] > │     let v27 : (int32 []) = Array.zeroCreate<int32> (100)                     │
00:03:24 #3500 [Verbose] > │     let v28 : Mut0 = {l0 = 0} : Mut0                                         │
00:03:24 #3501 [Verbose] > │     while method2(v28) do                                                    │
00:03:24 #3502 [Verbose] > │         let v30 : int32 = v28.l0                                             │
00:03:24 #3503 [Verbose] > │         let v31 : int32 = 1 + v30                                            │
00:03:24 #3504 [Verbose] > │         v27.[int v30] <- v31                                                 │
00:03:24 #3505 [Verbose] > │         let v32 : int32 = v30 + 1                                            │
00:03:24 #3506 [Verbose] > │         v28.l0 <- v32                                                        │
00:03:24 #3507 [Verbose] > │         ()                                                                   │
00:03:24 #3508 [Verbose] > │     let v33 : (unit -> unit) = closure0()                                    │
00:03:24 #3509 [Verbose] > │     let v34 : string = nameof v33                                            │
00:03:24 #3510 [Verbose] > │     let v35 : string = ""                                                    │
00:03:24 #3511 [Verbose] > │     System.Console.WriteLine v35                                             │
00:03:24 #3512 [Verbose] > │     System.Console.WriteLine v35                                             │
00:03:24 #3513 [Verbose] > │     let v36 : string = $"Test: {v34}"                                        │
00:03:24 #3514 [Verbose] > │     System.Console.WriteLine v36                                             │
00:03:24 #3515 [Verbose] > │     let v37 : int32 = 6                                                      │
00:03:24 #3516 [Verbose] > │     let v38 : int32 = 3                                                      │
00:03:24 #3517 [Verbose] > │     let v39 : US0 = US0_1(v38)                                               │
00:03:24 #3518 [Verbose] > │     let v40 : int32 = 1                                                      │
00:03:24 #3519 [Verbose] > │     let v41 : int32 = 0                                                      │
00:03:24 #3520 [Verbose] > │     let v42 : US0 = US0_1(v41)                                               │
00:03:24 #3521 [Verbose] > │     let v43 : int32 = 11                                                     │
00:03:24 #3522 [Verbose] > │     let v44 : int32 = 6                                                      │
00:03:24 #3523 [Verbose] > │     let v45 : US0 = US0_1(v44)                                               │
00:03:24 #3524 [Verbose] > │     let v46 : int32 = 12                                                     │
00:03:24 #3525 [Verbose] > │     let v47 : US0 = US0_0                                                    │
00:03:24 #3526 [Verbose] > │     let v48 : int32 = 60                                                     │
00:03:24 #3527 [Verbose] > │     let v49 : int32 = 59                                                     │
00:03:24 #3528 [Verbose] > │     let v50 : US0 = US0_1(v49)                                               │
00:03:24 #3529 [Verbose] > │     let v51 : int32 = 6                                                      │
00:03:24 #3530 [Verbose] > │     let v52 : int32 = 7                                                      │
00:03:24 #3531 [Verbose] > │     let v53 : int32 = 3                                                      │
00:03:24 #3532 [Verbose] > │     let v54 : US0 = US0_1(v53)                                               │
00:03:24 #3533 [Verbose] > │     let v55 : int32 = 1                                                      │
00:03:24 #3534 [Verbose] > │     let v56 : int32 = 7                                                      │
00:03:24 #3535 [Verbose] > │     let v57 : int32 = 0                                                      │
00:03:24 #3536 [Verbose] > │     let v58 : US0 = US0_1(v57)                                               │
00:03:24 #3537 [Verbose] > │     let v59 : int32 = 11                                                     │
00:03:24 #3538 [Verbose] > │     let v60 : int32 = 7                                                      │
00:03:24 #3539 [Verbose] > │     let v61 : int32 = 6                                                      │
00:03:24 #3540 [Verbose] > │     let v62 : US0 = US0_1(v61)                                               │
00:03:24 #3541 [Verbose] > │     let v63 : int32 = 12                                                     │
00:03:24 #3542 [Verbose] > │     let v64 : int32 = 7                                                      │
00:03:24 #3543 [Verbose] > │     let v65 : US0 = US0_0                                                    │
00:03:24 #3544 [Verbose] > │     let v66 : int32 = 60                                                     │
00:03:24 #3545 [Verbose] > │     let v67 : int32 = 100                                                    │
00:03:24 #3546 [Verbose] > │     let v68 : int32 = 59                                                     │
00:03:24 #3547 [Verbose] > │     let v69 : US0 = US0_1(v68)                                               │
00:03:24 #3548 [Verbose] > │     let v70 : UH0 = UH0_1                                                    │
00:03:24 #3549 [Verbose] > │     let v71 : UH0 = UH0_0(v27, v66, v67, v69, v70)                           │
00:03:24 #3550 [Verbose] > │     let v72 : UH0 = UH0_0(v26, v63, v64, v65, v71)                           │
00:03:24 #3551 [Verbose] > │     let v73 : UH0 = UH0_0(v24, v59, v60, v62, v72)                           │
00:03:24 #3552 [Verbose] > │     let v74 : UH0 = UH0_0(v22, v55, v56, v58, v73)                           │
00:03:24 #3553 [Verbose] > │     let v75 : UH0 = UH0_0(v20, v51, v52, v54, v74)                           │
00:03:24 #3554 [Verbose] > │     let v76 : UH0 = UH0_0(v12, v48, v18, v50, v75)                           │
00:03:24 #3555 [Verbose] > │     let v77 : UH0 = UH0_0(v10, v46, v11, v47, v76)                           │
00:03:24 #3556 [Verbose] > │     let v78 : UH0 = UH0_0(v7, v43, v8, v45, v77)                             │
00:03:24 #3557 [Verbose] > │     let v79 : UH0 = UH0_0(v4, v40, v5, v42, v78)                             │
00:03:24 #3558 [Verbose] > │     let v80 : UH0 = UH0_0(v1, v37, v2, v39, v79)                             │
00:03:24 #3559 [Verbose] > │     let v81 : (struct ((int32 []) * int32 * int32 * US0) []) = method3(v80)  │
00:03:24 #3560 [Verbose] > │     let v82 : uint64 = System.Convert.ToUInt64 v81.Length                    │
00:03:24 #3561 [Verbose] > │     let v83 : (struct (string * string * string * (int64 [])) []) =          │
00:03:24 #3562 [Verbose] > │ Array.zeroCreate<struct (string * string * string * (int64 []))>             │
00:03:24 #3563 [Verbose] > │ (System.Convert.ToInt32(v82))                                                │
00:03:24 #3564 [Verbose] > │     let v84 : Mut1 = {l0 = 0UL} : Mut1                                       │
00:03:24 #3565 [Verbose] > │     while method6(v82, v84) do                                               │
00:03:24 #3566 [Verbose] > │         let v86 : uint64 = v84.l0                                            │
00:03:24 #3567 [Verbose] > │         let struct (v87 : (int32 []), v88 : int32, v89 : int32, v90 : US0) = │
00:03:24 #3568 [Verbose] > │ v81.[int v86]                                                                │
00:03:24 #3569 [Verbose] > │         let v91 : string = $"%A{struct (v87, v88, v89)}"                     │
00:03:24 #3570 [Verbose] > │         System.Console.WriteLine v35                                         │
00:03:24 #3571 [Verbose] > │         let v92 : string = $"Solution: {v91}  "                              │
00:03:24 #3572 [Verbose] > │         System.Console.WriteLine v92                                         │
00:03:24 #3573 [Verbose] > │         let v93 : int32 = 0                                                  │
00:03:24 #3574 [Verbose] > │         let v94 : string = "semi_open_1"                                     │
00:03:24 #3575 [Verbose] > │         let v95 : (struct ((int32 []) * int32 * int32) -> US0) = closure1()  │
00:03:24 #3576 [Verbose] > │         let v96 : int32 = 1                                                  │
00:03:24 #3577 [Verbose] > │         let v97 : string = "closed_1"                                        │
00:03:24 #3578 [Verbose] > │         let v98 : (struct ((int32 []) * int32 * int32) -> US0) = closure2()  │
00:03:24 #3579 [Verbose] > │         let v99 : int32 = 2                                                  │
00:03:24 #3580 [Verbose] > │         let v100 : string = "semi_open_2"                                    │
00:03:24 #3581 [Verbose] > │         let v101 : (struct ((int32 []) * int32 * int32) -> US0) = closure3() │
00:03:24 #3582 [Verbose] > │         let v102 : int32 = 3                                                 │
00:03:24 #3583 [Verbose] > │         let v103 : string = "closed_2"                                       │
00:03:24 #3584 [Verbose] > │         let v104 : (struct ((int32 []) * int32 * int32) -> US0) = closure4() │
00:03:24 #3585 [Verbose] > │         let v105 : UH1 = UH1_1                                               │
00:03:24 #3586 [Verbose] > │         let v106 : UH1 = UH1_0(v102, v103, v104, v105)                       │
00:03:24 #3587 [Verbose] > │         let v107 : UH1 = UH1_0(v99, v100, v101, v106)                        │
00:03:24 #3588 [Verbose] > │         let v108 : UH1 = UH1_0(v96, v97, v98, v107)                          │
00:03:24 #3589 [Verbose] > │         let v109 : UH1 = UH1_0(v93, v94, v95, v108)                          │
00:03:24 #3590 [Verbose] > │         let v110 : (struct (int32 * string * (struct ((int32 []) * int32 *   │
00:03:24 #3591 [Verbose] > │ int32) -> US0)) []) = method11(v109)                                         │
00:03:24 #3592 [Verbose] > │         let v111 : uint64 = System.Convert.ToUInt64 v110.Length              │
00:03:24 #3593 [Verbose] > │         let v112 : (struct (US0 * int64) []) = Array.zeroCreate<struct (US0  │
00:03:24 #3594 [Verbose] > │ * int64)> (System.Convert.ToInt32(v111))                                     │
00:03:24 #3595 [Verbose] > │         let v113 : Mut1 = {l0 = 0UL} : Mut1                                  │
00:03:24 #3596 [Verbose] > │         while method6(v111, v113) do                                         │
00:03:24 #3597 [Verbose] > │             let v115 : uint64 = v113.l0                                      │
00:03:24 #3598 [Verbose] > │             let struct (v116 : int32, v117 : string, v118 : (struct ((int32  │
00:03:24 #3599 [Verbose] > │ []) * int32 * int32) -> US0)) = v110.[int v115]                              │
00:03:24 #3600 [Verbose] > │             let mutable result = None                                        │
00:03:24 #3601 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM                                 │
00:03:24 #3602 [Verbose] > │             ()                                                               │
00:03:24 #3603 [Verbose] > │             #endif                                                           │
00:03:24 #3604 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │
00:03:24 #3605 [Verbose] > │             ()                                                               │
00:03:24 #3606 [Verbose] > │             #endif                                                           │
00:03:24 #3607 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │
00:03:24 #3608 [Verbose] > │             System.GC.Collect ()                                             │
00:03:24 #3609 [Verbose] > │             ()                                                               │
00:03:24 #3610 [Verbose] > │             #endif                                                           │
00:03:24 #3611 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │
00:03:24 #3612 [Verbose] > │             System.GC.Collect ()                                             │
00:03:24 #3613 [Verbose] > │             ()                                                               │
00:03:24 #3614 [Verbose] > │             #endif                                                           │
00:03:24 #3615 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │
00:03:24 #3616 [Verbose] > │             System.GC.Collect ()                                             │
00:03:24 #3617 [Verbose] > │             ()                                                               │
00:03:24 #3618 [Verbose] > │             #endif                                                           │
00:03:24 #3619 [Verbose] > │             |> fun x -> result <- Some x                                     │
00:03:24 #3620 [Verbose] > │             result |> Option.get                                             │
00:03:24 #3621 [Verbose] > │             let v119 : (unit -> System.Diagnostics.Stopwatch) =              │
00:03:24 #3622 [Verbose] > │ System.Diagnostics.Stopwatch                                                 │
00:03:24 #3623 [Verbose] > │             let v120 : System.Diagnostics.Stopwatch = v119 ()                │
00:03:24 #3624 [Verbose] > │             v120.Start ()                                                    │
00:03:24 #3625 [Verbose] > │             let v121 : int64 = v120.ElapsedMilliseconds                      │
00:03:24 #3626 [Verbose] > │             let v122 : (int32 []) = Array.zeroCreate<int32> (8000001)        │
00:03:24 #3627 [Verbose] > │             let v123 : Mut0 = {l0 = 0} : Mut0                                │
00:03:24 #3628 [Verbose] > │             while method14(v123) do                                          │
00:03:24 #3629 [Verbose] > │                 let v125 : int32 = v123.l0                                   │
00:03:24 #3630 [Verbose] > │                 v122.[int v125] <- v125                                      │
00:03:24 #3631 [Verbose] > │                 let v126 : int32 = v125 + 1                                  │
00:03:24 #3632 [Verbose] > │                 v123.l0 <- v126                                              │
00:03:24 #3633 [Verbose] > │                 ()                                                           │
00:03:24 #3634 [Verbose] > │             let v127 : (int32 -> US0) = closure5(v87, v88, v89, v118)        │
00:03:24 #3635 [Verbose] > │             let v128 : (US0 []) = v122 |> Array.Parallel.map v127            │
00:03:24 #3636 [Verbose] > │             let v129 : int32 = v128.Length                                   │
00:03:24 #3637 [Verbose] > │             let v130 : int32 = v129 - 1                                      │
00:03:24 #3638 [Verbose] > │             let v131 : US0 = v128.[int v130]                                 │
00:03:24 #3639 [Verbose] > │             let v132 : int64 = v120.ElapsedMilliseconds                      │
00:03:24 #3640 [Verbose] > │             let v133 : int64 = v132 - v121                                   │
00:03:24 #3641 [Verbose] > │             let v134 : string = $"Test case {v116 + 1}. {v117}. Time: {v133} │
00:03:24 #3642 [Verbose] > │ "                                                                            │
00:03:24 #3643 [Verbose] > │             System.Console.WriteLine v134                                    │
00:03:24 #3644 [Verbose] > │             v112.[int v115] <- struct (v131, v133)                           │
00:03:24 #3645 [Verbose] > │             let v135 : uint64 = v115 + 1UL                                   │
00:03:24 #3646 [Verbose] > │             v113.l0 <- v135                                                  │
00:03:24 #3647 [Verbose] > │             ()                                                               │
00:03:24 #3648 [Verbose] > │         let v136 : uint64 = System.Convert.ToUInt64 v112.Length              │
00:03:24 #3649 [Verbose] > │         let v137 : (US0 []) = Array.zeroCreate<US0>                          │
00:03:24 #3650 [Verbose] > │ (System.Convert.ToInt32(v136))                                               │
00:03:24 #3651 [Verbose] > │         let v138 : Mut1 = {l0 = 0UL} : Mut1                                  │
00:03:24 #3652 [Verbose] > │         while method6(v136, v138) do                                         │
00:03:24 #3653 [Verbose] > │             let v140 : uint64 = v138.l0                                      │
00:03:24 #3654 [Verbose] > │             let struct (v141 : US0, v142 : int64) = v112.[int v140]          │
00:03:24 #3655 [Verbose] > │             v137.[int v140] <- v141                                          │
00:03:24 #3656 [Verbose] > │             let v143 : uint64 = v140 + 1UL                                   │
00:03:24 #3657 [Verbose] > │             v138.l0 <- v143                                                  │
00:03:24 #3658 [Verbose] > │             ()                                                               │
00:03:24 #3659 [Verbose] > │         let v144 : uint64 = System.Convert.ToUInt64 v137.Length              │
00:03:24 #3660 [Verbose] > │         let v145 : bool = v144 <= 1UL                                        │
00:03:24 #3661 [Verbose] > │         if v145 then                                                         │
00:03:24 #3662 [Verbose] > │             ()                                                               │
00:03:24 #3663 [Verbose] > │         else                                                                 │
00:03:24 #3664 [Verbose] > │             let v146 : US0 = v137.[int 0UL]                                  │
00:03:24 #3665 [Verbose] > │             let v147 : uint64 = 0UL                                          │
00:03:24 #3666 [Verbose] > │             let v148 : bool = method15(v146, v137, v147)                     │
00:03:24 #3667 [Verbose] > │             if v148 then                                                     │
00:03:24 #3668 [Verbose] > │                 ()                                                           │
00:03:24 #3669 [Verbose] > │             else                                                             │
00:03:24 #3670 [Verbose] > │                 let v149 : string = $"Challenge error: {v137}"               │
00:03:24 #3671 [Verbose] > │                 failwith<unit> v149                                          │
00:03:24 #3672 [Verbose] > │         let v150 : string = $"%A{v90}"                                       │
00:03:24 #3673 [Verbose] > │         let v151 : (US0 []) = Array.zeroCreate<US0>                          │
00:03:24 #3674 [Verbose] > │ (System.Convert.ToInt32(v136))                                               │
00:03:24 #3675 [Verbose] > │         let v152 : Mut1 = {l0 = 0UL} : Mut1                                  │
00:03:24 #3676 [Verbose] > │         while method6(v136, v152) do                                         │
00:03:24 #3677 [Verbose] > │             let v154 : uint64 = v152.l0                                      │
00:03:24 #3678 [Verbose] > │             let struct (v155 : US0, v156 : int64) = v112.[int v154]          │
00:03:24 #3679 [Verbose] > │             v151.[int v154] <- v155                                          │
00:03:24 #3680 [Verbose] > │             let v157 : uint64 = v154 + 1UL                                   │
00:03:24 #3681 [Verbose] > │             v152.l0 <- v157                                                  │
00:03:24 #3682 [Verbose] > │             ()                                                               │
00:03:24 #3683 [Verbose] > │         let v158 : US0 = v151.[int 0UL]                                      │
00:03:24 #3684 [Verbose] > │         let v159 : string = $"%A{v158}"                                      │
00:03:24 #3685 [Verbose] > │         let v160 : (int64 []) = Array.zeroCreate<int64>                      │
00:03:24 #3686 [Verbose] > │ (System.Convert.ToInt32(v136))                                               │
00:03:24 #3687 [Verbose] > │         let v161 : Mut1 = {l0 = 0UL} : Mut1                                  │
00:03:24 #3688 [Verbose] > │         while method6(v136, v161) do                                         │
00:03:24 #3689 [Verbose] > │             let v163 : uint64 = v161.l0                                      │
00:03:24 #3690 [Verbose] > │             let struct (v164 : US0, v165 : int64) = v112.[int v163]          │
00:03:24 #3691 [Verbose] > │             v160.[int v163] <- v165                                          │
00:03:24 #3692 [Verbose] > │             let v166 : uint64 = v163 + 1UL                                   │
00:03:24 #3693 [Verbose] > │             v161.l0 <- v166                                                  │
00:03:24 #3694 [Verbose] > │             ()                                                               │
00:03:24 #3695 [Verbose] > │         v83.[int v86] <- struct (v150, v91, v159, v160)                      │
00:03:24 #3696 [Verbose] > │         let v167 : uint64 = v86 + 1UL                                        │
00:03:24 #3697 [Verbose] > │         v84.l0 <- v167                                                       │
00:03:24 #3698 [Verbose] > │         ()                                                                   │
00:03:24 #3699 [Verbose] > │     let v168 : uint64 = System.Convert.ToUInt64 v83.Length                   │
00:03:24 #3700 [Verbose] > │     let v169 : (struct (UH2 * US1) []) = Array.zeroCreate<struct (UH2 *      │
00:03:24 #3701 [Verbose] > │ US1)> (System.Convert.ToInt32(v168))                                         │
00:03:24 #3702 [Verbose] > │     let v170 : Mut1 = {l0 = 0UL} : Mut1                                      │
00:03:24 #3703 [Verbose] > │     while method6(v168, v170) do                                             │
00:03:24 #3704 [Verbose] > │         let v172 : uint64 = v170.l0                                          │
00:03:24 #3705 [Verbose] > │         let struct (v173 : string, v174 : string, v175 : string, v176 :      │
00:03:24 #3706 [Verbose] > │ (int64 [])) = v83.[int v172]                                                 │
00:03:24 #3707 [Verbose] > │         let v177 : uint64 = System.Convert.ToUInt64 v176.Length              │
00:03:24 #3708 [Verbose] > │         let v178 : UH3 = UH3_1                                               │
00:03:24 #3709 [Verbose] > │         let v179 : Mut2 = {l0 = 0UL; l1 = v178; l2 = 0L} : Mut2              │
00:03:24 #3710 [Verbose] > │         while method16(v177, v179) do                                        │
00:03:24 #3711 [Verbose] > │             let v181 : uint64 = v179.l0                                      │
00:03:24 #3712 [Verbose] > │             let struct (v182 : UH3, v183 : int64) = v179.l1, v179.l2         │
00:03:24 #3713 [Verbose] > │             let v184 : int64 = v176.[int v181]                               │
00:03:24 #3714 [Verbose] > │             let v185 : int64 = v183 + 1L                                     │
00:03:24 #3715 [Verbose] > │             let v186 : uint64 = v181 + 1UL                                   │
00:03:24 #3716 [Verbose] > │             let v187 : UH3 = UH3_0(v183, v184, v182)                         │
00:03:24 #3717 [Verbose] > │             v179.l0 <- v186                                                  │
00:03:24 #3718 [Verbose] > │             v179.l1 <- v187                                                  │
00:03:24 #3719 [Verbose] > │             v179.l2 <- v185                                                  │
00:03:24 #3720 [Verbose] > │             ()                                                               │
00:03:24 #3721 [Verbose] > │         let struct (v188 : UH3, v189 : int64) = v179.l1, v179.l2             │
00:03:24 #3722 [Verbose] > │         let v190 : UH3 = UH3_1                                               │
00:03:24 #3723 [Verbose] > │         let v191 : UH3 = method17(v188, v190)                                │
00:03:24 #3724 [Verbose] > │         let v192 : (struct (int64 * int64) []) = method18(v191)              │
00:03:24 #3725 [Verbose] > │         let v193 : int32 = v192.Length                                       │
00:03:24 #3726 [Verbose] > │         let v194 : (struct (int64 * int64) []) = Array.zeroCreate<struct     │
00:03:24 #3727 [Verbose] > │ (int64 * int64)> (v193)                                                      │
00:03:24 #3728 [Verbose] > │         let v195 : Mut0 = {l0 = 0} : Mut0                                    │
00:03:24 #3729 [Verbose] > │         while method21(v193, v195) do                                        │
00:03:24 #3730 [Verbose] > │             let v197 : int32 = v195.l0                                       │
00:03:24 #3731 [Verbose] > │             let struct (v198 : int64, v199 : int64) = v192.[int v197]        │
00:03:24 #3732 [Verbose] > │             let v200 : int64 = v198 + 1L                                     │
00:03:24 #3733 [Verbose] > │             v194.[int v197] <- struct (v200, v199)                           │
00:03:24 #3734 [Verbose] > │             let v201 : int32 = v197 + 1                                      │
00:03:24 #3735 [Verbose] > │             v195.l0 <- v201                                                  │
00:03:24 #3736 [Verbose] > │             ()                                                               │
00:03:24 #3737 [Verbose] > │         let v202 : (struct (int64 * int64) -> int64) = closure6()            │
00:03:24 #3738 [Verbose] > │         let v203 : (struct (int64 * int64) []) = v194 |> Array.sortBy v202   │
00:03:24 #3739 [Verbose] > │         let struct (v204 : int64, v205 : int64) = v203.[int 0]               │
00:03:24 #3740 [Verbose] > │         let v206 : string = $"%A{struct (v204, v205)}"                       │
00:03:24 #3741 [Verbose] > │         let v207 : bool = v173 = v175                                        │
00:03:24 #3742 [Verbose] > │         let v212 : US1 =                                                     │
00:03:24 #3743 [Verbose] > │             if v207 then                                                     │
00:03:24 #3744 [Verbose] > │                 let v208 : System.ConsoleColor =                             │
00:03:24 #3745 [Verbose] > │ System.ConsoleColor.DarkGreen                                                │
00:03:24 #3746 [Verbose] > │                 US1_1(v208)                                                  │
00:03:24 #3747 [Verbose] > │             else                                                             │
00:03:24 #3748 [Verbose] > │                 let v210 : System.ConsoleColor = System.ConsoleColor.DarkRed │
00:03:24 #3749 [Verbose] > │                 US1_1(v210)                                                  │
00:03:24 #3750 [Verbose] > │         let v213 : UH2 = UH2_1                                               │
00:03:24 #3751 [Verbose] > │         let v214 : UH2 = UH2_0(v206, v213)                                   │
00:03:24 #3752 [Verbose] > │         let v215 : UH2 = UH2_0(v175, v214)                                   │
00:03:24 #3753 [Verbose] > │         let v216 : UH2 = UH2_0(v173, v215)                                   │
00:03:24 #3754 [Verbose] > │         let v217 : UH2 = UH2_0(v174, v216)                                   │
00:03:24 #3755 [Verbose] > │         v169.[int v172] <- struct (v217, v212)                               │
00:03:24 #3756 [Verbose] > │         let v218 : uint64 = v172 + 1UL                                       │
00:03:24 #3757 [Verbose] > │         v170.l0 <- v218                                                      │
00:03:24 #3758 [Verbose] > │         ()                                                                   │
00:03:24 #3759 [Verbose] > │     let v219 : string = "Input"                                              │
00:03:24 #3760 [Verbose] > │     let v220 : string = "Expected"                                           │
00:03:24 #3761 [Verbose] > │     let v221 : string = "Result"                                             │
00:03:24 #3762 [Verbose] > │     let v222 : string = "Best"                                               │
00:03:24 #3763 [Verbose] > │     let v223 : UH2 = UH2_1                                                   │
00:03:24 #3764 [Verbose] > │     let v224 : UH2 = UH2_0(v222, v223)                                       │
00:03:24 #3765 [Verbose] > │     let v225 : UH2 = UH2_0(v221, v224)                                       │
00:03:24 #3766 [Verbose] > │     let v226 : UH2 = UH2_0(v220, v225)                                       │
00:03:24 #3767 [Verbose] > │     let v227 : UH2 = UH2_0(v219, v226)                                       │
00:03:24 #3768 [Verbose] > │     let v228 : US1 = US1_0                                                   │
00:03:24 #3769 [Verbose] > │     let v229 : string = "---"                                                │
00:03:24 #3770 [Verbose] > │     let v230 : UH2 = UH2_1                                                   │
00:03:24 #3771 [Verbose] > │     let v231 : UH2 = UH2_0(v229, v230)                                       │
00:03:24 #3772 [Verbose] > │     let v232 : UH2 = UH2_0(v229, v231)                                       │
00:03:24 #3773 [Verbose] > │     let v233 : UH2 = UH2_0(v229, v232)                                       │
00:03:24 #3774 [Verbose] > │     let v234 : UH2 = UH2_0(v229, v233)                                       │
00:03:24 #3775 [Verbose] > │     let v235 : US1 = US1_0                                                   │
00:03:24 #3776 [Verbose] > │     let v236 : UH4 = UH4_1                                                   │
00:03:24 #3777 [Verbose] > │     let v237 : UH4 = UH4_0(v234, v235, v236)                                 │
00:03:24 #3778 [Verbose] > │     let v238 : UH4 = UH4_0(v227, v228, v237)                                 │
00:03:24 #3779 [Verbose] > │     let v239 : (struct (UH2 * US1) []) = method22(v238)                      │
00:03:24 #3780 [Verbose] > │     let v240 : uint64 = System.Convert.ToUInt64 v239.Length                  │
00:03:24 #3781 [Verbose] > │     let v241 : uint64 = System.Convert.ToUInt64 v169.Length                  │
00:03:24 #3782 [Verbose] > │     let v242 : uint64 = v240 + v241                                          │
00:03:24 #3783 [Verbose] > │     let v243 : (struct (UH2 * US1) []) = Array.zeroCreate<struct (UH2 *      │
00:03:24 #3784 [Verbose] > │ US1)> (System.Convert.ToInt32(v242))                                         │
00:03:24 #3785 [Verbose] > │     let v244 : Mut1 = {l0 = 0UL} : Mut1                                      │
00:03:24 #3786 [Verbose] > │     while method6(v242, v244) do                                             │
00:03:24 #3787 [Verbose] > │         let v246 : uint64 = v244.l0                                          │
00:03:24 #3788 [Verbose] > │         let v247 : bool = v246 < v240                                        │
00:03:24 #3789 [Verbose] > │         let struct (v253 : UH2, v254 : US1) =                                │
00:03:24 #3790 [Verbose] > │             if v247 then                                                     │
00:03:24 #3791 [Verbose] > │                 let struct (v248 : UH2, v249 : US1) = v239.[int v246]        │
00:03:24 #3792 [Verbose] > │                 struct (v248, v249)                                          │
00:03:24 #3793 [Verbose] > │             else                                                             │
00:03:24 #3794 [Verbose] > │                 let v250 : uint64 = v246 - v240                              │
00:03:24 #3795 [Verbose] > │                 let struct (v251 : UH2, v252 : US1) = v169.[int v250]        │
00:03:24 #3796 [Verbose] > │                 struct (v251, v252)                                          │
00:03:24 #3797 [Verbose] > │         v243.[int v246] <- struct (v253, v254)                               │
00:03:24 #3798 [Verbose] > │         let v255 : uint64 = v246 + 1UL                                       │
00:03:24 #3799 [Verbose] > │         v244.l0 <- v255                                                      │
00:03:24 #3800 [Verbose] > │         ()                                                                   │
00:03:24 #3801 [Verbose] > │     let v256 : uint64 = System.Convert.ToUInt64 v243.Length                  │
00:03:24 #3802 [Verbose] > │     let v257 : ((string []) []) = Array.zeroCreate<(string [])>              │
00:03:24 #3803 [Verbose] > │ (System.Convert.ToInt32(v256))                                               │
00:03:24 #3804 [Verbose] > │     let v258 : Mut1 = {l0 = 0UL} : Mut1                                      │
00:03:24 #3805 [Verbose] > │     while method6(v256, v258) do                                             │
00:03:24 #3806 [Verbose] > │         let v260 : uint64 = v258.l0                                          │
00:03:24 #3807 [Verbose] > │         let struct (v261 : UH2, v262 : US1) = v243.[int v260]                │
00:03:24 #3808 [Verbose] > │         let v263 : (string []) = method25(v261)                              │
00:03:24 #3809 [Verbose] > │         v257.[int v260] <- v263                                              │
00:03:24 #3810 [Verbose] > │         let v264 : uint64 = v260 + 1UL                                       │
00:03:24 #3811 [Verbose] > │         v258.l0 <- v264                                                      │
00:03:24 #3812 [Verbose] > │         ()                                                                   │
00:03:24 #3813 [Verbose] > │     let v265 : ((string []) []) = v257 |> Array.transpose                    │
00:03:24 #3814 [Verbose] > │     let v266 : uint64 = System.Convert.ToUInt64 v265.Length                  │
00:03:24 #3815 [Verbose] > │     let v267 : (int64 []) = Array.zeroCreate<int64>                          │
00:03:24 #3816 [Verbose] > │ (System.Convert.ToInt32(v266))                                               │
00:03:24 #3817 [Verbose] > │     let v268 : Mut1 = {l0 = 0UL} : Mut1                                      │
00:03:24 #3818 [Verbose] > │     while method6(v266, v268) do                                             │
00:03:24 #3819 [Verbose] > │         let v270 : uint64 = v268.l0                                          │
00:03:24 #3820 [Verbose] > │         let v271 : (string []) = v265.[int v270]                             │
00:03:24 #3821 [Verbose] > │         let v272 : uint64 = System.Convert.ToUInt64 v271.Length              │
00:03:24 #3822 [Verbose] > │         let v273 : (int64 []) = Array.zeroCreate<int64>                      │
00:03:24 #3823 [Verbose] > │ (System.Convert.ToInt32(v272))                                               │
00:03:24 #3824 [Verbose] > │         let v274 : Mut1 = {l0 = 0UL} : Mut1                                  │
00:03:24 #3825 [Verbose] > │         while method6(v272, v274) do                                         │
00:03:24 #3826 [Verbose] > │             let v276 : uint64 = v274.l0                                      │
00:03:24 #3827 [Verbose] > │             let v277 : string = v271.[int v276]                              │
00:03:24 #3828 [Verbose] > │             let v278 : int64 = System.Convert.ToInt64 v277.Length            │
00:03:24 #3829 [Verbose] > │             v273.[int v276] <- v278                                          │
00:03:24 #3830 [Verbose] > │             let v279 : uint64 = v276 + 1UL                                   │
00:03:24 #3831 [Verbose] > │             v274.l0 <- v279                                                  │
00:03:24 #3832 [Verbose] > │             ()                                                               │
00:03:24 #3833 [Verbose] > │         let v280 : (int64 []) = v273 |> Array.sortDescending                 │
00:03:24 #3834 [Verbose] > │         let v281 : int64 option = v280 |> Array.tryItem 0                    │
00:03:24 #3835 [Verbose] > │         let v282 : (int64 -> US2) = closure7()                               │
00:03:24 #3836 [Verbose] > │         let v283 : US2 = US2_0                                               │
00:03:24 #3837 [Verbose] > │         let v284 : US2 = v281 |> Option.map v282 |> Option.defaultValue v283 │
00:03:24 #3838 [Verbose] > │         let v287 : int64 =                                                   │
00:03:24 #3839 [Verbose] > │             match v284 with                                                  │
00:03:24 #3840 [Verbose] > │             | US2_0 -> (* None *)                                            │
00:03:24 #3841 [Verbose] > │                 0L                                                           │
00:03:24 #3842 [Verbose] > │             | US2_1(v285) -> (* Some *)                                      │
00:03:24 #3843 [Verbose] > │                 v285                                                         │
00:03:24 #3844 [Verbose] > │         v267.[int v270] <- v287                                              │
00:03:24 #3845 [Verbose] > │         let v288 : uint64 = v270 + 1UL                                       │
00:03:24 #3846 [Verbose] > │         v268.l0 <- v288                                                      │
00:03:24 #3847 [Verbose] > │         ()                                                                   │
00:03:24 #3848 [Verbose] > │     let v289 : uint64 = System.Convert.ToUInt64 v267.Length                  │
00:03:24 #3849 [Verbose] > │     let v290 : UH5 = UH5_1                                                   │
00:03:24 #3850 [Verbose] > │     let v291 : Mut3 = {l0 = 0UL; l1 = v290; l2 = 0} : Mut3                   │
00:03:24 #3851 [Verbose] > │     while method28(v289, v291) do                                            │
00:03:24 #3852 [Verbose] > │         let v293 : uint64 = v291.l0                                          │
00:03:24 #3853 [Verbose] > │         let struct (v294 : UH5, v295 : int32) = v291.l1, v291.l2             │
00:03:24 #3854 [Verbose] > │         let v296 : int64 = v267.[int v293]                                   │
00:03:24 #3855 [Verbose] > │         let v297 : int32 = v295 + 1                                          │
00:03:24 #3856 [Verbose] > │         let v298 : uint64 = v293 + 1UL                                       │
00:03:24 #3857 [Verbose] > │         let v299 : UH5 = UH5_0(v295, v296, v294)                             │
00:03:24 #3858 [Verbose] > │         v291.l0 <- v298                                                      │
00:03:24 #3859 [Verbose] > │         v291.l1 <- v299                                                      │
00:03:24 #3860 [Verbose] > │         v291.l2 <- v297                                                      │
00:03:24 #3861 [Verbose] > │         ()                                                                   │
00:03:24 #3862 [Verbose] > │     let struct (v300 : UH5, v301 : int32) = v291.l1, v291.l2                 │
00:03:24 #3863 [Verbose] > │     let v302 : UH5 = UH5_1                                                   │
00:03:24 #3864 [Verbose] > │     let v303 : UH5 = method29(v300, v302)                                    │
00:03:24 #3865 [Verbose] > │     let v304 : (struct (int32 * int64) []) = method30(v303)                  │
00:03:24 #3866 [Verbose] > │     let v305 : Map<int32, int64> = v304 |> Array.map (fun (struct (a, b)) -> │
00:03:24 #3867 [Verbose] > │ a, b) |> Map.ofArray                                                         │
00:03:24 #3868 [Verbose] > │     let v306 : (struct ((string []) * US1) []) = Array.zeroCreate<struct     │
00:03:24 #3869 [Verbose] > │ ((string []) * US1)> (System.Convert.ToInt32(v256))                          │
00:03:24 #3870 [Verbose] > │     let v307 : Mut1 = {l0 = 0UL} : Mut1                                      │
00:03:24 #3871 [Verbose] > │     while method6(v256, v307) do                                             │
00:03:24 #3872 [Verbose] > │         let v309 : uint64 = v307.l0                                          │
00:03:24 #3873 [Verbose] > │         let struct (v310 : UH2, v311 : US1) = v243.[int v309]                │
00:03:24 #3874 [Verbose] > │         let v312 : UH6 = UH6_1                                               │
00:03:24 #3875 [Verbose] > │         let v313 : int32 = 0                                                 │
00:03:24 #3876 [Verbose] > │         let struct (v314 : UH6, v315 : int32) = method33(v310, v312, v313)   │
00:03:24 #3877 [Verbose] > │         let v316 : UH6 = UH6_1                                               │
00:03:24 #3878 [Verbose] > │         let v317 : UH6 = method34(v314, v316)                                │
00:03:24 #3879 [Verbose] > │         let v318 : UH2 = UH2_1                                               │
00:03:24 #3880 [Verbose] > │         let v319 : UH2 = method35(v305, v317, v318)                          │
00:03:24 #3881 [Verbose] > │         let v320 : (string []) = method36(v319)                              │
00:03:24 #3882 [Verbose] > │         v306.[int v309] <- struct (v320, v311)                               │
00:03:24 #3883 [Verbose] > │         let v321 : uint64 = v309 + 1UL                                       │
00:03:24 #3884 [Verbose] > │         v307.l0 <- v321                                                      │
00:03:24 #3885 [Verbose] > │         ()                                                                   │
00:03:24 #3886 [Verbose] > │     System.Console.WriteLine v35                                             │
00:03:24 #3887 [Verbose] > │     let v322 : uint64 = System.Convert.ToUInt64 v306.Length                  │
00:03:24 #3888 [Verbose] > │     let v323 : Mut1 = {l0 = 0UL} : Mut1                                      │
00:03:24 #3889 [Verbose] > │     while method6(v322, v323) do                                             │
00:03:24 #3890 [Verbose] > │         let v325 : uint64 = v323.l0                                          │
00:03:24 #3891 [Verbose] > │         let struct (v326 : (string []), v327 : US1) = v306.[int v325]        │
00:03:24 #3892 [Verbose] > │         match v327 with                                                      │
00:03:24 #3893 [Verbose] > │         | US1_0 -> (* None *)                                                │
00:03:24 #3894 [Verbose] > │             let mutable result = None                                        │
00:03:24 #3895 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM                                 │
00:03:24 #3896 [Verbose] > │             ()                                                               │
00:03:24 #3897 [Verbose] > │             #endif                                                           │
00:03:24 #3898 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │
00:03:24 #3899 [Verbose] > │             ()                                                               │
00:03:24 #3900 [Verbose] > │             #endif                                                           │
00:03:24 #3901 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │
00:03:24 #3902 [Verbose] > │             System.Console.ResetColor ()                                     │
00:03:24 #3903 [Verbose] > │             ()                                                               │
00:03:24 #3904 [Verbose] > │             #endif                                                           │
00:03:24 #3905 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │
00:03:24 #3906 [Verbose] > │             System.Console.ResetColor ()                                     │
00:03:24 #3907 [Verbose] > │             ()                                                               │
00:03:24 #3908 [Verbose] > │             #endif                                                           │
00:03:24 #3909 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │
00:03:24 #3910 [Verbose] > │             System.Console.ResetColor ()                                     │
00:03:24 #3911 [Verbose] > │             ()                                                               │
00:03:24 #3912 [Verbose] > │             #endif                                                           │
00:03:24 #3913 [Verbose] > │             |> fun x -> result <- Some x                                     │
00:03:24 #3914 [Verbose] > │             result |> Option.get                                             │
00:03:24 #3915 [Verbose] > │             ()                                                               │
00:03:24 #3916 [Verbose] > │         | US1_1(v328) -> (* Some *)                                          │
00:03:24 #3917 [Verbose] > │             let mutable result = None                                        │
00:03:24 #3918 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM                                 │
00:03:24 #3919 [Verbose] > │             ()                                                               │
00:03:24 #3920 [Verbose] > │             #endif                                                           │
00:03:24 #3921 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │
00:03:24 #3922 [Verbose] > │             ()                                                               │
00:03:24 #3923 [Verbose] > │             #endif                                                           │
00:03:24 #3924 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │
00:03:24 #3925 [Verbose] > │             System.Console.ForegroundColor <- v328                           │
00:03:24 #3926 [Verbose] > │             ()                                                               │
00:03:24 #3927 [Verbose] > │             #endif                                                           │
00:03:24 #3928 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │
00:03:24 #3929 [Verbose] > │             System.Console.ForegroundColor <- v328                           │
00:03:24 #3930 [Verbose] > │             ()                                                               │
00:03:24 #3931 [Verbose] > │             #endif                                                           │
00:03:24 #3932 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │
00:03:24 #3933 [Verbose] > │             System.Console.ForegroundColor <- v328                           │
00:03:24 #3934 [Verbose] > │             ()                                                               │
00:03:24 #3935 [Verbose] > │             #endif                                                           │
00:03:24 #3936 [Verbose] > │             |> fun x -> result <- Some x                                     │
00:03:24 #3937 [Verbose] > │             result |> Option.get                                             │
00:03:24 #3938 [Verbose] > │             ()                                                               │
00:03:24 #3939 [Verbose] > │         let v329 : string = "\t| "                                           │
00:03:24 #3940 [Verbose] > │         let v330 : string = System.String.Join (v329, v326)                  │
00:03:24 #3941 [Verbose] > │         System.Console.WriteLine v330                                        │
00:03:24 #3942 [Verbose] > │         let mutable result = None                                            │
00:03:24 #3943 [Verbose] > │         #if FABLE_COMPILER_RUST && !WASM                                     │
00:03:24 #3944 [Verbose] > │         ()                                                                   │
00:03:24 #3945 [Verbose] > │         #endif                                                               │
00:03:24 #3946 [Verbose] > │         #if FABLE_COMPILER_RUST && WASM                                      │
00:03:24 #3947 [Verbose] > │         ()                                                                   │
00:03:24 #3948 [Verbose] > │         #endif                                                               │
00:03:24 #3949 [Verbose] > │         #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                 │
00:03:24 #3950 [Verbose] > │         System.Console.ResetColor ()                                         │
00:03:24 #3951 [Verbose] > │         ()                                                                   │
00:03:24 #3952 [Verbose] > │         #endif                                                               │
00:03:24 #3953 [Verbose] > │         #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                  │
00:03:24 #3954 [Verbose] > │         System.Console.ResetColor ()                                         │
00:03:24 #3955 [Verbose] > │         ()                                                                   │
00:03:24 #3956 [Verbose] > │         #endif                                                               │
00:03:24 #3957 [Verbose] > │         #if !FABLE_COMPILER_RUST && WASM                                     │
00:03:24 #3958 [Verbose] > │         System.Console.ResetColor ()                                         │
00:03:24 #3959 [Verbose] > │         ()                                                                   │
00:03:24 #3960 [Verbose] > │         #endif                                                               │
00:03:24 #3961 [Verbose] > │         |> fun x -> result <- Some x                                         │
00:03:24 #3962 [Verbose] > │         result |> Option.get                                                 │
00:03:24 #3963 [Verbose] > │         let v331 : uint64 = v325 + 1UL                                       │
00:03:24 #3964 [Verbose] > │         v323.l0 <- v331                                                      │
00:03:24 #3965 [Verbose] > │         ()                                                                   │
00:03:24 #3966 [Verbose] > │     let v332 : ((float []) []) = Array.zeroCreate<(float [])>                │
00:03:24 #3967 [Verbose] > │ (System.Convert.ToInt32(v168))                                               │
00:03:24 #3968 [Verbose] > │     let v333 : Mut1 = {l0 = 0UL} : Mut1                                      │
00:03:24 #3969 [Verbose] > │     while method6(v168, v333) do                                             │
00:03:24 #3970 [Verbose] > │         let v335 : uint64 = v333.l0                                          │
00:03:24 #3971 [Verbose] > │         let struct (v336 : string, v337 : string, v338 : string, v339 :      │
00:03:24 #3972 [Verbose] > │ (int64 [])) = v83.[int v335]                                                 │
00:03:24 #3973 [Verbose] > │         let v340 : (int64 -> float) = float                                  │
00:03:24 #3974 [Verbose] > │         let v341 : uint64 = System.Convert.ToUInt64 v339.Length              │
00:03:24 #3975 [Verbose] > │         let v342 : (float []) = Array.zeroCreate<float>                      │
00:03:24 #3976 [Verbose] > │ (System.Convert.ToInt32(v341))                                               │
00:03:24 #3977 [Verbose] > │         let v343 : Mut1 = {l0 = 0UL} : Mut1                                  │
00:03:24 #3978 [Verbose] > │         while method6(v341, v343) do                                         │
00:03:24 #3979 [Verbose] > │             let v345 : uint64 = v343.l0                                      │
00:03:24 #3980 [Verbose] > │             let v346 : int64 = v339.[int v345]                               │
00:03:24 #3981 [Verbose] > │             let v347 : float = v340 v346                                     │
00:03:24 #3982 [Verbose] > │             v342.[int v345] <- v347                                          │
00:03:24 #3983 [Verbose] > │             let v348 : uint64 = v345 + 1UL                                   │
00:03:24 #3984 [Verbose] > │             v343.l0 <- v348                                                  │
00:03:24 #3985 [Verbose] > │             ()                                                               │
00:03:24 #3986 [Verbose] > │         v332.[int v335] <- v342                                              │
00:03:24 #3987 [Verbose] > │         let v349 : uint64 = v335 + 1UL                                       │
00:03:24 #3988 [Verbose] > │         v333.l0 <- v349                                                      │
00:03:24 #3989 [Verbose] > │         ()                                                                   │
00:03:24 #3990 [Verbose] > │     let v350 : ((float []) []) = v332 |> Array.transpose                     │
00:03:24 #3991 [Verbose] > │     let v351 : uint64 = System.Convert.ToUInt64 v350.Length                  │
00:03:24 #3992 [Verbose] > │     let v352 : (float []) = Array.zeroCreate<float>                          │
00:03:24 #3993 [Verbose] > │ (System.Convert.ToInt32(v351))                                               │
00:03:24 #3994 [Verbose] > │     let v353 : Mut1 = {l0 = 0UL} : Mut1                                      │
00:03:24 #3995 [Verbose] > │     while method6(v351, v353) do                                             │
00:03:24 #3996 [Verbose] > │         let v355 : uint64 = v353.l0                                          │
00:03:24 #3997 [Verbose] > │         let v356 : (float []) = v350.[int v355]                              │
00:03:24 #3998 [Verbose] > │         let v357 : float = v356 |> Array.average                             │
00:03:24 #3999 [Verbose] > │         v352.[int v355] <- v357                                              │
00:03:24 #4000 [Verbose] > │         let v358 : uint64 = v355 + 1UL                                       │
00:03:24 #4001 [Verbose] > │         v353.l0 <- v358                                                      │
00:03:24 #4002 [Verbose] > │         ()                                                                   │
00:03:24 #4003 [Verbose] > │     let v359 : (float -> int64) = int64                                      │
00:03:24 #4004 [Verbose] > │     let v360 : uint64 = System.Convert.ToUInt64 v352.Length                  │
00:03:24 #4005 [Verbose] > │     let v361 : (int64 []) = Array.zeroCreate<int64>                          │
00:03:24 #4006 [Verbose] > │ (System.Convert.ToInt32(v360))                                               │
00:03:24 #4007 [Verbose] > │     let v362 : Mut1 = {l0 = 0UL} : Mut1                                      │
00:03:24 #4008 [Verbose] > │     while method6(v360, v362) do                                             │
00:03:24 #4009 [Verbose] > │         let v364 : uint64 = v362.l0                                          │
00:03:24 #4010 [Verbose] > │         let v365 : float = v352.[int v364]                                   │
00:03:24 #4011 [Verbose] > │         let v366 : int64 = v359 v365                                         │
00:03:24 #4012 [Verbose] > │         v361.[int v364] <- v366                                              │
00:03:24 #4013 [Verbose] > │         let v367 : uint64 = v364 + 1UL                                       │
00:03:24 #4014 [Verbose] > │         v362.l0 <- v367                                                      │
00:03:24 #4015 [Verbose] > │         ()                                                                   │
00:03:24 #4016 [Verbose] > │     let v368 : uint64 = System.Convert.ToUInt64 v361.Length                  │
00:03:24 #4017 [Verbose] > │     let v369 : UH5 = UH5_1                                                   │
00:03:24 #4018 [Verbose] > │     let v370 : Mut3 = {l0 = 0UL; l1 = v369; l2 = 0} : Mut3                   │
00:03:24 #4019 [Verbose] > │     while method28(v368, v370) do                                            │
00:03:24 #4020 [Verbose] > │         let v372 : uint64 = v370.l0                                          │
00:03:24 #4021 [Verbose] > │         let struct (v373 : UH5, v374 : int32) = v370.l1, v370.l2             │
00:03:24 #4022 [Verbose] > │         let v375 : int64 = v361.[int v372]                                   │
00:03:24 #4023 [Verbose] > │         let v376 : int32 = v374 + 1                                          │
00:03:24 #4024 [Verbose] > │         let v377 : uint64 = v372 + 1UL                                       │
00:03:24 #4025 [Verbose] > │         let v378 : UH5 = UH5_0(v374, v375, v373)                             │
00:03:24 #4026 [Verbose] > │         v370.l0 <- v377                                                      │
00:03:24 #4027 [Verbose] > │         v370.l1 <- v378                                                      │
00:03:24 #4028 [Verbose] > │         v370.l2 <- v376                                                      │
00:03:24 #4029 [Verbose] > │         ()                                                                   │
00:03:24 #4030 [Verbose] > │     let struct (v379 : UH5, v380 : int32) = v370.l1, v370.l2                 │
00:03:24 #4031 [Verbose] > │     let v381 : UH5 = UH5_1                                                   │
00:03:24 #4032 [Verbose] > │     let v382 : UH5 = method29(v379, v381)                                    │
00:03:24 #4033 [Verbose] > │     let v383 : (struct (int32 * int64) []) = method39(v382)                  │
00:03:24 #4034 [Verbose] > │     System.Console.WriteLine v35                                             │
00:03:24 #4035 [Verbose] > │     let v384 : string = "Average Ranking  "                                  │
00:03:24 #4036 [Verbose] > │     System.Console.WriteLine v384                                            │
00:03:24 #4037 [Verbose] > │     let v385 : (struct (int32 * int64) -> int64) = closure8()                │
00:03:24 #4038 [Verbose] > │     let v386 : (struct (int32 * int64) []) = v383 |> Array.sortBy v385       │
00:03:24 #4039 [Verbose] > │     let v387 : uint64 = System.Convert.ToUInt64 v386.Length                  │
00:03:24 #4040 [Verbose] > │     let v388 : Mut1 = {l0 = 0UL} : Mut1                                      │
00:03:24 #4041 [Verbose] > │     while method6(v387, v388) do                                             │
00:03:24 #4042 [Verbose] > │         let v390 : uint64 = v388.l0                                          │
00:03:24 #4043 [Verbose] > │         let struct (v391 : int32, v392 : int64) = v386.[int v390]            │
00:03:24 #4044 [Verbose] > │         let v393 : string = $"Test case %d{v391 + 1}. Average Time: %A{v392} │
00:03:24 #4045 [Verbose] > │ "                                                                            │
00:03:24 #4046 [Verbose] > │         System.Console.WriteLine v393                                        │
00:03:24 #4047 [Verbose] > │         let v394 : uint64 = v390 + 1UL                                       │
00:03:24 #4048 [Verbose] > │         v388.l0 <- v394                                                      │
00:03:24 #4049 [Verbose] > │         ()                                                                   │
00:03:24 #4050 [Verbose] > │     ()                                                                       │
00:03:24 #4051 [Verbose] > │ and method0 () : unit =                                                      │
00:03:24 #4052 [Verbose] > │     let v0 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|]                           │
00:03:24 #4053 [Verbose] > │     let v1 : (int32 []) = method1(v0)                                        │
00:03:24 #4054 [Verbose] > │     let v2 : int32 = v1.Length                                               │
00:03:24 #4055 [Verbose] > │     let v3 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|]                           │
00:03:24 #4056 [Verbose] > │     let v4 : (int32 []) = method1(v3)                                        │
00:03:24 #4057 [Verbose] > │     let v5 : int32 = v4.Length                                               │
00:03:24 #4058 [Verbose] > │     let v6 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|]                           │
00:03:24 #4059 [Verbose] > │     let v7 : (int32 []) = method1(v6)                                        │
00:03:24 #4060 [Verbose] > │     let v8 : int32 = v7.Length                                               │
00:03:24 #4061 [Verbose] > │     let v9 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|]                           │
00:03:24 #4062 [Verbose] > │     let v10 : (int32 []) = method1(v9)                                       │
00:03:24 #4063 [Verbose] > │     let v11 : int32 = v10.Length                                             │
00:03:24 #4064 [Verbose] > │     let v12 : (int32 []) = Array.zeroCreate<int32> (100)                     │
00:03:24 #4065 [Verbose] > │     let v13 : Mut0 = {l0 = 0} : Mut0                                         │
00:03:24 #4066 [Verbose] > │     while method2(v13) do                                                    │
00:03:24 #4067 [Verbose] > │         let v15 : int32 = v13.l0                                             │
00:03:24 #4068 [Verbose] > │         let v16 : int32 = 1 + v15                                            │
00:03:24 #4069 [Verbose] > │         v12.[int v15] <- v16                                                 │
00:03:24 #4070 [Verbose] > │         let v17 : int32 = v15 + 1                                            │
00:03:24 #4071 [Verbose] > │         v13.l0 <- v17                                                        │
00:03:24 #4072 [Verbose] > │         ()                                                                   │
00:03:24 #4073 [Verbose] > │     let v18 : int32 = v12.Length                                             │
00:03:24 #4074 [Verbose] > │     let v19 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|]                          │
00:03:24 #4075 [Verbose] > │     let v20 : (int32 []) = method1(v19)                                      │
00:03:24 #4076 [Verbose] > │     let v21 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|]                          │
00:03:24 #4077 [Verbose] > │     let v22 : (int32 []) = method1(v21)                                      │
00:03:24 #4078 [Verbose] > │     let v23 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|]                          │
00:03:24 #4079 [Verbose] > │     let v24 : (int32 []) = method1(v23)                                      │
00:03:24 #4080 [Verbose] > │     let v25 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|]                          │
00:03:24 #4081 [Verbose] > │     let v26 : (int32 []) = method1(v25)                                      │
00:03:24 #4082 [Verbose] > │     let v27 : (int32 []) = Array.zeroCreate<int32> (100)                     │
00:03:24 #4083 [Verbose] > │     let v28 : Mut0 = {l0 = 0} : Mut0                                         │
00:03:24 #4084 [Verbose] > │     while method2(v28) do                                                    │
00:03:24 #4085 [Verbose] > │         let v30 : int32 = v28.l0                                             │
00:03:24 #4086 [Verbose] > │         let v31 : int32 = 1 + v30                                            │
00:03:24 #4087 [Verbose] > │         v27.[int v30] <- v31                                                 │
00:03:24 #4088 [Verbose] > │         let v32 : int32 = v30 + 1                                            │
00:03:24 #4089 [Verbose] > │         v28.l0 <- v32                                                        │
00:03:24 #4090 [Verbose] > │         ()                                                                   │
00:03:24 #4091 [Verbose] > │     let v33 : (unit -> unit) = closure0()                                    │
00:03:24 #4092 [Verbose] > │     let v34 : string = nameof v33                                            │
00:03:24 #4093 [Verbose] > │     let v35 : string = ""                                                    │
00:03:24 #4094 [Verbose] > │     System.Console.WriteLine v35                                             │
00:03:24 #4095 [Verbose] > │     System.Console.WriteLine v35                                             │
00:03:24 #4096 [Verbose] > │     let v36 : string = $"Test: {v34}"                                        │
00:03:24 #4097 [Verbose] > │     System.Console.WriteLine v36                                             │
00:03:24 #4098 [Verbose] > │     let v37 : int32 = 6                                                      │
00:03:24 #4099 [Verbose] > │     let v38 : int32 = 3                                                      │
00:03:24 #4100 [Verbose] > │     let v39 : US0 = US0_1(v38)                                               │
00:03:24 #4101 [Verbose] > │     let v40 : int32 = 1                                                      │
00:03:24 #4102 [Verbose] > │     let v41 : int32 = 0                                                      │
00:03:24 #4103 [Verbose] > │     let v42 : US0 = US0_1(v41)                                               │
00:03:24 #4104 [Verbose] > │     let v43 : int32 = 11                                                     │
00:03:24 #4105 [Verbose] > │     let v44 : int32 = 6                                                      │
00:03:24 #4106 [Verbose] > │     let v45 : US0 = US0_1(v44)                                               │
00:03:24 #4107 [Verbose] > │     let v46 : int32 = 12                                                     │
00:03:24 #4108 [Verbose] > │     let v47 : US0 = US0_0                                                    │
00:03:24 #4109 [Verbose] > │     let v48 : int32 = 60                                                     │
00:03:24 #4110 [Verbose] > │     let v49 : int32 = 59                                                     │
00:03:24 #4111 [Verbose] > │     let v50 : US0 = US0_1(v49)                                               │
00:03:24 #4112 [Verbose] > │     let v51 : int32 = 6                                                      │
00:03:24 #4113 [Verbose] > │     let v52 : int32 = 7                                                      │
00:03:24 #4114 [Verbose] > │     let v53 : int32 = 3                                                      │
00:03:24 #4115 [Verbose] > │     let v54 : US0 = US0_1(v53)                                               │
00:03:24 #4116 [Verbose] > │     let v55 : int32 = 1                                                      │
00:03:24 #4117 [Verbose] > │     let v56 : int32 = 7                                                      │
00:03:24 #4118 [Verbose] > │     let v57 : int32 = 0                                                      │
00:03:24 #4119 [Verbose] > │     let v58 : US0 = US0_1(v57)                                               │
00:03:24 #4120 [Verbose] > │     let v59 : int32 = 11                                                     │
00:03:24 #4121 [Verbose] > │     let v60 : int32 = 7                                                      │
00:03:24 #4122 [Verbose] > │     let v61 : int32 = 6                                                      │
00:03:24 #4123 [Verbose] > │     let v62 : US0 = US0_1(v61)                                               │
00:03:24 #4124 [Verbose] > │     let v63 : int32 = 12                                                     │
00:03:24 #4125 [Verbose] > │     let v64 : int32 = 7                                                      │
00:03:24 #4126 [Verbose] > │     let v65 : US0 = US0_0                                                    │
00:03:24 #4127 [Verbose] > │     let v66 : int32 = 60                                                     │
00:03:24 #4128 [Verbose] > │     let v67 : int32 = 100                                                    │
00:03:24 #4129 [Verbose] > │     let v68 : int32 = 59                                                     │
00:03:24 #4130 [Verbose] > │     let v69 : US0 = US0_1(v68)                                               │
00:03:24 #4131 [Verbose] > │     let v70 : UH0 = UH0_1                                                    │
00:03:24 #4132 [Verbose] > │     let v71 : UH0 = UH0_0(v27, v66, v67, v69, v70)                           │
00:03:24 #4133 [Verbose] > │     let v72 : UH0 = UH0_0(v26, v63, v64, v65, v71)                           │
00:03:24 #4134 [Verbose] > │     let v73 : UH0 = UH0_0(v24, v59, v60, v62, v72)                           │
00:03:24 #4135 [Verbose] > │     let v74 : UH0 = UH0_0(v22, v55, v56, v58, v73)                           │
00:03:24 #4136 [Verbose] > │     let v75 : UH0 = UH0_0(v20, v51, v52, v54, v74)                           │
00:03:24 #4137 [Verbose] > │     let v76 : UH0 = UH0_0(v12, v48, v18, v50, v75)                           │
00:03:24 #4138 [Verbose] > │     let v77 : UH0 = UH0_0(v10, v46, v11, v47, v76)                           │
00:03:24 #4139 [Verbose] > │     let v78 : UH0 = UH0_0(v7, v43, v8, v45, v77)                             │
00:03:24 #4140 [Verbose] > │     let v79 : UH0 = UH0_0(v4, v40, v5, v42, v78)                             │
00:03:24 #4141 [Verbose] > │     let v80 : UH0 = UH0_0(v1, v37, v2, v39, v79)                             │
00:03:24 #4142 [Verbose] > │     let v81 : (struct ((int32 []) * int32 * int32 * US0) []) = method3(v80)  │
00:03:24 #4143 [Verbose] > │     let v82 : uint64 = System.Convert.ToUInt64 v81.Length                    │
00:03:24 #4144 [Verbose] > │     let v83 : (struct (string * string * string * (int64 [])) []) =          │
00:03:24 #4145 [Verbose] > │ Array.zeroCreate<struct (string * string * string * (int64 []))>             │
00:03:24 #4146 [Verbose] > │ (System.Convert.ToInt32(v82))                                                │
00:03:24 #4147 [Verbose] > │     let v84 : Mut1 = {l0 = 0UL} : Mut1                                       │
00:03:24 #4148 [Verbose] > │     while method6(v82, v84) do                                               │
00:03:24 #4149 [Verbose] > │         let v86 : uint64 = v84.l0                                            │
00:03:24 #4150 [Verbose] > │         let struct (v87 : (int32 []), v88 : int32, v89 : int32, v90 : US0) = │
00:03:24 #4151 [Verbose] > │ v81.[int v86]                                                                │
00:03:24 #4152 [Verbose] > │         let v91 : string = $"%A{struct (v87, v88, v89)}"                     │
00:03:24 #4153 [Verbose] > │         System.Console.WriteLine v35                                         │
00:03:24 #4154 [Verbose] > │         let v92 : string = $"Solution: {v91}  "                              │
00:03:24 #4155 [Verbose] > │         System.Console.WriteLine v92                                         │
00:03:24 #4156 [Verbose] > │         let v93 : int32 = 0                                                  │
00:03:24 #4157 [Verbose] > │         let v94 : string = "semi_open_1"                                     │
00:03:24 #4158 [Verbose] > │         let v95 : (struct ((int32 []) * int32 * int32) -> US0) = closure1()  │
00:03:24 #4159 [Verbose] > │         let v96 : int32 = 1                                                  │
00:03:24 #4160 [Verbose] > │         let v97 : string = "closed_1"                                        │
00:03:24 #4161 [Verbose] > │         let v98 : (struct ((int32 []) * int32 * int32) -> US0) = closure2()  │
00:03:24 #4162 [Verbose] > │         let v99 : int32 = 2                                                  │
00:03:24 #4163 [Verbose] > │         let v100 : string = "semi_open_2"                                    │
00:03:24 #4164 [Verbose] > │         let v101 : (struct ((int32 []) * int32 * int32) -> US0) = closure3() │
00:03:24 #4165 [Verbose] > │         let v102 : int32 = 3                                                 │
00:03:24 #4166 [Verbose] > │         let v103 : string = "closed_2"                                       │
00:03:24 #4167 [Verbose] > │         let v104 : (struct ((int32 []) * int32 * int32) -> US0) = closure4() │
00:03:24 #4168 [Verbose] > │         let v105 : UH1 = UH1_1                                               │
00:03:24 #4169 [Verbose] > │         let v106 : UH1 = UH1_0(v102, v103, v104, v105)                       │
00:03:24 #4170 [Verbose] > │         let v107 : UH1 = UH1_0(v99, v100, v101, v106)                        │
00:03:24 #4171 [Verbose] > │         let v108 : UH1 = UH1_0(v96, v97, v98, v107)                          │
00:03:24 #4172 [Verbose] > │         let v109 : UH1 = UH1_0(v93, v94, v95, v108)                          │
00:03:24 #4173 [Verbose] > │         let v110 : (struct (int32 * string * (struct ((int32 []) * int32 *   │
00:03:24 #4174 [Verbose] > │ int32) -> US0)) []) = method11(v109)                                         │
00:03:24 #4175 [Verbose] > │         let v111 : uint64 = System.Convert.ToUInt64 v110.Length              │
00:03:24 #4176 [Verbose] > │         let v112 : (struct (US0 * int64) []) = Array.zeroCreate<struct (US0  │
00:03:24 #4177 [Verbose] > │ * int64)> (System.Convert.ToInt32(v111))                                     │
00:03:24 #4178 [Verbose] > │         let v113 : Mut1 = {l0 = 0UL} : Mut1                                  │
00:03:24 #4179 [Verbose] > │         while method6(v111, v113) do                                         │
00:03:24 #4180 [Verbose] > │             let v115 : uint64 = v113.l0                                      │
00:03:24 #4181 [Verbose] > │             let struct (v116 : int32, v117 : string, v118 : (struct ((int32  │
00:03:24 #4182 [Verbose] > │ []) * int32 * int32) -> US0)) = v110.[int v115]                              │
00:03:24 #4183 [Verbose] > │             let mutable result = None                                        │
00:03:24 #4184 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM                                 │
00:03:24 #4185 [Verbose] > │             ()                                                               │
00:03:24 #4186 [Verbose] > │             #endif                                                           │
00:03:24 #4187 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │
00:03:24 #4188 [Verbose] > │             ()                                                               │
00:03:24 #4189 [Verbose] > │             #endif                                                           │
00:03:24 #4190 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │
00:03:24 #4191 [Verbose] > │             System.GC.Collect ()                                             │
00:03:24 #4192 [Verbose] > │             ()                                                               │
00:03:24 #4193 [Verbose] > │             #endif                                                           │
00:03:24 #4194 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │
00:03:24 #4195 [Verbose] > │             System.GC.Collect ()                                             │
00:03:24 #4196 [Verbose] > │             ()                                                               │
00:03:24 #4197 [Verbose] > │             #endif                                                           │
00:03:24 #4198 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │
00:03:24 #4199 [Verbose] > │             System.GC.Collect ()                                             │
00:03:24 #4200 [Verbose] > │             ()                                                               │
00:03:24 #4201 [Verbose] > │             #endif                                                           │
00:03:24 #4202 [Verbose] > │             |> fun x -> result <- Some x                                     │
00:03:24 #4203 [Verbose] > │             result |> Option.get                                             │
00:03:24 #4204 [Verbose] > │             let v119 : (unit -> System.Diagnostics.Stopwatch) =              │
00:03:24 #4205 [Verbose] > │ System.Diagnostics.Stopwatch                                                 │
00:03:24 #4206 [Verbose] > │             let v120 : System.Diagnostics.Stopwatch = v119 ()                │
00:03:24 #4207 [Verbose] > │             v120.Start ()                                                    │
00:03:24 #4208 [Verbose] > │             let v121 : int64 = v120.ElapsedMilliseconds                      │
00:03:24 #4209 [Verbose] > │             let v122 : (int32 []) = Array.zeroCreate<int32> (8000001)        │
00:03:24 #4210 [Verbose] > │             let v123 : Mut0 = {l0 = 0} : Mut0                                │
00:03:24 #4211 [Verbose] > │             while method14(v123) do                                          │
00:03:24 #4212 [Verbose] > │                 let v125 : int32 = v123.l0                                   │
00:03:24 #4213 [Verbose] > │                 v122.[int v125] <- v125                                      │
00:03:24 #4214 [Verbose] > │                 let v126 : int32 = v125 + 1                                  │
00:03:24 #4215 [Verbose] > │                 v123.l0 <- v126                                              │
00:03:24 #4216 [Verbose] > │                 ()                                                           │
00:03:24 #4217 [Verbose] > │             let v127 : (int32 -> US0) = closure5(v87, v88, v89, v118)        │
00:03:24 #4218 [Verbose] > │             let v128 : (US0 []) = v122 |> Array.Parallel.map v127            │
00:03:24 #4219 [Verbose] > │             let v129 : int32 = v128.Length                                   │
00:03:24 #4220 [Verbose] > │             let v130 : int32 = v129 - 1                                      │
00:03:24 #4221 [Verbose] > │             let v131 : US0 = v128.[int v130]                                 │
00:03:24 #4222 [Verbose] > │             let v132 : int64 = v120.ElapsedMilliseconds                      │
00:03:24 #4223 [Verbose] > │             let v133 : int64 = v132 - v121                                   │
00:03:24 #4224 [Verbose] > │             let v134 : string = $"Test case {v116 + 1}. {v117}. Time: {v133} │
00:03:24 #4225 [Verbose] > │ "                                                                            │
00:03:24 #4226 [Verbose] > │             System.Console.WriteLine v134                                    │
00:03:24 #4227 [Verbose] > │             v112.[int v115] <- struct (v131, v133)                           │
00:03:24 #4228 [Verbose] > │             let v135 : uint64 = v115 + 1UL                                   │
00:03:24 #4229 [Verbose] > │             v113.l0 <- v135                                                  │
00:03:24 #4230 [Verbose] > │             ()                                                               │
00:03:24 #4231 [Verbose] > │         let v136 : uint64 = System.Convert.ToUInt64 v112.Length              │
00:03:24 #4232 [Verbose] > │         let v137 : (US0 []) = Array.zeroCreate<US0>                          │
00:03:24 #4233 [Verbose] > │ (System.Convert.ToInt32(v136))                                               │
00:03:24 #4234 [Verbose] > │         let v138 : Mut1 = {l0 = 0UL} : Mut1                                  │
00:03:24 #4235 [Verbose] > │         while method6(v136, v138) do                                         │
00:03:24 #4236 [Verbose] > │             let v140 : uint64 = v138.l0                                      │
00:03:24 #4237 [Verbose] > │             let struct (v141 : US0, v142 : int64) = v112.[int v140]          │
00:03:24 #4238 [Verbose] > │             v137.[int v140] <- v141                                          │
00:03:24 #4239 [Verbose] > │             let v143 : uint64 = v140 + 1UL                                   │
00:03:24 #4240 [Verbose] > │             v138.l0 <- v143                                                  │
00:03:24 #4241 [Verbose] > │             ()                                                               │
00:03:24 #4242 [Verbose] > │         let v144 : uint64 = System.Convert.ToUInt64 v137.Length              │
00:03:24 #4243 [Verbose] > │         let v145 : bool = v144 <= 1UL                                        │
00:03:24 #4244 [Verbose] > │         if v145 then                                                         │
00:03:24 #4245 [Verbose] > │             ()                                                               │
00:03:24 #4246 [Verbose] > │         else                                                                 │
00:03:24 #4247 [Verbose] > │             let v146 : US0 = v137.[int 0UL]                                  │
00:03:24 #4248 [Verbose] > │             let v147 : uint64 = 0UL                                          │
00:03:24 #4249 [Verbose] > │             let v148 : bool = method15(v146, v137, v147)                     │
00:03:24 #4250 [Verbose] > │             if v148 then                                                     │
00:03:24 #4251 [Verbose] > │                 ()                                                           │
00:03:24 #4252 [Verbose] > │             else                                                             │
00:03:24 #4253 [Verbose] > │                 let v149 : string = $"Challenge error: {v137}"               │
00:03:24 #4254 [Verbose] > │                 failwith<unit> v149                                          │
00:03:24 #4255 [Verbose] > │         let v150 : string = $"%A{v90}"                                       │
00:03:24 #4256 [Verbose] > │         let v151 : (US0 []) = Array.zeroCreate<US0>                          │
00:03:24 #4257 [Verbose] > │ (System.Convert.ToInt32(v136))                                               │
00:03:24 #4258 [Verbose] > │         let v152 : Mut1 = {l0 = 0UL} : Mut1                                  │
00:03:24 #4259 [Verbose] > │         while method6(v136, v152) do                                         │
00:03:24 #4260 [Verbose] > │             let v154 : uint64 = v152.l0                                      │
00:03:24 #4261 [Verbose] > │             let struct (v155 : US0, v156 : int64) = v112.[int v154]          │
00:03:24 #4262 [Verbose] > │             v151.[int v154] <- v155                                          │
00:03:24 #4263 [Verbose] > │             let v157 : uint64 = v154 + 1UL                                   │
00:03:24 #4264 [Verbose] > │             v152.l0 <- v157                                                  │
00:03:24 #4265 [Verbose] > │             ()                                                               │
00:03:24 #4266 [Verbose] > │         let v158 : US0 = v151.[int 0UL]                                      │
00:03:24 #4267 [Verbose] > │         let v159 : string = $"%A{v158}"                                      │
00:03:24 #4268 [Verbose] > │         let v160 : (int64 []) = Array.zeroCreate<int64>                      │
00:03:24 #4269 [Verbose] > │ (System.Convert.ToInt32(v136))                                               │
00:03:24 #4270 [Verbose] > │         let v161 : Mut1 = {l0 = 0UL} : Mut1                                  │
00:03:24 #4271 [Verbose] > │         while method6(v136, v161) do                                         │
00:03:24 #4272 [Verbose] > │             let v163 : uint64 = v161.l0                                      │
00:03:24 #4273 [Verbose] > │             let struct (v164 : US0, v165 : int64) = v112.[int v163]          │
00:03:24 #4274 [Verbose] > │             v160.[int v163] <- v165                                          │
00:03:24 #4275 [Verbose] > │             let v166 : uint64 = v163 + 1UL                                   │
00:03:24 #4276 [Verbose] > │             v161.l0 <- v166                                                  │
00:03:24 #4277 [Verbose] > │             ()                                                               │
00:03:24 #4278 [Verbose] > │         v83.[int v86] <- struct (v150, v91, v159, v160)                      │
00:03:24 #4279 [Verbose] > │         let v167 : uint64 = v86 + 1UL                                        │
00:03:24 #4280 [Verbose] > │         v84.l0 <- v167                                                       │
00:03:24 #4281 [Verbose] > │         ()                                                                   │
00:03:24 #4282 [Verbose] > │     let v168 : uint64 = System.Convert.ToUInt64 v83.Length                   │
00:03:24 #4283 [Verbose] > │     let v169 : (struct (UH2 * US1) []) = Array.zeroCreate<struct (UH2 *      │
00:03:24 #4284 [Verbose] > │ US1)> (System.Convert.ToInt32(v168))                                         │
00:03:24 #4285 [Verbose] > │     let v170 : Mut1 = {l0 = 0UL} : Mut1                                      │
00:03:24 #4286 [Verbose] > │     while method6(v168, v170) do                                             │
00:03:24 #4287 [Verbose] > │         let v172 : uint64 = v170.l0                                          │
00:03:24 #4288 [Verbose] > │         let struct (v173 : string, v174 : string, v175 : string, v176 :      │
00:03:24 #4289 [Verbose] > │ (int64 [])) = v83.[int v172]                                                 │
00:03:24 #4290 [Verbose] > │         let v177 : uint64 = System.Convert.ToUInt64 v176.Length              │
00:03:24 #4291 [Verbose] > │         let v178 : UH3 = UH3_1                                               │
00:03:24 #4292 [Verbose] > │         let v179 : Mut2 = {l0 = 0UL; l1 = v178; l2 = 0L} : Mut2              │
00:03:24 #4293 [Verbose] > │         while method16(v177, v179) do                                        │
00:03:24 #4294 [Verbose] > │             let v181 : uint64 = v179.l0                                      │
00:03:24 #4295 [Verbose] > │             let struct (v182 : UH3, v183 : int64) = v179.l1, v179.l2         │
00:03:24 #4296 [Verbose] > │             let v184 : int64 = v176.[int v181]                               │
00:03:24 #4297 [Verbose] > │             let v185 : int64 = v183 + 1L                                     │
00:03:24 #4298 [Verbose] > │             let v186 : uint64 = v181 + 1UL                                   │
00:03:24 #4299 [Verbose] > │             let v187 : UH3 = UH3_0(v183, v184, v182)                         │
00:03:24 #4300 [Verbose] > │             v179.l0 <- v186                                                  │
00:03:24 #4301 [Verbose] > │             v179.l1 <- v187                                                  │
00:03:24 #4302 [Verbose] > │             v179.l2 <- v185                                                  │
00:03:24 #4303 [Verbose] > │             ()                                                               │
00:03:24 #4304 [Verbose] > │         let struct (v188 : UH3, v189 : int64) = v179.l1, v179.l2             │
00:03:24 #4305 [Verbose] > │         let v190 : UH3 = UH3_1                                               │
00:03:24 #4306 [Verbose] > │         let v191 : UH3 = method17(v188, v190)                                │
00:03:24 #4307 [Verbose] > │         let v192 : (struct (int64 * int64) []) = method18(v191)              │
00:03:24 #4308 [Verbose] > │         let v193 : int32 = v192.Length                                       │
00:03:24 #4309 [Verbose] > │         let v194 : (struct (int64 * int64) []) = Array.zeroCreate<struct     │
00:03:24 #4310 [Verbose] > │ (int64 * int64)> (v193)                                                      │
00:03:24 #4311 [Verbose] > │         let v195 : Mut0 = {l0 = 0} : Mut0                                    │
00:03:24 #4312 [Verbose] > │         while method21(v193, v195) do                                        │
00:03:24 #4313 [Verbose] > │             let v197 : int32 = v195.l0                                       │
00:03:24 #4314 [Verbose] > │             let struct (v198 : int64, v199 : int64) = v192.[int v197]        │
00:03:24 #4315 [Verbose] > │             let v200 : int64 = v198 + 1L                                     │
00:03:24 #4316 [Verbose] > │             v194.[int v197] <- struct (v200, v199)                           │
00:03:24 #4317 [Verbose] > │             let v201 : int32 = v197 + 1                                      │
00:03:24 #4318 [Verbose] > │             v195.l0 <- v201                                                  │
00:03:24 #4319 [Verbose] > │             ()                                                               │
00:03:24 #4320 [Verbose] > │         let v202 : (struct (int64 * int64) -> int64) = closure6()            │
00:03:24 #4321 [Verbose] > │         let v203 : (struct (int64 * int64) []) = v194 |> Array.sortBy v202   │
00:03:24 #4322 [Verbose] > │         let struct (v204 : int64, v205 : int64) = v203.[int 0]               │
00:03:24 #4323 [Verbose] > │         let v206 : string = $"%A{struct (v204, v205)}"                       │
00:03:24 #4324 [Verbose] > │         let v207 : bool = v173 = v175                                        │
00:03:24 #4325 [Verbose] > │         let v212 : US1 =                                                     │
00:03:24 #4326 [Verbose] > │             if v207 then                                                     │
00:03:24 #4327 [Verbose] > │                 let v208 : System.ConsoleColor =                             │
00:03:24 #4328 [Verbose] > │ System.ConsoleColor.DarkGreen                                                │
00:03:24 #4329 [Verbose] > │                 US1_1(v208)                                                  │
00:03:24 #4330 [Verbose] > │             else                                                             │
00:03:24 #4331 [Verbose] > │                 let v210 : System.ConsoleColor = System.ConsoleColor.DarkRed │
00:03:24 #4332 [Verbose] > │                 US1_1(v210)                                                  │
00:03:24 #4333 [Verbose] > │         let v213 : UH2 = UH2_1                                               │
00:03:24 #4334 [Verbose] > │         let v214 : UH2 = UH2_0(v206, v213)                                   │
00:03:24 #4335 [Verbose] > │         let v215 : UH2 = UH2_0(v175, v214)                                   │
00:03:24 #4336 [Verbose] > │         let v216 : UH2 = UH2_0(v173, v215)                                   │
00:03:24 #4337 [Verbose] > │         let v217 : UH2 = UH2_0(v174, v216)                                   │
00:03:24 #4338 [Verbose] > │         v169.[int v172] <- struct (v217, v212)                               │
00:03:24 #4339 [Verbose] > │         let v218 : uint64 = v172 + 1UL                                       │
00:03:24 #4340 [Verbose] > │         v170.l0 <- v218                                                      │
00:03:24 #4341 [Verbose] > │         ()                                                                   │
00:03:24 #4342 [Verbose] > │     let v219 : string = "Input"                                              │
00:03:24 #4343 [Verbose] > │     let v220 : string = "Expected"                                           │
00:03:24 #4344 [Verbose] > │     let v221 : string = "Result"                                             │
00:03:24 #4345 [Verbose] > │     let v222 : string = "Best"                                               │
00:03:24 #4346 [Verbose] > │     let v223 : UH2 = UH2_1                                                   │
00:03:24 #4347 [Verbose] > │     let v224 : UH2 = UH2_0(v222, v223)                                       │
00:03:24 #4348 [Verbose] > │     let v225 : UH2 = UH2_0(v221, v224)                                       │
00:03:24 #4349 [Verbose] > │     let v226 : UH2 = UH2_0(v220, v225)                                       │
00:03:24 #4350 [Verbose] > │     let v227 : UH2 = UH2_0(v219, v226)                                       │
00:03:24 #4351 [Verbose] > │     let v228 : US1 = US1_0                                                   │
00:03:24 #4352 [Verbose] > │     let v229 : string = "---"                                                │
00:03:24 #4353 [Verbose] > │     let v230 : UH2 = UH2_1                                                   │
00:03:24 #4354 [Verbose] > │     let v231 : UH2 = UH2_0(v229, v230)                                       │
00:03:24 #4355 [Verbose] > │     let v232 : UH2 = UH2_0(v229, v231)                                       │
00:03:24 #4356 [Verbose] > │     let v233 : UH2 = UH2_0(v229, v232)                                       │
00:03:24 #4357 [Verbose] > │     let v234 : UH2 = UH2_0(v229, v233)                                       │
00:03:24 #4358 [Verbose] > │     let v235 : US1 = US1_0                                                   │
00:03:24 #4359 [Verbose] > │     let v236 : UH4 = UH4_1                                                   │
00:03:24 #4360 [Verbose] > │     let v237 : UH4 = UH4_0(v234, v235, v236)                                 │
00:03:24 #4361 [Verbose] > │     let v238 : UH4 = UH4_0(v227, v228, v237)                                 │
00:03:24 #4362 [Verbose] > │     let v239 : (struct (UH2 * US1) []) = method22(v238)                      │
00:03:24 #4363 [Verbose] > │     let v240 : uint64 = System.Convert.ToUInt64 v239.Length                  │
00:03:24 #4364 [Verbose] > │     let v241 : uint64 = System.Convert.ToUInt64 v169.Length                  │
00:03:24 #4365 [Verbose] > │     let v242 : uint64 = v240 + v241                                          │
00:03:24 #4366 [Verbose] > │     let v243 : (struct (UH2 * US1) []) = Array.zeroCreate<struct (UH2 *      │
00:03:24 #4367 [Verbose] > │ US1)> (System.Convert.ToInt32(v242))                                         │
00:03:24 #4368 [Verbose] > │     let v244 : Mut1 = {l0 = 0UL} : Mut1                                      │
00:03:24 #4369 [Verbose] > │     while method6(v242, v244) do                                             │
00:03:24 #4370 [Verbose] > │         let v246 : uint64 = v244.l0                                          │
00:03:24 #4371 [Verbose] > │         let v247 : bool = v246 < v240                                        │
00:03:24 #4372 [Verbose] > │         let struct (v253 : UH2, v254 : US1) =                                │
00:03:24 #4373 [Verbose] > │             if v247 then                                                     │
00:03:24 #4374 [Verbose] > │                 let struct (v248 : UH2, v249 : US1) = v239.[int v246]        │
00:03:24 #4375 [Verbose] > │                 struct (v248, v249)                                          │
00:03:24 #4376 [Verbose] > │             else                                                             │
00:03:24 #4377 [Verbose] > │                 let v250 : uint64 = v246 - v240                              │
00:03:24 #4378 [Verbose] > │                 let struct (v251 : UH2, v252 : US1) = v169.[int v250]        │
00:03:24 #4379 [Verbose] > │                 struct (v251, v252)                                          │
00:03:24 #4380 [Verbose] > │         v243.[int v246] <- struct (v253, v254)                               │
00:03:24 #4381 [Verbose] > │         let v255 : uint64 = v246 + 1UL                                       │
00:03:24 #4382 [Verbose] > │         v244.l0 <- v255                                                      │
00:03:24 #4383 [Verbose] > │         ()                                                                   │
00:03:24 #4384 [Verbose] > │     let v256 : uint64 = System.Convert.ToUInt64 v243.Length                  │
00:03:24 #4385 [Verbose] > │     let v257 : ((string []) []) = Array.zeroCreate<(string [])>              │
00:03:24 #4386 [Verbose] > │ (System.Convert.ToInt32(v256))                                               │
00:03:24 #4387 [Verbose] > │     let v258 : Mut1 = {l0 = 0UL} : Mut1                                      │
00:03:24 #4388 [Verbose] > │     while method6(v256, v258) do                                             │
00:03:24 #4389 [Verbose] > │         let v260 : uint64 = v258.l0                                          │
00:03:24 #4390 [Verbose] > │         let struct (v261 : UH2, v262 : US1) = v243.[int v260]                │
00:03:24 #4391 [Verbose] > │         let v263 : (string []) = method25(v261)                              │
00:03:24 #4392 [Verbose] > │         v257.[int v260] <- v263                                              │
00:03:24 #4393 [Verbose] > │         let v264 : uint64 = v260 + 1UL                                       │
00:03:24 #4394 [Verbose] > │         v258.l0 <- v264                                                      │
00:03:24 #4395 [Verbose] > │         ()                                                                   │
00:03:24 #4396 [Verbose] > │     let v265 : ((string []) []) = v257 |> Array.transpose                    │
00:03:24 #4397 [Verbose] > │     let v266 : uint64 = System.Convert.ToUInt64 v265.Length                  │
00:03:24 #4398 [Verbose] > │     let v267 : (int64 []) = Array.zeroCreate<int64>                          │
00:03:24 #4399 [Verbose] > │ (System.Convert.ToInt32(v266))                                               │
00:03:24 #4400 [Verbose] > │     let v268 : Mut1 = {l0 = 0UL} : Mut1                                      │
00:03:24 #4401 [Verbose] > │     while method6(v266, v268) do                                             │
00:03:24 #4402 [Verbose] > │         let v270 : uint64 = v268.l0                                          │
00:03:24 #4403 [Verbose] > │         let v271 : (string []) = v265.[int v270]                             │
00:03:24 #4404 [Verbose] > │         let v272 : uint64 = System.Convert.ToUInt64 v271.Length              │
00:03:24 #4405 [Verbose] > │         let v273 : (int64 []) = Array.zeroCreate<int64>                      │
00:03:24 #4406 [Verbose] > │ (System.Convert.ToInt32(v272))                                               │
00:03:24 #4407 [Verbose] > │         let v274 : Mut1 = {l0 = 0UL} : Mut1                                  │
00:03:24 #4408 [Verbose] > │         while method6(v272, v274) do                                         │
00:03:24 #4409 [Verbose] > │             let v276 : uint64 = v274.l0                                      │
00:03:24 #4410 [Verbose] > │             let v277 : string = v271.[int v276]                              │
00:03:24 #4411 [Verbose] > │             let v278 : int64 = System.Convert.ToInt64 v277.Length            │
00:03:24 #4412 [Verbose] > │             v273.[int v276] <- v278                                          │
00:03:24 #4413 [Verbose] > │             let v279 : uint64 = v276 + 1UL                                   │
00:03:24 #4414 [Verbose] > │             v274.l0 <- v279                                                  │
00:03:24 #4415 [Verbose] > │             ()                                                               │
00:03:24 #4416 [Verbose] > │         let v280 : (int64 []) = v273 |> Array.sortDescending                 │
00:03:24 #4417 [Verbose] > │         let v281 : int64 option = v280 |> Array.tryItem 0                    │
00:03:24 #4418 [Verbose] > │         let v282 : (int64 -> US2) = closure7()                               │
00:03:24 #4419 [Verbose] > │         let v283 : US2 = US2_0                                               │
00:03:24 #4420 [Verbose] > │         let v284 : US2 = v281 |> Option.map v282 |> Option.defaultValue v283 │
00:03:24 #4421 [Verbose] > │         let v287 : int64 =                                                   │
00:03:24 #4422 [Verbose] > │             match v284 with                                                  │
00:03:24 #4423 [Verbose] > │             | US2_0 -> (* None *)                                            │
00:03:24 #4424 [Verbose] > │                 0L                                                           │
00:03:24 #4425 [Verbose] > │             | US2_1(v285) -> (* Some *)                                      │
00:03:24 #4426 [Verbose] > │                 v285                                                         │
00:03:24 #4427 [Verbose] > │         v267.[int v270] <- v287                                              │
00:03:24 #4428 [Verbose] > │         let v288 : uint64 = v270 + 1UL                                       │
00:03:24 #4429 [Verbose] > │         v268.l0 <- v288                                                      │
00:03:24 #4430 [Verbose] > │         ()                                                                   │
00:03:24 #4431 [Verbose] > │     let v289 : uint64 = System.Convert.ToUInt64 v267.Length                  │
00:03:24 #4432 [Verbose] > │     let v290 : UH5 = UH5_1                                                   │
00:03:24 #4433 [Verbose] > │     let v291 : Mut3 = {l0 = 0UL; l1 = v290; l2 = 0} : Mut3                   │
00:03:24 #4434 [Verbose] > │     while method28(v289, v291) do                                            │
00:03:24 #4435 [Verbose] > │         let v293 : uint64 = v291.l0                                          │
00:03:24 #4436 [Verbose] > │         let struct (v294 : UH5, v295 : int32) = v291.l1, v291.l2             │
00:03:24 #4437 [Verbose] > │         let v296 : int64 = v267.[int v293]                                   │
00:03:24 #4438 [Verbose] > │         let v297 : int32 = v295 + 1                                          │
00:03:24 #4439 [Verbose] > │         let v298 : uint64 = v293 + 1UL                                       │
00:03:24 #4440 [Verbose] > │         let v299 : UH5 = UH5_0(v295, v296, v294)                             │
00:03:24 #4441 [Verbose] > │         v291.l0 <- v298                                                      │
00:03:24 #4442 [Verbose] > │         v291.l1 <- v299                                                      │
00:03:24 #4443 [Verbose] > │         v291.l2 <- v297                                                      │
00:03:24 #4444 [Verbose] > │         ()                                                                   │
00:03:24 #4445 [Verbose] > │     let struct (v300 : UH5, v301 : int32) = v291.l1, v291.l2                 │
00:03:24 #4446 [Verbose] > │     let v302 : UH5 = UH5_1                                                   │
00:03:24 #4447 [Verbose] > │     let v303 : UH5 = method29(v300, v302)                                    │
00:03:24 #4448 [Verbose] > │     let v304 : (struct (int32 * int64) []) = method30(v303)                  │
00:03:24 #4449 [Verbose] > │     let v305 : Map<int32, int64> = v304 |> Array.map (fun (struct (a, b)) -> │
00:03:24 #4450 [Verbose] > │ a, b) |> Map.ofArray                                                         │
00:03:24 #4451 [Verbose] > │     let v306 : (struct ((string []) * US1) []) = Array.zeroCreate<struct     │
00:03:24 #4452 [Verbose] > │ ((string []) * US1)> (System.Convert.ToInt32(v256))                          │
00:03:24 #4453 [Verbose] > │     let v307 : Mut1 = {l0 = 0UL} : Mut1                                      │
00:03:24 #4454 [Verbose] > │     while method6(v256, v307) do                                             │
00:03:24 #4455 [Verbose] > │         let v309 : uint64 = v307.l0                                          │
00:03:24 #4456 [Verbose] > │         let struct (v310 : UH2, v311 : US1) = v243.[int v309]                │
00:03:24 #4457 [Verbose] > │         let v312 : UH6 = UH6_1                                               │
00:03:24 #4458 [Verbose] > │         let v313 : int32 = 0                                                 │
00:03:24 #4459 [Verbose] > │         let struct (v314 : UH6, v315 : int32) = method33(v310, v312, v313)   │
00:03:24 #4460 [Verbose] > │         let v316 : UH6 = UH6_1                                               │
00:03:24 #4461 [Verbose] > │         let v317 : UH6 = method34(v314, v316)                                │
00:03:24 #4462 [Verbose] > │         let v318 : UH2 = UH2_1                                               │
00:03:24 #4463 [Verbose] > │         let v319 : UH2 = method35(v305, v317, v318)                          │
00:03:24 #4464 [Verbose] > │         let v320 : (string []) = method36(v319)                              │
00:03:24 #4465 [Verbose] > │         v306.[int v309] <- struct (v320, v311)                               │
00:03:24 #4466 [Verbose] > │         let v321 : uint64 = v309 + 1UL                                       │
00:03:24 #4467 [Verbose] > │         v307.l0 <- v321                                                      │
00:03:24 #4468 [Verbose] > │         ()                                                                   │
00:03:24 #4469 [Verbose] > │     System.Console.WriteLine v35                                             │
00:03:24 #4470 [Verbose] > │     let v322 : uint64 = System.Convert.ToUInt64 v306.Length                  │
00:03:24 #4471 [Verbose] > │     let v323 : Mut1 = {l0 = 0UL} : Mut1                                      │
00:03:24 #4472 [Verbose] > │     while method6(v322, v323) do                                             │
00:03:24 #4473 [Verbose] > │         let v325 : uint64 = v323.l0                                          │
00:03:24 #4474 [Verbose] > │         let struct (v326 : (string []), v327 : US1) = v306.[int v325]        │
00:03:24 #4475 [Verbose] > │         match v327 with                                                      │
00:03:24 #4476 [Verbose] > │         | US1_0 -> (* None *)                                                │
00:03:24 #4477 [Verbose] > │             let mutable result = None                                        │
00:03:24 #4478 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM                                 │
00:03:24 #4479 [Verbose] > │             ()                                                               │
00:03:24 #4480 [Verbose] > │             #endif                                                           │
00:03:24 #4481 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │
00:03:24 #4482 [Verbose] > │             ()                                                               │
00:03:24 #4483 [Verbose] > │             #endif                                                           │
00:03:24 #4484 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │
00:03:24 #4485 [Verbose] > │             System.Console.ResetColor ()                                     │
00:03:24 #4486 [Verbose] > │             ()                                                               │
00:03:24 #4487 [Verbose] > │             #endif                                                           │
00:03:24 #4488 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │
00:03:24 #4489 [Verbose] > │             System.Console.ResetColor ()                                     │
00:03:24 #4490 [Verbose] > │             ()                                                               │
00:03:24 #4491 [Verbose] > │             #endif                                                           │
00:03:24 #4492 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │
00:03:24 #4493 [Verbose] > │             System.Console.ResetColor ()                                     │
00:03:24 #4494 [Verbose] > │             ()                                                               │
00:03:24 #4495 [Verbose] > │             #endif                                                           │
00:03:24 #4496 [Verbose] > │             |> fun x -> result <- Some x                                     │
00:03:24 #4497 [Verbose] > │             result |> Option.get                                             │
00:03:24 #4498 [Verbose] > │             ()                                                               │
00:03:24 #4499 [Verbose] > │         | US1_1(v328) -> (* Some *)                                          │
00:03:24 #4500 [Verbose] > │             let mutable result = None                                        │
00:03:24 #4501 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM                                 │
00:03:24 #4502 [Verbose] > │             ()                                                               │
00:03:24 #4503 [Verbose] > │             #endif                                                           │
00:03:24 #4504 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │
00:03:24 #4505 [Verbose] > │             ()                                                               │
00:03:24 #4506 [Verbose] > │             #endif                                                           │
00:03:24 #4507 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │
00:03:24 #4508 [Verbose] > │             System.Console.ForegroundColor <- v328                           │
00:03:24 #4509 [Verbose] > │             ()                                                               │
00:03:24 #4510 [Verbose] > │             #endif                                                           │
00:03:24 #4511 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │
00:03:24 #4512 [Verbose] > │             System.Console.ForegroundColor <- v328                           │
00:03:24 #4513 [Verbose] > │             ()                                                               │
00:03:24 #4514 [Verbose] > │             #endif                                                           │
00:03:24 #4515 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │
00:03:24 #4516 [Verbose] > │             System.Console.ForegroundColor <- v328                           │
00:03:24 #4517 [Verbose] > │             ()                                                               │
00:03:24 #4518 [Verbose] > │             #endif                                                           │
00:03:24 #4519 [Verbose] > │             |> fun x -> result <- Some x                                     │
00:03:24 #4520 [Verbose] > │             result |> Option.get                                             │
00:03:24 #4521 [Verbose] > │             ()                                                               │
00:03:24 #4522 [Verbose] > │         let v329 : string = "\t| "                                           │
00:03:24 #4523 [Verbose] > │         let v330 : string = System.String.Join (v329, v326)                  │
00:03:24 #4524 [Verbose] > │         System.Console.WriteLine v330                                        │
00:03:24 #4525 [Verbose] > │         let mutable result = None                                            │
00:03:24 #4526 [Verbose] > │         #if FABLE_COMPILER_RUST && !WASM                                     │
00:03:24 #4527 [Verbose] > │         ()                                                                   │
00:03:24 #4528 [Verbose] > │         #endif                                                               │
00:03:24 #4529 [Verbose] > │         #if FABLE_COMPILER_RUST && WASM                                      │
00:03:24 #4530 [Verbose] > │         ()                                                                   │
00:03:24 #4531 [Verbose] > │         #endif                                                               │
00:03:24 #4532 [Verbose] > │         #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                 │
00:03:24 #4533 [Verbose] > │         System.Console.ResetColor ()                                         │
00:03:24 #4534 [Verbose] > │         ()                                                                   │
00:03:24 #4535 [Verbose] > │         #endif                                                               │
00:03:24 #4536 [Verbose] > │         #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                  │
00:03:24 #4537 [Verbose] > │         System.Console.ResetColor ()                                         │
00:03:24 #4538 [Verbose] > │         ()                                                                   │
00:03:24 #4539 [Verbose] > │         #endif                                                               │
00:03:24 #4540 [Verbose] > │         #if !FABLE_COMPILER_RUST && WASM                                     │
00:03:24 #4541 [Verbose] > │         System.Console.ResetColor ()                                         │
00:03:24 #4542 [Verbose] > │         ()                                                                   │
00:03:24 #4543 [Verbose] > │         #endif                                                               │
00:03:24 #4544 [Verbose] > │         |> fun x -> result <- Some x                                         │
00:03:24 #4545 [Verbose] > │         result |> Option.get                                                 │
00:03:24 #4546 [Verbose] > │         let v331 : uint64 = v325 + 1UL                                       │
00:03:24 #4547 [Verbose] > │         v323.l0 <- v331                                                      │
00:03:24 #4548 [Verbose] > │         ()                                                                   │
00:03:24 #4549 [Verbose] > │     let v332 : ((float []) []) = Array.zeroCreate<(float [])>                │
00:03:24 #4550 [Verbose] > │ (System.Convert.ToInt32(v168))                                               │
00:03:24 #4551 [Verbose] > │     let v333 : Mut1 = {l0 = 0UL} : Mut1                                      │
00:03:24 #4552 [Verbose] > │     while method6(v168, v333) do                                             │
00:03:24 #4553 [Verbose] > │         let v335 : uint64 = v333.l0                                          │
00:03:24 #4554 [Verbose] > │         let struct (v336 : string, v337 : string, v338 : string, v339 :      │
00:03:24 #4555 [Verbose] > │ (int64 [])) = v83.[int v335]                                                 │
00:03:24 #4556 [Verbose] > │         let v340 : (int64 -> float) = float                                  │
00:03:24 #4557 [Verbose] > │         let v341 : uint64 = System.Convert.ToUInt64 v339.Length              │
00:03:24 #4558 [Verbose] > │         let v342 : (float []) = Array.zeroCreate<float>                      │
00:03:24 #4559 [Verbose] > │ (System.Convert.ToInt32(v341))                                               │
00:03:24 #4560 [Verbose] > │         let v343 : Mut1 = {l0 = 0UL} : Mut1                                  │
00:03:24 #4561 [Verbose] > │         while method6(v341, v343) do                                         │
00:03:24 #4562 [Verbose] > │             let v345 : uint64 = v343.l0                                      │
00:03:24 #4563 [Verbose] > │             let v346 : int64 = v339.[int v345]                               │
00:03:24 #4564 [Verbose] > │             let v347 : float = v340 v346                                     │
00:03:24 #4565 [Verbose] > │             v342.[int v345] <- v347                                          │
00:03:24 #4566 [Verbose] > │             let v348 : uint64 = v345 + 1UL                                   │
00:03:24 #4567 [Verbose] > │             v343.l0 <- v348                                                  │
00:03:24 #4568 [Verbose] > │             ()                                                               │
00:03:24 #4569 [Verbose] > │         v332.[int v335] <- v342                                              │
00:03:24 #4570 [Verbose] > │         let v349 : uint64 = v335 + 1UL                                       │
00:03:24 #4571 [Verbose] > │         v333.l0 <- v349                                                      │
00:03:24 #4572 [Verbose] > │         ()                                                                   │
00:03:24 #4573 [Verbose] > │     let v350 : ((float []) []) = v332 |> Array.transpose                     │
00:03:24 #4574 [Verbose] > │     let v351 : uint64 = System.Convert.ToUInt64 v350.Length                  │
00:03:24 #4575 [Verbose] > │     let v352 : (float []) = Array.zeroCreate<float>                          │
00:03:24 #4576 [Verbose] > │ (System.Convert.ToInt32(v351))                                               │
00:03:24 #4577 [Verbose] > │     let v353 : Mut1 = {l0 = 0UL} : Mut1                                      │
00:03:24 #4578 [Verbose] > │     while method6(v351, v353) do                                             │
00:03:24 #4579 [Verbose] > │         let v355 : uint64 = v353.l0                                          │
00:03:24 #4580 [Verbose] > │         let v356 : (float []) = v350.[int v355]                              │
00:03:24 #4581 [Verbose] > │         let v357 : float = v356 |> Array.average                             │
00:03:24 #4582 [Verbose] > │         v352.[int v355] <- v357                                              │
00:03:24 #4583 [Verbose] > │         let v358 : uint64 = v355 + 1UL                                       │
00:03:24 #4584 [Verbose] > │         v353.l0 <- v358                                                      │
00:03:24 #4585 [Verbose] > │         ()                                                                   │
00:03:24 #4586 [Verbose] > │     let v359 : (float -> int64) = int64                                      │
00:03:24 #4587 [Verbose] > │     let v360 : uint64 = System.Convert.ToUInt64 v352.Length                  │
00:03:24 #4588 [Verbose] > │     let v361 : (int64 []) = Array.zeroCreate<int64>                          │
00:03:24 #4589 [Verbose] > │ (System.Convert.ToInt32(v360))                                               │
00:03:24 #4590 [Verbose] > │     let v362 : Mut1 = {l0 = 0UL} : Mut1                                      │
00:03:24 #4591 [Verbose] > │     while method6(v360, v362) do                                             │
00:03:24 #4592 [Verbose] > │         let v364 : uint64 = v362.l0                                          │
00:03:24 #4593 [Verbose] > │         let v365 : float = v352.[int v364]                                   │
00:03:24 #4594 [Verbose] > │         let v366 : int64 = v359 v365                                         │
00:03:24 #4595 [Verbose] > │         v361.[int v364] <- v366                                              │
00:03:24 #4596 [Verbose] > │         let v367 : uint64 = v364 + 1UL                                       │
00:03:24 #4597 [Verbose] > │         v362.l0 <- v367                                                      │
00:03:24 #4598 [Verbose] > │         ()                                                                   │
00:03:24 #4599 [Verbose] > │     let v368 : uint64 = System.Convert.ToUInt64 v361.Length                  │
00:03:24 #4600 [Verbose] > │     let v369 : UH5 = UH5_1                                                   │
00:03:24 #4601 [Verbose] > │     let v370 : Mut3 = {l0 = 0UL; l1 = v369; l2 = 0} : Mut3                   │
00:03:24 #4602 [Verbose] > │     while method28(v368, v370) do                                            │
00:03:24 #4603 [Verbose] > │         let v372 : uint64 = v370.l0                                          │
00:03:24 #4604 [Verbose] > │         let struct (v373 : UH5, v374 : int32) = v370.l1, v370.l2             │
00:03:24 #4605 [Verbose] > │         let v375 : int64 = v361.[int v372]                                   │
00:03:24 #4606 [Verbose] > │         let v376 : int32 = v374 + 1                                          │
00:03:24 #4607 [Verbose] > │         let v377 : uint64 = v372 + 1UL                                       │
00:03:24 #4608 [Verbose] > │         let v378 : UH5 = UH5_0(v374, v375, v373)                             │
00:03:24 #4609 [Verbose] > │         v370.l0 <- v377                                                      │
00:03:24 #4610 [Verbose] > │         v370.l1 <- v378                                                      │
00:03:24 #4611 [Verbose] > │         v370.l2 <- v376                                                      │
00:03:24 #4612 [Verbose] > │         ()                                                                   │
00:03:24 #4613 [Verbose] > │     let struct (v379 : UH5, v380 : int32) = v370.l1, v370.l2                 │
00:03:24 #4614 [Verbose] > │     let v381 : UH5 = UH5_1                                                   │
00:03:24 #4615 [Verbose] > │     let v382 : UH5 = method29(v379, v381)                                    │
00:03:24 #4616 [Verbose] > │     let v383 : (struct (int32 * int64) []) = method39(v382)                  │
00:03:24 #4617 [Verbose] > │     System.Console.WriteLine v35                                             │
00:03:24 #4618 [Verbose] > │     let v384 : string = "Average Ranking  "                                  │
00:03:24 #4619 [Verbose] > │     System.Console.WriteLine v384                                            │
00:03:24 #4620 [Verbose] > │     let v385 : (struct (int32 * int64) -> int64) = closure8()                │
00:03:24 #4621 [Verbose] > │     let v386 : (struct (int32 * int64) []) = v383 |> Array.sortBy v385       │
00:03:24 #4622 [Verbose] > │     let v387 : uint64 = System.Convert.ToUInt64 v386.Length                  │
00:03:24 #4623 [Verbose] > │     let v388 : Mut1 = {l0 = 0UL} : Mut1                                      │
00:03:24 #4624 [Verbose] > │     while method6(v387, v388) do                                             │
00:03:24 #4625 [Verbose] > │         let v390 : uint64 = v388.l0                                          │
00:03:24 #4626 [Verbose] > │         let struct (v391 : int32, v392 : int64) = v386.[int v390]            │
00:03:24 #4627 [Verbose] > │         let v393 : string = $"Test case %d{v391 + 1}. Average Time: %A{v392} │
00:03:24 #4628 [Verbose] > │ "                                                                            │
00:03:24 #4629 [Verbose] > │         System.Console.WriteLine v393                                        │
00:03:24 #4630 [Verbose] > │         let v394 : uint64 = v390 + 1UL                                       │
00:03:24 #4631 [Verbose] > │         v388.l0 <- v394                                                      │
00:03:24 #4632 [Verbose] > │         ()                                                                   │
00:03:24 #4633 [Verbose] > │     ()                                                                       │
00:03:24 #4634 [Verbose] > │ method0()                                                                    │
00:03:24 #4635 [Verbose] > │                                                                              │
00:03:24 #4636 [Verbose] > │                                                                              │
00:03:24 #4637 [Verbose] > │                                                                              │
00:03:24 #4638 [Verbose] > │ Test: v33                                                                    │
00:03:24 #4639 [Verbose] > │                                                                              │
00:03:24 #4640 [Verbose] > │ Solution: struct ([|1; 3; 4; 6; 8; 9; 11|], 6, 7)                            │
00:03:24 #4641 [Verbose] > │ Test case 1. semi_open_1. Time: 217                                          │
00:03:24 #4642 [Verbose] > │ Test case 2. closed_1. Time: 182                                             │
00:03:24 #4643 [Verbose] > │ Test case 3. semi_open_2. Time: 124                                          │
00:03:24 #4644 [Verbose] > │ Test case 4. closed_2. Time: 124                                             │
00:03:24 #4645 [Verbose] > │                                                                              │
00:03:24 #4646 [Verbose] > │ Solution: struct ([|1; 3; 4; 6; 8; 9; 11|], 1, 7)                            │
00:03:24 #4647 [Verbose] > │ Test case 1. semi_open_1. Time: 210                                          │
00:03:24 #4648 [Verbose] > │ Test case 2. closed_1. Time: 86                                              │
00:03:24 #4649 [Verbose] > │ Test case 3. semi_open_2. Time: 71                                           │
00:03:24 #4650 [Verbose] > │ Test case 4. closed_2. Time: 96                                              │
00:03:24 #4651 [Verbose] > │                                                                              │
00:03:24 #4652 [Verbose] > │ Solution: struct ([|1; 3; 4; 6; 8; 9; 11|], 11, 7)                           │
00:03:24 #4653 [Verbose] > │ Test case 1. semi_open_1. Time: 68                                           │
00:03:24 #4654 [Verbose] > │ Test case 2. closed_1. Time: 71                                              │
00:03:24 #4655 [Verbose] > │ Test case 3. semi_open_2. Time: 68                                           │
00:03:24 #4656 [Verbose] > │ Test case 4. closed_2. Time: 68                                              │
00:03:24 #4657 [Verbose] > │                                                                              │
00:03:24 #4658 [Verbose] > │ Solution: struct ([|1; 3; 4; 6; 8; 9; 11|], 12, 7)                           │
00:03:24 #4659 [Verbose] > │ Test case 1. semi_open_1. Time: 66                                           │
00:03:24 #4660 [Verbose] > │ Test case 2. closed_1. Time: 68                                              │
00:03:24 #4661 [Verbose] > │ Test case 3. semi_open_2. Time: 68                                           │
00:03:24 #4662 [Verbose] > │ Test case 4. closed_2. Time: 69                                              │
00:03:24 #4663 [Verbose] > │                                                                              │
00:03:24 #4664 [Verbose] > │ Solution: struct ([|1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16;   │
00:03:24 #4665 [Verbose] > │ 17; 18; 19; 20;                                                              │
00:03:24 #4666 [Verbose] > │           21; 22; 23; 24; 25; 26; 27; 28; 29; 30; 31; 32; 33; 34; 35; 36;    │
00:03:24 #4667 [Verbose] > │ 37; 38;                                                                      │
00:03:24 #4668 [Verbose] > │           39; 40; 41; 42; 43; 44; 45; 46; 47; 48; 49; 50; 51; 52; 53; 54;    │
00:03:24 #4669 [Verbose] > │ 55; 56;                                                                      │
00:03:24 #4670 [Verbose] > │           57; 58; 59; 60; 61; 62; 63; 64; 65; 66; 67; 68; 69; 70; 71; 72;    │
00:03:24 #4671 [Verbose] > │ 73; 74;                                                                      │
00:03:24 #4672 [Verbose] > │           75; 76; 77; 78; 79; 80; 81; 82; 83; 84; 85; 86; 87; 88; 89; 90;    │
00:03:24 #4673 [Verbose] > │ 91; 92;                                                                      │
00:03:24 #4674 [Verbose] > │           93; 94; 95; 96; 97; 98; 99; 100|], 60, 100)                        │
00:03:24 #4675 [Verbose] > │ Test case 1. semi_open_1. Time: 83                                           │
00:03:24 #4676 [Verbose] > │ Test case 2. closed_1. Time: 85                                              │
00:03:24 #4677 [Verbose] > │ Test case 3. semi_open_2. Time: 81                                           │
00:03:24 #4678 [Verbose] > │ Test case 4. closed_2. Time: 83                                              │
00:03:24 #4679 [Verbose] > │                                                                              │
00:03:24 #4680 [Verbose] > │ Solution: struct ([|1; 3; 4; 6; 8; 9; 11|], 6, 7)                            │
00:03:24 #4681 [Verbose] > │ Test case 1. semi_open_1. Time: 59                                           │
00:03:24 #4682 [Verbose] > │ Test case 2. closed_1. Time: 61                                              │
00:03:24 #4683 [Verbose] > │ Test case 3. semi_open_2. Time: 60                                           │
00:03:24 #4684 [Verbose] > │ Test case 4. closed_2. Time: 60                                              │
00:03:24 #4685 [Verbose] > │                                                                              │
00:03:24 #4686 [Verbose] > │ Solution: struct ([|1; 3; 4; 6; 8; 9; 11|], 1, 7)                            │
00:03:24 #4687 [Verbose] > │ Test case 1. semi_open_1. Time: 65                                           │
00:03:24 #4688 [Verbose] > │ Test case 2. closed_1. Time: 71                                              │
00:03:24 #4689 [Verbose] > │ Test case 3. semi_open_2. Time: 65                                           │
00:03:24 #4690 [Verbose] > │ Test case 4. closed_2. Time: 69                                              │
00:03:24 #4691 [Verbose] > │                                                                              │
00:03:24 #4692 [Verbose] > │ Solution: struct ([|1; 3; 4; 6; 8; 9; 11|], 11, 7)                           │
00:03:24 #4693 [Verbose] > │ Test case 1. semi_open_1. Time: 67                                           │
00:03:24 #4694 [Verbose] > │ Test case 2. closed_1. Time: 70                                              │
00:03:24 #4695 [Verbose] > │ Test case 3. semi_open_2. Time: 69                                           │
00:03:24 #4696 [Verbose] > │ Test case 4. closed_2. Time: 68                                              │
00:03:24 #4697 [Verbose] > │                                                                              │
00:03:24 #4698 [Verbose] > │ Solution: struct ([|1; 3; 4; 6; 8; 9; 11|], 12, 7)                           │
00:03:24 #4699 [Verbose] > │ Test case 1. semi_open_1. Time: 66                                           │
00:03:24 #4700 [Verbose] > │ Test case 2. closed_1. Time: 68                                              │
00:03:24 #4701 [Verbose] > │ Test case 3. semi_open_2. Time: 68                                           │
00:03:24 #4702 [Verbose] > │ Test case 4. closed_2. Time: 68                                              │
00:03:24 #4703 [Verbose] > │                                                                              │
00:03:24 #4704 [Verbose] > │ Solution: struct ([|1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16;   │
00:03:24 #4705 [Verbose] > │ 17; 18; 19; 20;                                                              │
00:03:24 #4706 [Verbose] > │           21; 22; 23; 24; 25; 26; 27; 28; 29; 30; 31; 32; 33; 34; 35; 36;    │
00:03:24 #4707 [Verbose] > │ 37; 38;                                                                      │
00:03:24 #4708 [Verbose] > │           39; 40; 41; 42; 43; 44; 45; 46; 47; 48; 49; 50; 51; 52; 53; 54;    │
00:03:24 #4709 [Verbose] > │ 55; 56;                                                                      │
00:03:24 #4710 [Verbose] > │           57; 58; 59; 60; 61; 62; 63; 64; 65; 66; 67; 68; 69; 70; 71; 72;    │
00:03:24 #4711 [Verbose] > │ 73; 74;                                                                      │
00:03:24 #4712 [Verbose] > │           75; 76; 77; 78; 79; 80; 81; 82; 83; 84; 85; 86; 87; 88; 89; 90;    │
00:03:24 #4713 [Verbose] > │ 91; 92;                                                                      │
00:03:24 #4714 [Verbose] > │           93; 94; 95; 96; 97; 98; 99; 100|], 60, 100)                        │
00:03:24 #4715 [Verbose] > │ Test case 1. semi_open_1. Time: 83                                           │
00:03:24 #4716 [Verbose] > │ Test case 2. closed_1. Time: 85                                              │
00:03:24 #4717 [Verbose] > │ Test case 3. semi_open_2. Time: 83                                           │
00:03:24 #4718 [Verbose] > │ Test case 4. closed_2. Time: 84                                              │
00:03:24 #4719 [Verbose] > │                                                                              │
00:03:24 #4720 [Verbose] > │ Input                                                                        │
00:03:24 #4721 [Verbose] > │                                                                              │
00:03:24 #4722 [Verbose] > │                                                                              │
00:03:24 #4723 [Verbose] > │                                                                              │
00:03:24 #4724 [Verbose] > │  	| Expected	| Result  	| Best                                                     │
00:03:24 #4725 [Verbose] > │ ---                                                                          │
00:03:24 #4726 [Verbose] > │                                                                              │
00:03:24 #4727 [Verbose] > │                                                                              │
00:03:24 #4728 [Verbose] > │                                                                              │
00:03:24 #4729 [Verbose] > │    	| ---     	| ---     	| ---                                                    │
00:03:24 #4730 [Verbose] > │ struct ([|1; 3; 4; 6; 8; 9; 11|], 6, 7)                                      │
00:03:24 #4731 [Verbose] > │                                                                              │
00:03:24 #4732 [Verbose] > │                                                                              │
00:03:24 #4733 [Verbose] > │                                                                              │
00:03:24 #4734 [Verbose] > │ | US0_1 3 	| US0_1 3 	| struct (3L, 124L)                                        │
00:03:24 #4735 [Verbose] > │ struct ([|1; 3; 4; 6; 8; 9; 11|], 1, 7)                                      │
00:03:24 #4736 [Verbose] > │                                                                              │
00:03:24 #4737 [Verbose] > │                                                                              │
00:03:24 #4738 [Verbose] > │                                                                              │
00:03:24 #4739 [Verbose] > │ | US0_1 0 	| US0_1 0 	| struct (3L, 71L)                                         │
00:03:24 #4740 [Verbose] > │ struct ([|1; 3; 4; 6; 8; 9; 11|], 11, 7)                                     │
00:03:24 #4741 [Verbose] > │                                                                              │
00:03:24 #4742 [Verbose] > │                                                                              │
00:03:24 #4743 [Verbose] > │                                                                              │
00:03:24 #4744 [Verbose] > │ | US0_1 6 	| US0_1 6 	| struct (1L, 68L)                                         │
00:03:24 #4745 [Verbose] > │ struct ([|1; 3; 4; 6; 8; 9; 11|], 12, 7)                                     │
00:03:24 #4746 [Verbose] > │                                                                              │
00:03:24 #4747 [Verbose] > │                                                                              │
00:03:24 #4748 [Verbose] > │                                                                              │
00:03:24 #4749 [Verbose] > │ | US0_0   	| US0_0   	| struct (1L, 66L)                                         │
00:03:24 #4750 [Verbose] > │ struct ([|1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18; 19; │
00:03:24 #4751 [Verbose] > │ 20;                                                                          │
00:03:24 #4752 [Verbose] > │           21; 22; 23; 24; 25; 26; 27; 28; 29; 30; 31; 32; 33; 34; 35; 36;    │
00:03:24 #4753 [Verbose] > │ 37; 38;                                                                      │
00:03:24 #4754 [Verbose] > │           39; 40; 41; 42; 43; 44; 45; 46; 47; 48; 49; 50; 51; 52; 53; 54;    │
00:03:24 #4755 [Verbose] > │ 55; 56;                                                                      │
00:03:24 #4756 [Verbose] > │           57; 58; 59; 60; 61; 62; 63; 64; 65; 66; 67; 68; 69; 70; 71; 72;    │
00:03:24 #4757 [Verbose] > │ 73; 74;                                                                      │
00:03:24 #4758 [Verbose] > │           75; 76; 77; 78; 79; 80; 81; 82; 83; 84; 85; 86; 87; 88; 89; 90;    │
00:03:24 #4759 [Verbose] > │ 91; 92;                                                                      │
00:03:24 #4760 [Verbose] > │           93; 94; 95; 96; 97; 98; 99; 100|], 60, 100)	| US0_1 59	| US0_1 59	|      │
00:03:24 #4761 [Verbose] > │ struct (3L, 81L)                                                             │
00:03:24 #4762 [Verbose] > │ struct ([|1; 3; 4; 6; 8; 9; 11|], 6, 7)                                      │
00:03:24 #4763 [Verbose] > │                                                                              │
00:03:24 #4764 [Verbose] > │                                                                              │
00:03:24 #4765 [Verbose] > │                                                                              │
00:03:24 #4766 [Verbose] > │ | US0_1 3 	| US0_1 3 	| struct (1L, 59L)                                         │
00:03:24 #4767 [Verbose] > │ struct ([|1; 3; 4; 6; 8; 9; 11|], 1, 7)                                      │
00:03:24 #4768 [Verbose] > │                                                                              │
00:03:24 #4769 [Verbose] > │                                                                              │
00:03:24 #4770 [Verbose] > │                                                                              │
00:03:24 #4771 [Verbose] > │ | US0_1 0 	| US0_1 0 	| struct (1L, 65L)                                         │
00:03:24 #4772 [Verbose] > │ struct ([|1; 3; 4; 6; 8; 9; 11|], 11, 7)                                     │
00:03:24 #4773 [Verbose] > │                                                                              │
00:03:24 #4774 [Verbose] > │                                                                              │
00:03:24 #4775 [Verbose] > │                                                                              │
00:03:24 #4776 [Verbose] > │ | US0_1 6 	| US0_1 6 	| struct (1L, 67L)                                         │
00:03:24 #4777 [Verbose] > │ struct ([|1; 3; 4; 6; 8; 9; 11|], 12, 7)                                     │
00:03:24 #4778 [Verbose] > │                                                                              │
00:03:24 #4779 [Verbose] > │                                                                              │
00:03:24 #4780 [Verbose] > │                                                                              │
00:03:24 #4781 [Verbose] > │ | US0_0   	| US0_0   	| struct (1L, 66L)                                         │
00:03:24 #4782 [Verbose] > │ struct ([|1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18; 19; │
00:03:24 #4783 [Verbose] > │ 20;                                                                          │
00:03:24 #4784 [Verbose] > │           21; 22; 23; 24; 25; 26; 27; 28; 29; 30; 31; 32; 33; 34; 35; 36;    │
00:03:24 #4785 [Verbose] > │ 37; 38;                                                                      │
00:03:24 #4786 [Verbose] > │           39; 40; 41; 42; 43; 44; 45; 46; 47; 48; 49; 50; 51; 52; 53; 54;    │
00:03:24 #4787 [Verbose] > │ 55; 56;                                                                      │
00:03:24 #4788 [Verbose] > │           57; 58; 59; 60; 61; 62; 63; 64; 65; 66; 67; 68; 69; 70; 71; 72;    │
00:03:24 #4789 [Verbose] > │ 73; 74;                                                                      │
00:03:24 #4790 [Verbose] > │           75; 76; 77; 78; 79; 80; 81; 82; 83; 84; 85; 86; 87; 88; 89; 90;    │
00:03:24 #4791 [Verbose] > │ 91; 92;                                                                      │
00:03:24 #4792 [Verbose] > │           93; 94; 95; 96; 97; 98; 99; 100|], 60, 100)	| US0_1 59	| US0_1 59	|      │
00:03:24 #4793 [Verbose] > │ struct (1L, 83L)                                                             │
00:03:24 #4794 [Verbose] > │                                                                              │
00:03:24 #4795 [Verbose] > │ Average Ranking                                                              │
00:03:24 #4796 [Verbose] > │ Test case 3. Average Time: 75L                                               │
00:03:24 #4797 [Verbose] > │ Test case 4. Average Time: 78L                                               │
00:03:24 #4798 [Verbose] > │ Test case 2. Average Time: 84L                                               │
00:03:24 #4799 [Verbose] > │ Test case 1. Average Time: 98L                                               │
00:03:24 #4800 [Verbose] > │                                                                              │
00:03:24 #4801 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:24 #4802 [Verbose] >
00:03:24 #4803 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:24 #4804 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:24 #4805 [Verbose] > │ ## returnLettersWithOddCountTests                                            │
00:03:24 #4806 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:24 #4807 [Verbose] >
00:03:24 #4808 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:24 #4809 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:24 #4810 [Verbose] > │ Test: ReturnLettersWithOddCount                                              │
00:03:24 #4811 [Verbose] > │                                                                              │
00:03:24 #4812 [Verbose] > │ Solution: 1                                                                  │
00:03:24 #4813 [Verbose] > │ Test case 1. A. Time: 645L                                                   │
00:03:24 #4814 [Verbose] > │                                                                              │
00:03:24 #4815 [Verbose] > │ Solution: 2                                                                  │
00:03:24 #4816 [Verbose] > │ Test case 1. A. Time: 663L                                                   │
00:03:24 #4817 [Verbose] > │                                                                              │
00:03:24 #4818 [Verbose] > │ Solution: 3                                                                  │
00:03:24 #4819 [Verbose] > │ Test case 1. A. Time: 680L                                                   │
00:03:24 #4820 [Verbose] > │                                                                              │
00:03:24 #4821 [Verbose] > │ Solution: 9                                                                  │
00:03:24 #4822 [Verbose] > │ Test case 1. A. Time: 730L                                                   │
00:03:24 #4823 [Verbose] > │                                                                              │
00:03:24 #4824 [Verbose] > │ Solution: 10                                                                 │
00:03:24 #4825 [Verbose] > │ Test case 1. A. Time: 815L                                                   │
00:03:24 #4826 [Verbose] > │                                                                              │
00:03:24 #4827 [Verbose] > │ Input   | Expected        | Result          | Best                           │
00:03:24 #4828 [Verbose] > │ ---     | ---             | ---             | ---                            │
00:03:24 #4829 [Verbose] > │ 1       | a               | a               | (1, 645)                       │
00:03:24 #4830 [Verbose] > │ 2       | ba              | ba              | (1, 663)                       │
00:03:24 #4831 [Verbose] > │ 3       | aaa             | aaa             | (1, 680)                       │
00:03:24 #4832 [Verbose] > │ 9       | aaaaaaaaa       | aaaaaaaaa       | (1, 730)                       │
00:03:24 #4833 [Verbose] > │ 10      | baaaaaaaaa      | baaaaaaaaa      | (1, 815)                       │
00:03:24 #4834 [Verbose] > │                                                                              │
00:03:24 #4835 [Verbose] > │ Averages                                                                     │
00:03:24 #4836 [Verbose] > │ Test case 1. Average Time: 706L                                              │
00:03:24 #4837 [Verbose] > │                                                                              │
00:03:24 #4838 [Verbose] > │ Ranking                                                                      │
00:03:24 #4839 [Verbose] > │ Test case 1. Average Time: 706L                                              │
00:03:24 #4840 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:24 #4841 [Verbose] >
00:03:24 #4842 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:24 #4843 [Verbose] > //// test
00:03:24 #4844 [Verbose] >
00:03:24 #4845 [Verbose] > let solutions = [[
00:03:24 #4846 [Verbose] >     "A",
00:03:24 #4847 [Verbose] >     fun n ->
00:03:24 #4848 [Verbose] >         let mutable _builder = StringBuilder (new string('a', n))
00:03:24 #4849 [Verbose] >         if n % 2 = 0 then
00:03:24 #4850 [Verbose] >             _builder.[[0]] <- 'b'
00:03:24 #4851 [Verbose] >
00:03:24 #4852 [Verbose] >         _builder.ToString ()
00:03:24 #4853 [Verbose] > ]]
00:03:24 #4854 [Verbose] > let testCases = seq {
00:03:24 #4855 [Verbose] >     1, "a"
00:03:24 #4856 [Verbose] >     2, "ba"
00:03:24 #4857 [Verbose] >     3, "aaa"
00:03:24 #4858 [Verbose] >     9, "aaaaaaaaa"
00:03:24 #4859 [Verbose] >     10, "baaaaaaaaa"
00:03:24 #4860 [Verbose] > }
00:03:24 #4861 [Verbose] > let rec returnLettersWithOddCountTests =
00:03:24 #4862 [Verbose] >     runAll (nameof returnLettersWithOddCountTests) _count solutions testCases
00:03:24 #4863 [Verbose] > returnLettersWithOddCountTests
00:03:24 #4864 [Verbose] > |> sortResultList
00:03:27 #4865 [Verbose] >
00:03:27 #4866 [Verbose] > ╭─[ 2.54s - stdout ]───────────────────────────────────────────────────────────╮
00:03:27 #4867 [Verbose] > │                                                                              │
00:03:27 #4868 [Verbose] > │                                                                              │
00:03:27 #4869 [Verbose] > │ Test: returnLettersWithOddCountTests                                         │
00:03:27 #4870 [Verbose] > │                                                                              │
00:03:27 #4871 [Verbose] > │ Solution: 1                                                                  │
00:03:27 #4872 [Verbose] > │ Test case 1. A. Time: 335L                                                   │
00:03:27 #4873 [Verbose] > │                                                                              │
00:03:27 #4874 [Verbose] > │ Solution: 2                                                                  │
00:03:27 #4875 [Verbose] > │ Test case 1. A. Time: 420L                                                   │
00:03:27 #4876 [Verbose] > │                                                                              │
00:03:27 #4877 [Verbose] > │ Solution: 3                                                                  │
00:03:27 #4878 [Verbose] > │ Test case 1. A. Time: 387L                                                   │
00:03:27 #4879 [Verbose] > │                                                                              │
00:03:27 #4880 [Verbose] > │ Solution: 9                                                                  │
00:03:27 #4881 [Verbose] > │ Test case 1. A. Time: 368L                                                   │
00:03:27 #4882 [Verbose] > │                                                                              │
00:03:27 #4883 [Verbose] > │ Solution: 10                                                                 │
00:03:27 #4884 [Verbose] > │ Test case 1. A. Time: 355L                                                   │
00:03:27 #4885 [Verbose] > │                                                                              │
00:03:27 #4886 [Verbose] > │ Input	| Expected  	| Result    	| Best                                             │
00:03:27 #4887 [Verbose] > │ ---  	| ---       	| ---       	| ---                                              │
00:03:27 #4888 [Verbose] > │ 1    	| a         	| a         	| (1, 335)                                         │
00:03:27 #4889 [Verbose] > │ 2    	| ba        	| ba        	| (1, 420)                                         │
00:03:27 #4890 [Verbose] > │ 3    	| aaa       	| aaa       	| (1, 387)                                         │
00:03:27 #4891 [Verbose] > │ 9    	| aaaaaaaaa 	| aaaaaaaaa 	| (1, 368)                                         │
00:03:27 #4892 [Verbose] > │ 10   	| baaaaaaaaa	| baaaaaaaaa	| (1, 355)                                         │
00:03:27 #4893 [Verbose] > │                                                                              │
00:03:27 #4894 [Verbose] > │ Average Ranking                                                              │
00:03:27 #4895 [Verbose] > │ Test case 1. Average Time: 373L                                              │
00:03:27 #4896 [Verbose] > │                                                                              │
00:03:27 #4897 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:27 #4898 [Verbose] >
00:03:27 #4899 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:27 #4900 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:27 #4901 [Verbose] > │ ## hasAnyPairCloseToEachotherTests                                           │
00:03:27 #4902 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:27 #4903 [Verbose] >
00:03:27 #4904 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:27 #4905 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:27 #4906 [Verbose] > │ Test: HasAnyPairCloseToEachother                                             │
00:03:27 #4907 [Verbose] > │                                                                              │
00:03:27 #4908 [Verbose] > │ Solution: 0                                                                  │
00:03:27 #4909 [Verbose] > │ Test case 1. A. Time: 137L                                                   │
00:03:27 #4910 [Verbose] > │                                                                              │
00:03:27 #4911 [Verbose] > │ Solution: 1,2                                                                │
00:03:27 #4912 [Verbose] > │ Test case 1. A. Time: 186L                                                   │
00:03:27 #4913 [Verbose] > │                                                                              │
00:03:27 #4914 [Verbose] > │ Solution: 3,5                                                                │
00:03:27 #4915 [Verbose] > │ Test case 1. A. Time: 206L                                                   │
00:03:27 #4916 [Verbose] > │                                                                              │
00:03:27 #4917 [Verbose] > │ Solution: 3,4,6                                                              │
00:03:27 #4918 [Verbose] > │ Test case 1. A. Time: 149L                                                   │
00:03:27 #4919 [Verbose] > │                                                                              │
00:03:27 #4920 [Verbose] > │ Solution: 2,4,6                                                              │
00:03:27 #4921 [Verbose] > │ Test case 1. A. Time: 150L                                                   │
00:03:27 #4922 [Verbose] > │                                                                              │
00:03:27 #4923 [Verbose] > │ Input   | Expected        | Result  | Best                                   │
00:03:27 #4924 [Verbose] > │ ---     | ---             | ---     | ---                                    │
00:03:27 #4925 [Verbose] > │ 0       | False           | False   | (1, 137)                               │
00:03:27 #4926 [Verbose] > │ 1,2     | True            | True    | (1, 186)                               │
00:03:27 #4927 [Verbose] > │ 3,5     | False           | False   | (1, 206)                               │
00:03:27 #4928 [Verbose] > │ 3,4,6   | True            | True    | (1, 149)                               │
00:03:27 #4929 [Verbose] > │ 2,4,6   | False           | False   | (1, 150)                               │
00:03:27 #4930 [Verbose] > │                                                                              │
00:03:27 #4931 [Verbose] > │ Averages                                                                     │
00:03:27 #4932 [Verbose] > │ Test case 1. Average Time: 165L                                              │
00:03:27 #4933 [Verbose] > │                                                                              │
00:03:27 #4934 [Verbose] > │ Ranking                                                                      │
00:03:27 #4935 [Verbose] > │ Test case 1. Average Time: 165L                                              │
00:03:27 #4936 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:27 #4937 [Verbose] >
00:03:27 #4938 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:27 #4939 [Verbose] > //// test
00:03:27 #4940 [Verbose] >
00:03:27 #4941 [Verbose] > let solutions = [[
00:03:27 #4942 [Verbose] >     "A",
00:03:27 #4943 [Verbose] >     fun (a: int[[]]) ->
00:03:27 #4944 [Verbose] >         let indices = System.Linq.Enumerable.Range(0, a.Length) |>
00:03:27 #4945 [Verbose] > System.Linq.Enumerable.ToArray
00:03:27 #4946 [Verbose] >         System.Array.Sort (a, indices)
00:03:27 #4947 [Verbose] >
00:03:27 #4948 [Verbose] >         indices
00:03:27 #4949 [Verbose] >         |> Array.take (a.Length - 1)
00:03:27 #4950 [Verbose] >         |> Array.exists (fun i -> a.[[i + 1]] - a.[[i]] = 1)
00:03:27 #4951 [Verbose] > ]]
00:03:27 #4952 [Verbose] > let testCases = seq {
00:03:27 #4953 [Verbose] >     [[| 0 |]], false
00:03:27 #4954 [Verbose] >     [[| 1; 2 |]], true
00:03:27 #4955 [Verbose] >     [[| 3; 5 |]], false
00:03:27 #4956 [Verbose] >     [[| 3; 4; 6 |]], true
00:03:27 #4957 [Verbose] >     [[| 2; 4; 6 |]], false
00:03:27 #4958 [Verbose] > }
00:03:27 #4959 [Verbose] > let rec hasAnyPairCloseToEachotherTests =
00:03:27 #4960 [Verbose] >     runAll (nameof hasAnyPairCloseToEachotherTests) _count solutions testCases
00:03:27 #4961 [Verbose] > hasAnyPairCloseToEachotherTests
00:03:27 #4962 [Verbose] > |> sortResultList
00:03:28 #4963 [Verbose] >
00:03:28 #4964 [Verbose] > ╭─[ 1.13s - stdout ]───────────────────────────────────────────────────────────╮
00:03:28 #4965 [Verbose] > │                                                                              │
00:03:28 #4966 [Verbose] > │                                                                              │
00:03:28 #4967 [Verbose] > │ Test: hasAnyPairCloseToEachotherTests                                        │
00:03:28 #4968 [Verbose] > │                                                                              │
00:03:28 #4969 [Verbose] > │ Solution: 0                                                                  │
00:03:28 #4970 [Verbose] > │ Test case 1. A. Time: 139L                                                   │
00:03:28 #4971 [Verbose] > │                                                                              │
00:03:28 #4972 [Verbose] > │ Solution: 1,2                                                                │
00:03:28 #4973 [Verbose] > │ Test case 1. A. Time: 167L                                                   │
00:03:28 #4974 [Verbose] > │                                                                              │
00:03:28 #4975 [Verbose] > │ Solution: 3,5                                                                │
00:03:28 #4976 [Verbose] > │ Test case 1. A. Time: 88L                                                    │
00:03:28 #4977 [Verbose] > │                                                                              │
00:03:28 #4978 [Verbose] > │ Solution: 3,4,6                                                              │
00:03:28 #4979 [Verbose] > │ Test case 1. A. Time: 66L                                                    │
00:03:28 #4980 [Verbose] > │                                                                              │
00:03:28 #4981 [Verbose] > │ Solution: 2,4,6                                                              │
00:03:28 #4982 [Verbose] > │ Test case 1. A. Time: 65L                                                    │
00:03:28 #4983 [Verbose] > │                                                                              │
00:03:28 #4984 [Verbose] > │ Input	| Expected	| Result	| Best                                                   │
00:03:28 #4985 [Verbose] > │ ---  	| ---     	| ---   	| ---                                                    │
00:03:28 #4986 [Verbose] > │ 0    	| False   	| False 	| (1, 139)                                               │
00:03:28 #4987 [Verbose] > │ 1,2  	| True    	| True  	| (1, 167)                                               │
00:03:28 #4988 [Verbose] > │ 3,5  	| False   	| False 	| (1, 88)                                                │
00:03:28 #4989 [Verbose] > │ 3,4,6	| True    	| True  	| (1, 66)                                                │
00:03:28 #4990 [Verbose] > │ 2,4,6	| False   	| False 	| (1, 65)                                                │
00:03:28 #4991 [Verbose] > │                                                                              │
00:03:28 #4992 [Verbose] > │ Average Ranking                                                              │
00:03:28 #4993 [Verbose] > │ Test case 1. Average Time: 105L                                              │
00:03:28 #4994 [Verbose] > │                                                                              │
00:03:28 #4995 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:28 #4996 [Verbose] >
00:03:28 #4997 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:28 #4998 [Verbose] > // // test
00:03:28 #4999 [Verbose] >
00:03:28 #5000 [Verbose] > ()
00:03:28 #5001 [Verbose] > Building /tmp/dotnet-repl/20240329-2219-5575-7572-7ea89c8bebe9/main.spi
00:03:28 #5002 [Verbose] >
00:03:28 #5003 [Verbose] > ╭─[ 141.03ms - stdout ]────────────────────────────────────────────────────────╮
00:03:28 #5004 [Verbose] > │ let rec method0 () : unit =                                                  │
00:03:28 #5005 [Verbose] > │     ()                                                                       │
00:03:28 #5006 [Verbose] > │ method0()                                                                    │
00:03:28 #5007 [Verbose] > │                                                                              │
00:03:28 #5008 [Verbose] > │                                                                              │
00:03:28 #5009 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:29 #5010 [Verbose] > [NbConvertApp] Converting notebook Perf.dib.ipynb to html
00:03:29 #5011 [Verbose] > /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:03:29 #5012 [Verbose] >   validate(nb)
00:03:29 #5013 [Verbose] > /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:03:29 #5014 [Verbose] >   return _pygments_highlight(
00:03:30 #5015 [Verbose] > [NbConvertApp] Writing 562091 bytes to Perf.dib.html
00:03:30 #5016 [Debug] executeAsync / exitCode: 0 / output.Length: 460849
00:03:30 #5017 [Debug] main / executeCommand / exitCode: 0
00:03:30 #5018 [Verbose] waitForPortAccess / port: 13805 / retry: 0
00:03:31 #5019 [Verbose] testPortOpen / ex: System.AggregateException: One or more errors occurred. (Connection refused)
00:00:00 #1 [Debug] writeDibCode / output: Fs / path: Perf.dib
00:00:00 #2 [Debug] parseDibCode / output: Fs / file: Perf.dib
In [ ]:
{ . "$ScriptDir/../apps/dir-tree-html/build.ps1" } | Invoke-Block
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ # DirTreeHtml (Polyglot)                                                     │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/fsharp/Notebooks.dib
#!import ../../lib/fsharp/Testing.dib

── fsharp - import ─────────────────────────────────────────────────────────────
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Asp
NetCore.Html.Abstractions.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.FSharp.dll"
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.Formatting.dll"
open System
open System.IO
open System.Text
open Microsoft.DotNet.Interactive.Formatting

── fsharp - import ─────────────────────────────────────────────────────────────
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.FSharp.dll"
open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
#r 
"/home/runner/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.Dot
Net.Interactive.dll"
open type Microsoft.DotNet.Interactive.Kernel

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

Formatter.ListExpansionLimit <- 100

── fsharp - import ─────────────────────────────────────────────────────────────
#r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

type AssertExceptionFormatter (ex) =
    member _.Text =
        ex.ToString()
            .Replace("32m", "<span style=\"color: green;\">")
            .Replace("36m", "</span>")
            .Replace("31m", "<span style=\"color: red;\">")
            .Replace("\n", "<br/>\n")


Formatter.Register<AssertExceptionFormatter> ((fun (x : 
AssertExceptionFormatter) -> x.Text), "text/html")

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

let inline __expect fn log expected actual =
    if log then printfn $"{actual.ToDisplayString ()}"
    try
        "Testing.__expect" |> fn actual expected
    with :? Expecto.AssertException as ex ->
        AssertExceptionFormatter(ex).Display () |> ignore
        failwith (ex.GetType().FullName)

let inline __contains log expected actual = __expect Expecto.Expect.contains log
expected actual
let inline _contains expected actual = __contains true expected actual

let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
expected actual
let inline _assertEqual expected actual = __assertEqual true expected actual

let inline __isGreaterThan log expected actual = __expect 
Expecto.Expect.isGreaterThan log ex...

── fsharp - import ─────────────────────────────────────────────────────────────
//// test

let inline __isBetween log a b actual =
    let inline isBetween actual (a, b) _ =
        __isGreaterThanOrEqual log a actual
        __isLessThanOrEqual log b actual
    __expect isBetween log (a, b) actual
let inline _isBetween a b actual = __isBetween true a b actual

── fsharp ──────────────────────────────────────────────────────────────────────
#r 
@"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
dard2.1/FSharp.Control.AsyncSeq.dll"
#r 
@"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
0/System.Reactive.dll"
#r 
@"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/
netstandard2.0/System.Reactive.Linq.dll"
#r 
@"../../../../../../../.nuget/packages/argu/6.2.2/lib/netstandard2.0/Argu.dll"
#r 
@"../../../../../../../.nuget/packages/system.commandline/2.0.0-beta4.22272.1/li
b/net6.0/System.CommandLine.dll"
#r 
@"../../../../../../../.nuget/packages/falco.markup/1.1.1/lib/netstandard2.0/Fal
co.Markup.dll"

── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/spiral/common.fsx
#!import ../../lib/spiral/date_time.fsx
#!import ../../lib/spiral/file_system.fsx
#!import ../../lib/fsharp/Common.fs
#!import ../../lib/fsharp/CommonFSharp.fs
#!import ../../lib/fsharp/Async.fs
#!import ../../lib/fsharp/AsyncSeq.fs
#!import ../../lib/fsharp/Networking.fs
#!import ../../lib/fsharp/Runtime.fs
#!import ../../lib/fsharp/FileSystem.fs

── fsharp - import ─────────────────────────────────────────────────────────────
type [[<Struct>]] US0 =
    | US0_0
    | US0_1
and [[<Struct>]] US1 =
    | US1_0
    | US1_1 of f1_0 : US0
let rec method0 (v0 : (unit -> unit)) : (unit -> unit) =
    v0
and closure0 () (v0 : (unit -> unit)) : System.IDisposable =
    let mutable result = None
    #if FABLE_COMPILER_RUST && !WASM
    let v1 : (unit -> unit) = method0(v0)
    let v2 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v1()" }
    v2
    #endif
    #if FABLE_COMPILER_RUST && WASM
    let v3 : (unit -> unit) = method0(v0)
    let v4 : System.IDisposable = { new System.IDisposable with member _.Dispose
() = Fable.Core.RustInterop.emitRustExpr () "v3()" }
    v4
    #endif
    #if !FABLE_COMPILER && !F...

── fsharp - import ─────────────────────────────────────────────────────────────
let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
    let v2 : string = v0.ToString ()
    let v3 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
    let v4 : System.Guid = System.Guid $"{v3}{v2.[[v3.Length..]]}"
    v4
and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
    closure1(v0)
and closure5 (v0 : string, v1 : string) (v2 : string) : string =
    let v3 : string = v2.Replace (v0, v1)
    v3
and closure4 (v0 : string) (v1 : string) : (string -> string) =
    closure5(v0, v1)
and closure3 () (v0 : string) : (string -> (string -> string)) =
    closure4(v0)
and method0 () : (string -> (string -> (string -> string))) =
    closure3()
and closure2 () (v0 : System.Guid) : System.DateTime =
  ...

── fsharp - import ─────────────────────────────────────────────────────────────
let rec closure0 () () : string =
    let v0 : string = 
System.Reflection.Assembly.GetEntryAssembly().GetName().Name
    let v1 : (unit -> string) = System.IO.Path.GetTempPath
    let v2 : string = v1 ()
    let v3 : string = $"{v0}"
    let v4 : string = System.IO.Path.Combine (v2, v3)
    let v5 : System.DateTime = System.DateTime.Now
    let v6 : System.Guid = System.Guid.NewGuid ()
    let v7 : string = v6.ToString ()
    let v8 : string = v5.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
    let v9 : System.Guid = System.Guid $"{v8}{v7.[[v8.Length..]]}"
    let v10 : string = v9.ToString ()
    let v11 : string = System.IO.Path.Combine (v4, v10)
    v11
let v0 : (unit -> string) = closure0()
let create_temp_directory_name x = v0 x
()


── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Common =

#if !WASM && !FABLE_COMPILER
    let Date_time = {|
        new_guid_from_date_time =
#if !INTERACTIVE
            Date_time.new_guid_from_date_time
#else
            new_guid_from_date_time
#endif
    |}
#endif

    let nl = System.Environment.NewLine
    let q = @""""

    let inline cons head tail = head :: tail

    module String =
        let inline contains (value : string) (input : string) =
            input.Contains value

        let inline endsWith (value : string) (input : string) =
            input.EndsWith value

        let inline padLeft totalWidth paddingChar (input : string) =
            input.PadLeft (totalWidth, paddingChar)

        let inline replace (oldVa...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module CommonFSharp =

    open Common

    /// ## getUnionCaseName

    let inline getUnionCaseName<'T> (x: 'T) =
        match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with
        | case, _ -> case.Name


── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Async =

    open Common

    /// ## choice

    let inline choice asyncs = async {
        let e = Event<_> ()
        use cts = new System.Threading.CancellationTokenSource ()
        let fn =
            asyncs
            |> Seq.map (fun a -> async {
                let! x = a
                e.Trigger x
            })
            |> Async.Parallel
            |> Async.Ignore
        Async.Start (fn, cts.Token)
        let! result = Async.AwaitEvent e.Publish
        cts.Cancel ()
        return result
    }

    /// ## map

    let inline map fn a = async {
        let! x = a
        return fn x
    }

    /// ## catch

    let inline catch a =
        a
        |> Async.Catch
        ...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module AsyncSeq =

    open Common

    /// ## subscribeEvent

    let inline subscribeEvent (event: IEvent<'H, 'A>) map =
        let observable = System.Reactive.Linq.Observable.FromEventPattern<'H, 
'A>(event.AddHandler, event.RemoveHandler)
        System.Reactive.Linq.Observable.Select (observable, fun event -> map 
event.EventArgs)
        |> FSharp.Control.AsyncSeq.ofObservableBuffered

    let subscribeToken (token : System.Threading.CancellationToken) =
        let tcs = new System.Threading.Tasks.TaskCompletionSource ()
        System.Action tcs.SetResult |> token.Register |> ignore
        let start = System.DateTime.Now.Ticks
        FSharp.Control.AsyncSeq.unfoldAsync
            (fun (...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Networking =

    open Common

    /// ## testPortOpen

    let inline testPortOpen port = async {
        let! ct = Async.CancellationToken
        use client = new System.Net.Sockets.TcpClient ()
        try
            do! client.ConnectAsync ("127.0.0.1", port, ct) |> 
Async.awaitValueTaskUnit
            return true
        with ex ->
            trace Verbose (fun () -> $"testPortOpen / ex: {ex |> 
formatException}") getLocals
            return false
    }

    let inline testPortOpenTimeout timeout port = async {
        let! result =
            testPortOpen port
            |> Async.runWithTimeoutAsync timeout
        return
            match result with
            | None -> false
...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module Runtime =

    open Common

    /// ## isWindows

    let isWindows =
        fun () ->
            System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform
                System.Runtime.InteropServices.OSPlatform.Windows
        |> memoize

    /// ## getExecutableSuffix

    let inline getExecutableSuffix () =
        if isWindows ()
        then ".exe"
        else ""

    /// ## splitCommand

    type private CommandParseStep =
        | Start
        | Path of quoted: bool
        | Arguments

    let splitCommand (command: string) =
        let rec loop (path, args) chars step =
            match chars, step with
            | ('"' | '\'') :: tail, _ when path = "" -> loop (pat...

── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif

module FileSystem =

    let File_system = {|
        create_temp_directory_name =
#if !INTERACTIVE
            File_system.create_temp_directory_name
#else
            create_temp_directory_name
#endif
    |}

    open Common

    /// ## Operators

    module Operators =
        let inline (</>) a b =
            System.IO.Path.Combine (a, b)

    open Operators

    /// ## createTempDirectory

    let inline createTempDirectory () =
        let tempFolder = File_system.create_temp_directory_name ()
        let result = System.IO.Directory.CreateDirectory tempFolder

        if not result.Exists then
            let getLocals () =
                $"tempFolder: {tempFolder} / result: {({|
        ...

── fsharp ──────────────────────────────────────────────────────────────────────
open FileSystem.Operators
open Falco.Markup

── fsharp ──────────────────────────────────────────────────────────────────────
type FileSystemNode =
    | File of string * string * int64
    | Folder of string * string * FileSystemNode list
    | Root of FileSystemNode list

let rec scanDirectory isRoot (basePath : string) (path : string) =
    let relativePath = path.Replace(basePath, "").Replace("\\", 
"/").Replace("//", "/").TrimStart '/'

    let directories =
        path
        |> System.IO.Directory.GetDirectories
        |> Array.toList
        |> List.sort
        |> List.map (scanDirectory false basePath)
    let files =
        path
        |> System.IO.Directory.GetFiles
        |> Array.toList
        |> List.sort
        |> List.map (fun f -> File (System.IO.Path.GetFileName f, relativePath, 
System.IO.FileInfo(f).Length))

    let children = directories @ files
    if isRoot
    then Root children
    else Folder (path |> System.IO.Path.GetFileName, relativePath, children)

let rec generateHtml fsNode =
    let sizeLabel size =
        match float size with
        | size when size > 1024.0 * 1024.0 -> $"%.2f{size / 1024.0 / 1024.0} MB"
        | size when size > 1024.0 -> $"%.2f{size / 1024.0} KB"
        | size -> $"%.2f{size} B"
    match fsNode with
    | File (fileName, relativePath, size) ->
        Elem.div [[]] [[
            Text.raw "&#128196; "
            Elem.a [[
                Attr.href $"""{relativePath}{if relativePath = "" then "" else 
"/"}{fileName}"""
            ]] [[
                Text.raw fileName
            ]]
            Elem.span [[]] [[
                Text.raw $" ({size |> sizeLabel})"
            ]]
        ]]
    | Folder (folderName, relativePath, children) ->
        let size =
            let rec loop children =
                children
                |> List.sumBy (function
                    | File (_, _, size) -> size
                    | Folder (_, _, children)
                    | Root children -> loop children
                )
            loop children
        Elem.details [[
            Attr.open' "true"
        ]] [[
            Elem.summary [[]] [[
                Text.raw "&#128194; "
                Elem.a [[
                    Attr.href relativePath
                ]] [[
                    Text.raw folderName
                ]]
                Elem.span [[]] [[
                    Text.raw $" ({size |> sizeLabel})"
                ]]
            ]]
            Elem.div [[]] [[
                yield! children |> List.map generateHtml
            ]]
        ]]
    | Root children ->
        Elem.div [[]] [[
            yield! children |> List.map generateHtml
        ]]

let generateHtmlForFileSystem root =
    $"""<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <style>
body {{
    background-color: #222;
    color: #ccc;
}}
a {{
  color: #777;
  font-size: 15px;
}}
span {{
  font-size: 11px;
}}
div > div {{
  padding-left: 10px;
}}
details > div {{
  padding-left: 19px;
}}
  </style>
</head>
<body>
  {root |> generateHtml |> renderNode}
</body>
</html>
"""

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let tempFolder = FileSystem.createTempDirectory ()
let rec loop d n = async {
    if n >= 0 then
        tempFolder </> d |> System.IO.Directory.CreateDirectory |> ignore
        do!
            n
            |> string
            |> String.replicate (n + 1)
            |> FileSystem.writeAllTextAsync (tempFolder </> d </> $"file.txt")
        do! loop $"{d}/{n}" (n - 1)
}
loop "_.root" 3
|> Async.RunSynchronously

let html =
    scanDirectory true tempFolder tempFolder
    |> generateHtmlForFileSystem

html
|> _assertEqual """<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <style>
body {
    background-color: #222;
    color: #ccc;
}
a {
  color: #777;
  font-size: 15px;
}
span {
  font-size: 11px;
}
div > div {
  padding-left: 10px;
}
details > div {
  padding-left: 19px;
}
  </style>
</head>
<body>
  <div><details open="true"><summary>&#128194; <a href="_.root">_.root</a><span>
(10.00 B)</span></summary><div><details open="true"><summary>&#128194; <a 
href="_.root/3">3</a><span> (6.00 B)</span></summary><div><details 
open="true"><summary>&#128194; <a href="_.root/3/2">2</a><span> (3.00 
B)</span></summary><div><details open="true"><summary>&#128194; <a 
href="_.root/3/2/1">1</a><span> (1.00 B)</span></summary><div><div>&#128196; <a 
href="_.root/3/2/1/file.txt">file.txt</a><span> (1.00 
B)</span></div></div></details><div>&#128196; <a 
href="_.root/3/2/file.txt">file.txt</a><span> (2.00 
B)</span></div></div></details><div>&#128196; <a 
href="_.root/3/file.txt">file.txt</a><span> (3.00 
B)</span></div></div></details><div>&#128196; <a 
href="_.root/file.txt">file.txt</a><span> (4.00 
B)</span></div></div></details></div>
</body>
</html>
"""

html |> Microsoft.DotNet.Interactive.Formatting.Html.ToHtmlContent

╭─[ 179.51ms - return value ]──────────────────────────────────────────────────╮
│ <!DOCTYPE html>                                                              │
│ <html lang="en">                                                             │
│ <head>                                                                       │
│   <meta charset="UTF-8">                                                     │
│   <style>                                                                    │
│ body {                                                                       │
│     background-color: #222;                                                  │
│     color: #ccc;                                                             │
│ }                                                                            │
│ a {                                                                          │
│   color: #777;                                                               │
│   font-size: 15px;                                                           │
│ }                                                                            │
│ span {                                                                       │
│   font-size: 11px;                                                           │
│ }                                                                            │
│ div > div {                                                                  │
│   padding-left: 10px;                                                        │
│ }                                                                            │
│ details > div {                                                              │
│   padding-left: 19px;                                                        │
│ }                                                                            │
│   </style>                                                                   │
│ </head>                                                                      │
│ <body>                                                                       │
│   <div><details open="true"><summary>&#128194; <a                            │
│ href="_.root">_.root</a><span> (10.00 B)</span></summary><div><details       │
│ open="true"><summary>&#128194; <a href="_.root/3">3</a><span> (6.00          │
│ B)</span></summary><div><details open="true"><summary>&#128194; <a           │
│ href="_.root/3/2">2</a><span> (3.00 B)</span></summary><div><details         │
│ open="true"><summary>&#128194; <a href="_.root/3/2/1">1</a><span> (1.00      │
│ B)</span></summary><div><div>&#128196; <a href="_.root...                    │
╰──────────────────────────────────────────────────────────────────────────────╯

╭─[ 182.81ms - stdout ]────────────────────────────────────────────────────────╮
│ <!DOCTYPE html>                                                              │
│ <html lang="en">                                                             │
│ <head>                                                                       │
│   <meta charset="UTF-8">                                                     │
│   <style>                                                                    │
│ body {                                                                       │
│     background-color: #222;                                                  │
│     color: #ccc;                                                             │
│ }                                                                            │
│ a {                                                                          │
│   color: #777;                                                               │
│   font-size: 15px;                                                           │
│ }                                                                            │
│ span {                                                                       │
│   font-size: 11px;                                                           │
│ }                                                                            │
│ div > div {                                                                  │
│   padding-left: 10px;                                                        │
│ }                                                                            │
│ details > div {                                                              │
│   padding-left: 19px;                                                        │
│ }                                                                            │
│   </style>                                                                   │
│ </head>                                                                      │
│ <body>                                                                       │
│   <div><details open="true"><summary>&#128194; <a                            │
│ href="_.root">_.root</a><span> (10.00 B)</span></summary><div><details       │
│ open="true"><summary>&#128194; <a href="_.root/3">3</a><span> (6.00          │
│ B)</span></summary><div><details open="true"><summary>&#128194; <a           │
│ href="_.root/3/2">2</a><span> (3.00 B)</span></summary><div><details         │
│ open="true"><summary>&#128194; <a href="_.root/3/2/1">1</a><span> (1.00      │
│ B)</span></summary><div><div>&#128196; <a                                    │
│ href="_.root/3/2/1/file.txt">file.txt</a><span> (1.00                        │
│ B)</span></div></div></details><div>&#128196; <a                             │
│ href="_.root/3/2/file.txt">file.txt</a><span> (2.00                          │
│ B)</span></div></div></details><div>&#128196; <a                             │
│ href="_.root/3/file.txt">file.txt</a><span> (3.00                            │
│ B)</span></div></div></details><div>&#128196; <a                             │
│ href="_.root/file.txt">file.txt</a><span> (4.00                              │
│ B)</span></div></div></details></div>                                        │
│ </body>                                                                      │
│ </html>                                                                      │
│                                                                              │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## Arguments                                                                 │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
[[<RequireQualifiedAccess>]]
type Arguments =
    | [[<Argu.ArguAttributes.ExactlyOnce>]] Dir of string
    | [[<Argu.ArguAttributes.ExactlyOnce>]] Html of string

    interface Argu.IArgParserTemplate with
        member s.Usage =
            match s with
            | Dir _ -> nameof Dir
            | Html _ -> nameof Html

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

Argu.ArgumentParser.Create<Arguments>().PrintUsage ()

╭─[ 73.84ms - return value ]───────────────────────────────────────────────────╮
│ USAGE: dotnet-repl [--help] --dir <string> --html <string>                   │
│                                                                              │
│ OPTIONS:                                                                     │
│                                                                              │
│     --dir <string>        Dir                                                │
│     --html <string>       Html                                               │
│     --help                display this list of options.                      │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## main                                                                      │
╰──────────────────────────────────────────────────────────────────────────────╯

── fsharp ──────────────────────────────────────────────────────────────────────
let main args =
    let argsMap = args |> Runtime.parseArgsMap<Arguments>

    let dir =
        match argsMap.[[nameof Arguments.Dir]] with
        | [[ Arguments.Dir dir ]] -> Some dir
        | _ -> None
        |> Option.get

    let htmlPath =
        match argsMap.[[nameof Arguments.Html]] with
        | [[ Arguments.Html html ]] -> Some html
        | _ -> None
        |> Option.get

    let fileSystem = scanDirectory true dir dir
    let html = generateHtmlForFileSystem fileSystem

    html |> FileSystem.writeAllTextAsync htmlPath
    |> Async.runWithTimeout 30000
    |> function
        | Some () -> 0
        | None -> 1

── fsharp ──────────────────────────────────────────────────────────────────────
//// test

let args =
    System.Environment.GetEnvironmentVariable "ARGS"
    |> Runtime.splitArgs
    |> Seq.toArray

match args with
| [[||]] -> 0
| args -> if main args = 0 then 0 else failwith "main failed"

╭─[ 48.38ms - return value ]───────────────────────────────────────────────────╮
│ <div class="dni-plaintext"><pre>0</pre></div><style>                         │
│ .dni-code-hint {                                                             │
│     font-style: italic;                                                      │
│     overflow: hidden;                                                        │
│     white-space: nowrap;                                                     │
│ }                                                                            │
│ .dni-treeview {                                                              │
│     white-space: nowrap;                                                     │
│ }                                                                            │
│ .dni-treeview td {                                                           │
│     vertical-align: top;                                                     │
│     text-align: start;                                                       │
│ }                                                                            │
│ details.dni-treeview {                                                       │
│     padding-left: 1em;                                                       │
│ }                                                                            │
│ table td {                                                                   │
│     text-align: start;                                                       │
│ }                                                                            │
│ table tr {                                                                   │
│     vertical-align: top;                                                     │
│     margin: 0em 0px;                                                         │
│ }                                                                            │
│ table tr td pre                                                              │
│ {                                                                            │
│     vertical-align: top !important;                                          │
│     margin: 0em 0px !important;                                              │
│ }                                                                            │
│ table th {                                                                   │
│     text-align: start;                                                       │
│ }                                                                            │
│ </style>                                                                     │
╰──────────────────────────────────────────────────────────────────────────────╯
[NbConvertApp] Converting notebook DirTreeHtml.dib.ipynb to html
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
  validate(nb)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
  return _pygments_highlight(
[NbConvertApp] Writing 308839 bytes to DirTreeHtml.dib.html
00:00:00 #1 [Debug] writeDibCode / output: Fs / path: DirTreeHtml.dib
00:00:00 #2 [Debug] parseDibCode / output: Fs / file: DirTreeHtml.dib
00:00:00 #1 [Debug] persistCodeProject / packages: [Argu; Falco.Markup; FSharp.Control.AsyncSeq; ... ] / modules: [lib/spiral/common.fsx; lib/spiral/date_time.fsx; lib/spiral/file_system.fsx; ... ] / name: DirTreeHtml / code.Length: 4478
00:00:00 #2 [Debug] buildProject / fullPath: /home/runner/work/polyglot/polyglot/target/polyglot/builder/DirTreeHtml/DirTreeHtml.fsproj
00:00:00 #3 [Debug] executeAsync / options: { Command =
   "dotnet publish "/home/runner/work/polyglot/polyglot/target/polyglot/builder/DirTreeHtml/DirTreeHtml.fsproj" --configuration Release --output "/home/runner/work/polyglot/polyglot/apps/dir-tree-html/dist" --runtime linux-x64"
  WorkingDirectory =
   Some
     "/home/runner/work/polyglot/polyglot/target/polyglot/builder/DirTreeHtml"
  CancellationToken = None
  OnLine = None }
00:00:00 #4 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f for .NET
00:00:00 #5 [Verbose] >   Determining projects to restore...
00:00:00 #6 [Verbose] >   Paket version 8.1.0-alpha001+8e77fe66ac27ddecf519e0df5a4d3327ca9250e2
00:00:00 #7 [Verbose] >   The last full restore is still up to date. Nothing left to do.
00:00:00 #8 [Verbose] >   Total time taken: 0 milliseconds
00:00:01 #9 [Verbose] >   Paket version 8.1.0-alpha001+8e77fe66ac27ddecf519e0df5a4d3327ca9250e2
00:00:01 #10 [Verbose] >   Restoring /home/runner/work/polyglot/polyglot/target/polyglot/builder/DirTreeHtml/DirTreeHtml.fsproj
00:00:01 #11 [Verbose] >   Starting restore process.
00:00:01 #12 [Verbose] >   Total time taken: 0 milliseconds
00:00:02 #13 [Verbose] >   Restored /home/runner/work/polyglot/polyglot/target/polyglot/builder/DirTreeHtml/DirTreeHtml.fsproj (in 540 ms).
00:00:02 #14 [Verbose] > /usr/share/dotnet/sdk/9.0.100-preview.1.24101.2/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.RuntimeIdentifierInference.targets(313,5): message NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy [/home/runner/work/polyglot/polyglot/target/polyglot/builder/DirTreeHtml/DirTreeHtml.fsproj]
00:00:06 #15 [Verbose] >   DirTreeHtml -> /home/runner/work/polyglot/polyglot/target/polyglot/builder/DirTreeHtml/bin/Release/net9.0/linux-x64/DirTreeHtml.dll
00:00:07 #16 [Verbose] >   DirTreeHtml -> /home/runner/work/polyglot/polyglot/apps/dir-tree-html/dist
00:00:07 #17 [Debug] executeAsync / exitCode: 0 / output.Length: 1165
In [ ]:
{ . "$ScriptDir/../apps/ipfs/build.ps1" } | Invoke-Block
Lockfile is up to date, resolution step is skipped
Progress: resolved 1, reused 0, downloaded 0, added 0
Packages: +495
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Progress: resolved 495, reused 304, downloaded 161, added 465
Progress: resolved 495, reused 304, downloaded 190, added 495, done
.../node_modules/protobufjs postinstall$ node scripts/postinstall
.../node_modules/protobufjs postinstall: Done
.../esbuild@0.19.12/node_modules/esbuild postinstall$ node install.js
.../esbuild@0.19.12/node_modules/esbuild postinstall: Done

dependencies:
+ nft.storage 7.1.1

devDependencies:
+ @types/node 20.11.10
+ npm-check-updates 16.14.11
+ tsx 4.7.0
+ typescript 5.4.0-dev.20231129

Done in 2.6s
In [ ]:
{ . "$ScriptDir/outdated.ps1" } | Invoke-Block
Paket version 8.1.0-alpha001+8e77fe66ac27ddecf519e0df5a4d3327ca9250e2
Resolving dependency graph...
Outdated packages found:
  Group: Main
    * Argu 6.2.2 -> 6.2.3
    * Expecto.FsCheck 10.2.1-fscheck3 -> 10.2.1
    * FsCheck 3.0.0-rc3 -> 2.16.6
    * FSharp.Core 8.0.300-beta.24080.5 -> 8.0.300-beta.24154.4
    * Microsoft.AspNetCore.Connections.Abstractions 7.0 -> 9.0.0-preview.2.24128.4
    * Microsoft.AspNetCore.Http.Connections.Client 7.0 -> 9.0.0-preview.2.24128.4
    * Microsoft.AspNetCore.Http.Connections.Common 7.0 -> 9.0.0-preview.2.24128.4
    * Microsoft.AspNetCore.SignalR.Client 7.0 -> 9.0.0-preview.2.24128.4
    * Microsoft.AspNetCore.SignalR.Client.Core 7.0 -> 9.0.0-preview.2.24128.4
    * Microsoft.AspNetCore.SignalR.Common 7.0 -> 9.0.0-preview.2.24128.4
    * Microsoft.AspNetCore.SignalR.Protocols.Json 7.0 -> 9.0.0-preview.2.24128.4
    * Microsoft.Extensions.DependencyInjection 8.0 -> 9.0.0-preview.2.24128.5
    * Microsoft.Extensions.DependencyInjection.Abstractions 8.0.1 -> 9.0.0-preview.2.24128.5
    * Microsoft.Extensions.Features 7.0 -> 9.0.0-preview.2.24128.4
    * Microsoft.Extensions.Logging 8.0 -> 9.0.0-preview.2.24128.5
    * Microsoft.Extensions.Logging.Abstractions 8.0.1 -> 9.0.0-preview.2.24128.5
    * Microsoft.Extensions.Options 8.0.2 -> 9.0.0-preview.2.24128.5
    * Microsoft.Extensions.Primitives 8.0 -> 9.0.0-preview.2.24128.5
    * System.IO.Pipelines 8.0 -> 9.0.0-preview.2.24128.5
    * System.Threading.Channels 8.0 -> 9.0.0-preview.2.24128.5
Total time taken: 4 seconds

CheckToml / toml: /home/runner/work/polyglot/polyglot/Cargo.toml
chat_contract_tests
================
Name             Project  Compat   Latest   Kind    Platform
----             -------  ------   ------   ----    --------
ahash            0.8.11   0.7.8    0.7.8    Normal  ---
allocator-api2   0.2.16   Removed  Removed  Normal  ---
cfg-if           1.0.0    Removed  Removed  Normal  ---
equivalent       1.0.1    Removed  Removed  Normal  ---
hashbrown        0.14.3   0.12.3   0.12.3   Normal  ---
indexmap         2.2.6    1.9.3    1.9.3    Normal  ---
proc-macro2      1.0.79   Removed  Removed  Normal  ---
quote            1.0.35   Removed  Removed  Normal  ---
syn              2.0.55   Removed  Removed  Normal  ---
unicode-ident    1.0.12   Removed  Removed  Normal  ---
zerocopy         0.7.32   Removed  Removed  Normal  ---
zerocopy-derive  0.7.32   Removed  Removed  Normal  ---

CheckToml / toml: /home/runner/work/polyglot/polyglot/apps/chat/contract/Cargo.toml
All dependencies are up to date, yay!

CheckToml / toml: /home/runner/work/polyglot/polyglot/apps/chat/contract/tests/Cargo.toml
Name                                              Project                        Compat   Latest   Kind    Platform
----                                              -------                        ------   ------   ----    --------
actix->pin-project-lite                           0.2.13                         0.2.14   0.2.14   Normal  ---
ahash->cfg-if                                     1.0.0                          Removed  ---      Normal  ---
ahash->getrandom                                  0.2.12                         ---      Removed  Normal  cfg(any(target_os = "linux", target_os = "android", target_os = "windows", target_os = "macos", target_os = "ios", target_os = "freebsd", target_os = "openbsd", target_os = "netbsd", target_os = "dragonfly", target_os = "solaris", target_os = "illumos", target_os = "fuchsia", target_os = "redox", target_os = "cloudabi", target_os = "haiku", target_os = "vxworks", target_os = "emscripten", target_os = "wasi"))
ahash->zerocopy                                   0.7.32                         Removed  ---      Normal  ---
async-stream->pin-project-lite                    0.2.13                         0.2.14   0.2.14   Normal  ---
futures-util->pin-project-lite                    0.2.13                         0.2.14   0.2.14   Normal  ---
getrandom->cfg-if                                 1.0.0                          ---      Removed  Normal  ---
getrandom->js-sys                                 0.3.69                         ---      Removed  Normal  cfg(all(any(target_arch = "wasm32", target_arch = "wasm64"), target_os = "unknown"))
getrandom->libc                                   0.2.153                        ---      Removed  Normal  cfg(unix)
getrandom->wasi                                   0.11.0+wasi-snapshot-preview1  ---      Removed  Normal  cfg(target_os = "wasi")
getrandom->wasm-bindgen                           0.2.92                         ---      Removed  Normal  cfg(all(any(target_arch = "wasm32", target_arch = "wasm64"), target_os = "unknown"))
hashbrown->ahash                                  0.7.8                          ---      0.8.11   Normal  ---
hashbrown->ahash                                  0.8.11                         0.7.8    ---      Normal  ---
hashbrown->allocator-api2                         0.2.16                         Removed  ---      Normal  ---
http-body->pin-project-lite                       0.2.13                         0.2.14   0.2.14   Normal  ---
hyper->pin-project-lite                           0.2.13                         0.2.14   0.2.14   Normal  ---
hyper-timeout->pin-project-lite                   0.2.13                         0.2.14   0.2.14   Normal  ---
indexmap->autocfg                                 1.2.0                          ---      Removed  Build   ---
indexmap->equivalent                              1.0.1                          Removed  ---      Normal  ---
indexmap->hashbrown                               0.12.3                         ---      0.14.3   Normal  ---
indexmap->hashbrown                               0.14.3                         0.12.3   ---      Normal  ---
js-sys->wasm-bindgen                              0.2.92                         ---      Removed  Normal  ---
proc-macro2->unicode-ident                        1.0.12                         ---      Removed  Normal  ---
proc-macro2->unicode-ident                        1.0.12                         Removed  ---      Normal  ---
quote->proc-macro2                                1.0.79                         ---      Removed  Normal  ---
quote->proc-macro2                                1.0.79                         Removed  ---      Normal  ---
reqwest->pin-project-lite                         0.2.13                         0.2.14   0.2.14   Normal  cfg(not(target_arch = "wasm32"))
serde_with->indexmap                              1.9.3                          ---      2.2.6    Normal  ---
serde_with->indexmap                              2.2.6                          1.9.3    ---      Normal  ---
syn->proc-macro2                                  1.0.79                         ---      Removed  Normal  ---
syn->proc-macro2                                  1.0.79                         Removed  ---      Normal  ---
syn->quote                                        1.0.35                         ---      Removed  Normal  ---
syn->quote                                        1.0.35                         Removed  ---      Normal  ---
syn->unicode-ident                                1.0.12                         ---      Removed  Normal  ---
syn->unicode-ident                                1.0.12                         Removed  ---      Normal  ---
tokio->pin-project-lite                           0.2.13                         0.2.14   0.2.14   Normal  ---
tokio-io-timeout->pin-project-lite                0.2.13                         0.2.14   0.2.14   Normal  ---
tokio-stream->pin-project-lite                    0.2.13                         0.2.14   0.2.14   Normal  ---
tokio-util->pin-project-lite                      0.2.13                         0.2.14   0.2.14   Normal  ---
tower->pin-project-lite                           0.2.13                         0.2.14   0.2.14   Normal  ---
tracing->pin-project-lite                         0.2.13                         0.2.14   0.2.14   Normal  ---
wasm-bindgen->cfg-if                              1.0.0                          ---      Removed  Normal  ---
wasm-bindgen->wasm-bindgen-macro                  0.2.92                         ---      Removed  Normal  ---
wasm-bindgen-backend->bumpalo                     3.15.4                         ---      Removed  Normal  ---
wasm-bindgen-backend->log                         0.4.21                         ---      Removed  Normal  ---
wasm-bindgen-backend->once_cell                   1.19.0                         ---      Removed  Normal  ---
wasm-bindgen-backend->proc-macro2                 1.0.79                         ---      Removed  Normal  ---
wasm-bindgen-backend->quote                       1.0.35                         ---      Removed  Normal  ---
wasm-bindgen-backend->syn                         2.0.55                         ---      Removed  Normal  ---
wasm-bindgen-backend->wasm-bindgen-shared         0.2.92                         ---      Removed  Normal  ---
wasm-bindgen-macro->quote                         1.0.35                         ---      Removed  Normal  ---
wasm-bindgen-macro->wasm-bindgen-macro-support    0.2.92                         ---      Removed  Normal  ---
wasm-bindgen-macro-support->proc-macro2           1.0.79                         ---      Removed  Normal  ---
wasm-bindgen-macro-support->quote                 1.0.35                         ---      Removed  Normal  ---
wasm-bindgen-macro-support->syn                   2.0.55                         ---      Removed  Normal  ---
wasm-bindgen-macro-support->wasm-bindgen-backend  0.2.92                         ---      Removed  Normal  ---
wasm-bindgen-macro-support->wasm-bindgen-shared   0.2.92                         ---      Removed  Normal  ---
zerocopy->zerocopy-derive                         0.7.32                         Removed  ---      Normal  ---
zerocopy-derive->proc-macro2                      1.0.79                         Removed  ---      Normal  ---
zerocopy-derive->quote                            1.0.35                         Removed  ---      Normal  ---
zerocopy-derive->syn                              2.0.55                         Removed  ---      Normal  ---

CheckToml / toml: /home/runner/work/polyglot/polyglot/apps/plot/Cargo.toml
All dependencies are up to date, yay!

/home/runner/work/polyglot/polyglot

> polyglot@ outdated-pre /home/runner/work/polyglot/polyglot
> npm-check-updates --target greatest

Using pnpm
Checking /home/runner/work/polyglot/polyglot/package.json


 npm-check-updates  ~16.14  →  ~17.0-5

Run ncu --target greatest -u to upgrade package.json

/home/runner/work/polyglot/polyglot/apps/ipfs

> ipfs@ outdated-pre /home/runner/work/polyglot/polyglot/apps/ipfs
> npm-check-updates --target greatest

Using pnpm
Checking /home/runner/work/polyglot/polyglot/apps/ipfs/package.json


 npm-check-updates  ~16.14  →  ~17.0-5

Run ncu --target greatest -u to upgrade package.json

/home/runner/work/polyglot/polyglot/apps/spiral/temp/extension

> polyglot@ outdated-pre /home/runner/work/polyglot/polyglot/apps/spiral/temp/extension
> npm-check-updates --target greatest

Using pnpm
Checking /home/runner/work/polyglot/polyglot/apps/spiral/temp/extension/package.json


 @playwright/test   1.42.1  →  1.44.0-alpha-2024-03-29
 npm-check-updates  ~16.14  →                  ~17.0-5

Run ncu --target greatest -u to upgrade package.json